/* 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) */
/* lucio-judged */
.scn-lucio-judged {
  background: 
    linear-gradient(180deg, #f9e0b0 0%, #e8c88a 40%, #c99a5a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d6 0%, transparent 60%);
}
.scn-lucio-judged .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b08050 0%, #8a6030 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
  animation: lj-floor 6s ease-in-out infinite alternate;
}
.scn-lucio-judged .bench {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 20px;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5030 50%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lj-bench 5s ease-in-out infinite;
}
.scn-lucio-judged .judge {
  position: absolute; bottom: 48%; left: 35%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lj-judge 7s ease-in-out infinite alternate;
}
.scn-lucio-judged .whipper {
  position: absolute; bottom: 30%; left: 55%;
  width: 24px; height: 55px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lj-whipper 2s ease-in-out infinite;
}
.scn-lucio-judged .culprit {
  position: absolute; bottom: 28%; left: 50%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a5030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: lj-culprit 3s ease-in-out infinite alternate;
}
.scn-lucio-judged .rope {
  position: absolute; bottom: 70%; left: 50%;
  width: 4px; height: 60px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: lj-rope 4s ease-in-out infinite alternate;
}
.scn-lucio-judged .lantern {
  position: absolute; width: 12px; height: 14px;
  background: radial-gradient(circle, #ffe080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.6);
}
.scn-lucio-judged .lj-lantern-a {
  top: 15%; left: 20%;
  animation: lj-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-lucio-judged .lj-lantern-b {
  top: 20%; right: 25%;
  animation: lj-lantern-glow 3s ease-in-out infinite alternate-reverse;
}
.scn-lucio-judged .sparks {
  position: absolute; bottom: 32%; left: 52%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,200,80,0.8);
  animation: lj-sparks 1.5s ease-out infinite;
}
@keyframes lj-floor {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.95; transform: scaleY(1); }
}
@keyframes lj-bench {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes lj-judge {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-3deg); }
}
@keyframes lj-whipper {
  0% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(10deg) translateY(-3px); }
  50% { transform: rotate(20deg) translateY(0); }
  75% { transform: rotate(10deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes lj-culprit {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  70% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(-1px) rotate(0deg); }
}
@keyframes lj-rope {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg) scaleY(1.1); }
  100% { transform: rotate(-5deg); }
}
@keyframes lj-lantern-glow {
  0% { box-shadow: 0 0 15px 4px rgba(255,200,80,0.5); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 12px rgba(255,200,80,0.9); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(255,200,80,0.6); opacity: 0.85; }
}
@keyframes lj-sparks {
  0% { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-30px) scale(0.3); }
}

/* final-resolution */
.scn-final-resolution {
  background:
    linear-gradient(180deg, #f2e0c8 0%, #d4b896 40%, #b8906a 100%),
    radial-gradient(ellipse at 70% 20%, #ffe6b0 0%, transparent 60%);
}
.scn-final-resolution .window-fr {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #c8b098 0%, #a08870 100%);
  clip-path: polygon(10% 5%, 90% 5%, 85% 95%, 15% 95%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-final-resolution .sunbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 80%;
  background: linear-gradient(180deg, rgba(255,230,180,0.35) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: fr-sunbeam 10s ease-in-out infinite alternate;
}
.scn-final-resolution .fig-left {
  position: absolute; bottom: 20%; left: 30%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fr-fig-left 6s ease-in-out infinite alternate;
}
.scn-final-resolution .fig-right {
  position: absolute; bottom: 20%; right: 30%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fr-fig-right 6s ease-in-out infinite alternate;
}
.scn-final-resolution .embrace {
  position: absolute; bottom: 25%; left: 50%;
  width: 16px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #8a7a6a 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 10px rgba(200,170,130,0.3);
  animation: fr-embrace 8s ease-in-out infinite alternate;
}
.scn-final-resolution .glow-fr {
  position: absolute; top: 40%; left: 50%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,220,160,0.4) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: fr-glow 15s ease-in-out infinite alternate;
}
.scn-final-resolution .petal {
  position: absolute; width: 10px; height: 6px;
  background: radial-gradient(circle, #e8c0a0 0%, #c89870 100%);
  border-radius: 50% 50% 0 0;
  opacity: 0.7;
}
.scn-final-resolution .petal-a {
  top: 10%; left: 15%;
  animation: fr-petal 12s linear infinite;
}
.scn-final-resolution .petal-b {
  top: 20%; right: 20%;
  animation: fr-petal 14s linear infinite 2s;
  width: 8px; height: 5px;
}
.scn-final-resolution .petal-c {
  top: 5%; left: 40%;
  animation: fr-petal 16s linear infinite 4s;
  width: 12px; height: 7px;
}
@keyframes fr-sunbeam {
  0% { opacity: 0.3; transform: skewX(-12deg) scaleX(1); }
  50% { opacity: 0.6; transform: skewX(-8deg) scaleX(1.1); }
  100% { opacity: 0.4; transform: skewX(-10deg) scaleX(0.9); }
}
@keyframes fr-fig-left {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-3deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fr-fig-right {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(3deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fr-embrace {
  0% { opacity: 0.5; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.9; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(1); }
}
@keyframes fr-glow {
  0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.2; }
  50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.5; }
  100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.3; }
}
@keyframes fr-petal {
  0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.7; }
  25% { transform: translateY(20vh) rotate(90deg) scale(1.1); opacity: 0.6; }
  50% { transform: translateY(40vh) rotate(180deg) scale(0.9); opacity: 0.5; }
  75% { transform: translateY(60vh) rotate(270deg) scale(1.05); opacity: 0.4; }
  100% { transform: translateY(80vh) rotate(360deg) scale(1); opacity: 0; }
}

.scn-countermand-expected {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a2035 40%, #2a3a50 100%);
}
.scn-countermand-expected .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1e2638 0%, #2a3448 50%, #1a2035 100%);
  animation: cm-wall 20s ease-in-out infinite alternate;
}
.scn-countermand-expected .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
}
.scn-countermand-expected .figure {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cm-fig 6s ease-in-out infinite;
}
.scn-countermand-expected .chain {
  position: absolute; bottom: 32%; left: 50%; width: 30px; height: 4px;
  background: #4a4a5a; border-radius: 2px;
  animation: cm-chain 4s ease-in-out infinite;
}
.scn-countermand-expected .lantern-glow {
  position: absolute; top: 20%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffaa44 0%, #d08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,170,68,0.3);
  animation: cm-glow 3s ease-in-out infinite alternate;
}
.scn-countermand-expected .bar {
  position: absolute; bottom: 45%; left: 30%; width: 40px; height: 3px;
  background: #3a4a5a; border-radius: 2px;
  transform: rotate(-10deg);
}
.scn-countermand-expected .shadow {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 10px;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(6px);
  animation: cm-shadow 6s ease-in-out infinite;
}
@keyframes cm-wall {
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; }
}
@keyframes cm-fig {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(3px) scaleY(1.02); }
  50% { transform: translateX(0) scaleY(0.98); }
  75% { transform: translateX(-3px) scaleY(1.01); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes cm-chain {
  0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); }
}
@keyframes cm-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes cm-shadow {
  0%,100% { transform: scale(1); } 50% { transform: scale(1.2); }
}

.scn-messenger-with-pardon {
  background: linear-gradient(180deg, #0f1424 0%, #1a2638 50%, #2a3a4a 100%);
}
.scn-messenger-with-pardon .dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, #0f1424 0%, transparent 60%);
}
.scn-messenger-with-pardon .door {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.5);
  animation: mp-door 8s ease-in-out infinite alternate;
}
.scn-messenger-with-pardon .messenger {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mp-mess 5s ease-in-out infinite;
}
.scn-messenger-with-pardon .pardon {
  position: absolute; bottom: 45%; left: 42%; width: 18px; height: 24px;
  background: #d4c8a0; border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 0 6px rgba(255,230,180,0.6);
  animation: mp-pardon 4s ease-in-out infinite;
}
.scn-messenger-with-pardon .light-shaft {
  position: absolute; top: 0; left: 25%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(255,200,140,0.15) 0%, transparent 80%);
  pointer-events: none;
  animation: mp-light 6s ease-in-out infinite alternate;
}
.scn-messenger-with-pardon .steps {
  position: absolute; bottom: 15%; left: 15%; right: 25%; height: 10px;
  background: #2a2a3a; border-radius: 4px;
}
.scn-messenger-with-pardon .glow-edge {
  position: absolute; top: 10%; left: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffcc80 0%, transparent 60%);
  border-radius: 50%;
  animation: mp-edge 3s ease-in-out infinite alternate;
}
@keyframes mp-door {
  0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); }
}
@keyframes mp-mess {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(2deg); }
  60% { transform: translateX(0) rotate(-1deg); }
  100% { transform: translateX(-5px) rotate(0deg); }
}
@keyframes mp-pardon {
  0%,100% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-3px); }
}
@keyframes mp-light {
  0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; }
}
@keyframes mp-edge {
  0% { opacity: 0.3; } 100% { opacity: 0.7; }
}

.scn-duke-aside-pardon {
  background: linear-gradient(180deg, #141a2a 0%, #1e2438 50%, #2a3040 100%);
}
.scn-duke-aside-pardon .bg-curtain {
  position: absolute; top: 0; left: 10%; right: 10%; height: 100%;
  background: linear-gradient(90deg, #1a1a2a, #2a2a3a 50%, #1a1a2a);
  border-radius: 50% / 20%;
  transform: scale(0.95);
  animation: da-curtain 12s ease-in-out infinite alternate;
}
.scn-duke-aside-pardon .duke {
  position: absolute; bottom: 20%; left: 45%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: da-duke 7s ease-in-out infinite;
}
.scn-duke-aside-pardon .cloak {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: da-cloak 5s ease-in-out infinite alternate;
}
.scn-duke-aside-pardon .scroll {
  position: absolute; bottom: 40%; left: 52%; width: 14px; height: 20px;
  background: #c8b888; border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 0 8px rgba(200,180,120,0.5);
  animation: da-scroll 4s ease-in-out infinite;
}
.scn-duke-aside-pardon .spotlight {
  position: absolute; top: 0; left: 30%; width: 50px; height: 100%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,220,0.1) 0%, transparent 70%);
  pointer-events: none;
  animation: da-spot 6s ease-in-out infinite alternate;
}
.scn-duke-aside-pardon .shadow-self {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 15px;
  background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(6px);
  animation: da-shad 7s ease-in-out infinite;
}
.scn-duke-aside-pardon .flicker {
  position: absolute; top: 10%; left: 15%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffcc99 0%, transparent 60%);
  border-radius: 50%;
  animation: da-flick 3s ease-in-out infinite alternate;
}
@keyframes da-curtain {
  0% { opacity: 0.6; transform: scale(0.95) translateY(0); }
  50% { opacity: 0.8; transform: scale(1) translateY(-5px); }
  100% { opacity: 0.6; transform: scale(0.95) translateY(0); }
}
@keyframes da-duke {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes da-cloak {
  0% { transform: rotate(-5deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); }
}
@keyframes da-scroll {
  0%,100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-4px); }
}
@keyframes da-spot {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; }
}
@keyframes da-shad {
  0%,100% { transform: scale(1); } 50% { transform: scale(1.1); }
}
@keyframes da-flick {
  0% { opacity: 0.4; } 100% { opacity: 1; }
}

.scn-letter-read {
  background: linear-gradient(180deg, #0a0e1a 0%, #14182a 50%, #1e2438 100%);
}
.scn-letter-read .darkness {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #14182a 0%, transparent 80%);
}
.scn-letter-read .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-letter-read .figure {
  position: absolute; bottom: 20%; left: 30%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lr-fig 8s ease-in-out infinite;
}
.scn-letter-read .letter {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 28px;
  background: #d4c8a0; border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 0 8px rgba(200,180,140,0.6);
  animation: lr-letter 6s ease-in-out infinite;
}
.scn-letter-read .candle {
  position: absolute; bottom: 18%; left: 55%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a080 50%, #8a6a4a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: lr-candle 4s ease-in-out infinite alternate;
}
.scn-letter-read .candle-glow {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffcc88 0%, #d09050 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,200,120,0.2);
  animation: lr-glow 3s ease-in-out infinite alternate;
}
.scn-letter-read .inkwell {
  position: absolute; bottom: 22%; left: 48%; width: 10px; height: 12px;
  background: #2a2a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes lr-fig {
  0% { transform: translateX(0) scaleY(1); }
  20% { transform: translateX(2px) scaleY(1.02); }
  40% { transform: translateX(-1px) scaleY(0.98); }
  60% { transform: translateX(-3px) scaleY(1.01); }
  80% { transform: translateX(2px) scaleY(0.99); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes lr-letter {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
}
@keyframes lr-candle {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); }
}
@keyframes lr-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

.scn-trial-cucullus { background: linear-gradient(180deg, #3b2a1a 0%, #1a0f05 100%), radial-gradient(ellipse at 50% 30%, #f5d6a0 0%, transparent 60%); }
.scn-trial-cucullus .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: tc-wall 12s ease-in-out infinite alternate; }
.scn-trial-cucullus .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-trial-cucullus .judge { position:absolute; bottom:30%; left:25%; width:40px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; animation: tc-judge 8s ease-in-out infinite; }
.scn-trial-cucullus .friar { position:absolute; bottom:30%; right:25%; width:35px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: tc-friar 10s ease-in-out infinite; }
.scn-trial-cucullus .desk { position:absolute; bottom:20%; left:35%; right:35%; height:12px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: tc-desk 6s ease-in-out infinite; }
.scn-trial-cucullus .candle { position:absolute; bottom:30%; left:50%; width:4px; height:20px; background: linear-gradient(180deg, #f5d6a0 0%, #d4a060 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #f5d6a0; animation: tc-candle 3s ease-in-out infinite alternate; }
.scn-trial-cucullus .shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: tc-shadow 5s ease-in-out infinite; }
@keyframes tc-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tc-judge { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes tc-friar { 0%,100% { transform: translateY(0) translateX(0) } 25% { transform: translateY(-2px) translateX(4px) } 75% { transform: translateY(1px) translateX(-2px) } }
@keyframes tc-desk { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes tc-candle { 0% { opacity:.8; transform: scaleY(.95) } 100% { opacity:1; transform: scaleY(1.05) } }
@keyframes tc-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-friar-accused { background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%), radial-gradient(ellipse at 50% 40%, #e0a050 0%, transparent 50%); }
.scn-friar-accused .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); animation: fa-wall 14s ease-in-out infinite alternate; }
.scn-friar-accused .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); }
.scn-friar-accused .accuser { position:absolute; bottom:35%; left:20%; width:45px; height:65px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: fa-accuser 7s ease-in-out infinite; }
.scn-friar-accused .accused-friar { position:absolute; bottom:35%; right:25%; width:35px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: fa-friar 9s ease-in-out infinite; }
.scn-friar-accused .chains { position:absolute; bottom:35%; right:28%; width:12px; height:8px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: fa-chains 4s ease-in-out infinite; }
.scn-friar-accused .torch { position:absolute; bottom:40%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, #f5d6a0 0%, #d4a060 100%); border-radius: 3px; box-shadow: 0 0 30px 8px #f5d6a0; animation: fa-torch 2.5s ease-in-out infinite alternate; }
.scn-friar-accused .halo { position:absolute; bottom:40%; right:30%; width:40px; height:20px; background: radial-gradient(circle, rgba(255,214,160,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: fa-halo 6s ease-in-out infinite; }
@keyframes fa-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes fa-accuser { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes fa-friar { 0%,100% { transform: translateY(0) translateX(0) } 25% { transform: translateY(-3px) translateX(-3px) } 75% { transform: translateY(1px) translateX(2px) } }
@keyframes fa-chains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fa-torch { 0% { opacity:.7; transform: scaleY(.9) } 100% { opacity:1; transform: scaleY(1.1) } }
@keyframes fa-halo { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.4; transform: scale(.9) } }

.scn-friar-defended { background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%), radial-gradient(ellipse at 50% 50%, #c08040 0%, transparent 60%); }
.scn-friar-defended .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); animation: fd-wall 16s ease-in-out infinite alternate; }
.scn-friar-defended .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); }
.scn-friar-defended .defender { position:absolute; bottom:25%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: fd-defender 8s ease-in-out infinite; }
.scn-friar-defended .rack { position:absolute; bottom:20%; left:45%; right:30%; height:15px; background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 50%, #5a3a2a 100%); border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,.5); animation: fd-rack 12s ease-in-out infinite; }
.scn-friar-defended .guards { position:absolute; bottom:30%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; animation: fd-guards 5s ease-in-out infinite; }
.scn-friar-defended .torch-glow { position:absolute; bottom:30%; left:50%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,214,160,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: fd-torch 3s ease-in-out infinite alternate; }
.scn-friar-defended .shackles { position:absolute; bottom:22%; left:48%; width:8px; height:6px; background: #8a7a6a; border-radius: 2px; animation: fd-shackles 4s ease-in-out infinite; }
@keyframes fd-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fd-defender { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes fd-rack { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fd-guards { 0%,100% { transform: translateX(0) } 25% { transform: translateX(2px) } 75% { transform: translateX(-2px) } }
@keyframes fd-torch { 0% { opacity:.6; transform: scale(1) } 100% { opacity:.9; transform: scale(1.1) } }
@keyframes fd-shackles { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-1px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }

.scn-duke-revealed { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 20%, #f5d6a0 0%, transparent 70%); }
.scn-duke-revealed .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); animation: dr-wall 15s ease-in-out infinite alternate; }
.scn-duke-revealed .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-duke-revealed .duke { position:absolute; bottom:30%; left:40%; width:45px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: dr-duke 9s ease-in-out infinite; }
.scn-duke-revealed .cloak { position:absolute; bottom:25%; left:38%; width:60px; height:50px; background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: dr-cloak 11s ease-in-out infinite; }
.scn-duke-revealed .crown { position:absolute; bottom:60%; left:43%; width:24px; height:12px; background: linear-gradient(180deg, #d4a060 0%, #b08040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 12px 4px #d4a060; animation: dr-crown 4s ease-in-out infinite alternate; }
.scn-duke-revealed .courtiers { position:absolute; bottom:30%; left:10%; width:80px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); animation: dr-courtiers 7s ease-in-out infinite; }
.scn-duke-revealed .lightbeam { position:absolute; top:0; left:35%; right:35%; bottom:0; background: linear-gradient(180deg, rgba(255,214,160,.15) 0%, transparent 60%); clip-path: polygon(50% 0%, 30% 100%, 70% 100%); animation: dr-beam 8s ease-in-out infinite alternate; }
@keyframes dr-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes dr-duke { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-5px) rotate(2deg) } }
@keyframes dr-cloak { 0%,100% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.03) } }
@keyframes dr-crown { 0% { transform: translateY(0) scale(1); opacity:.8 } 100% { transform: translateY(-2px) scale(1.1); opacity:1 } }
@keyframes dr-courtiers { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(2px) } }
@keyframes dr-beam { 0% { opacity:.6; transform: scaleX(.9) } 100% { opacity:.8; transform: scaleX(1.1) } }

.scn-claudio-led-to-prison { background: linear-gradient(180deg, #f0d48a 0%, #c8a064 40%, #a08050 100%), radial-gradient(ellipse at 50% 0%, #f8e4a0 0%, transparent 60%); }
.scn-claudio-led-to-prison .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f8ecc0 0%, #f0d48a 100%); animation: sky-cl1 12s ease-in-out infinite alternate; }
.scn-claudio-led-to-prison .wall-left { position:absolute; bottom:0; left:0; width:35%; height:60%; background: linear-gradient(90deg, #9a7a4a 0%, #b89a5a 100%); border-radius: 0 20% 0 0; box-shadow: inset -8px 0 12px rgba(0,0,0,0.3); }
.scn-claudio-led-to-prison .wall-right { position:absolute; bottom:0; right:0; width:35%; height:60%; background: linear-gradient(90deg, #b89a5a 0%, #9a7a4a 100%); border-radius: 20% 0 0 0; box-shadow: inset 8px 0 12px rgba(0,0,0,0.3); }
.scn-claudio-led-to-prison .gate { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:120px; height:160px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border: 4px solid #3a2810; border-radius: 8px 8px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.4); }
.scn-claudio-led-to-prison .gate::before { content:''; position:absolute; top:20px; left:20px; width:80px; height:100px; background: linear-gradient(180deg, #f0d48a 20%, #c8a064 80%); border-radius:4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.2); }
.scn-claudio-led-to-prison .provost { position:absolute; bottom:20%; left:40%; width:30px; height:60px; background: #5a4030; border-radius:30% 30% 20% 20%; transform:rotate(5deg); animation: provost-cl1 2s ease-in-out infinite alternate; }
.scn-claudio-led-to-prison .claudio { position:absolute; bottom:20%; left:46%; width:28px; height:58px; background: #7a6040; border-radius:30% 30% 20% 20%; transform:rotate(-3deg); animation: claudio-cl1 1.5s ease-in-out infinite alternate; }
.scn-claudio-led-to-prison .juliet { position:absolute; bottom:20%; left:52%; width:26px; height:56px; background: #a08060; border-radius:30% 30% 20% 20%; transform:rotate(2deg); animation: juliet-cl1 2.5s ease-in-out infinite alternate; }
.scn-claudio-led-to-prison .chain { position:absolute; bottom:22%; left:44.5%; width:4px; height:50px; background: #8a7a5a; border-radius: 2px; transform-origin: top center; animation: chain-cl1 2.6s ease-in-out infinite; }
.scn-claudio-led-to-prison .shadow { position:absolute; bottom:18%; left:35%; width:30%; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: shadow-cl1 3s ease-in-out infinite; }
@keyframes sky-cl1 { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes provost-cl1 { 0%{transform:rotate(3deg)} 50%{transform:rotate(6deg) translateY(-1px)} 100%{transform:rotate(3deg)} }
@keyframes claudio-cl1 { 0%{transform:rotate(-4deg)} 50%{transform:rotate(-1deg) translateY(1px)} 100%{transform:rotate(-4deg)} }
@keyframes juliet-cl1 { 0%{transform:rotate(1deg)} 50%{transform:rotate(3deg) translateY(-2px)} 100%{transform:rotate(1deg)} }
@keyframes chain-cl1 { 0%{transform:translateY(0) rotate(0)} 25%{transform:translateY(2px) rotate(5deg)} 50%{transform:translateY(0) rotate(0)} 75%{transform:translateY(-1px) rotate(-3deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes shadow-cl1 { 0%{opacity:0.3} 50%{opacity:0.5} 100%{opacity:0.3} }

.scn-claudio-lucio-reunion { background: linear-gradient(180deg, #f0d48a 0%, #d4b870 50%, #b89860 100%), radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 70%); }
.scn-claudio-lucio-reunion .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffe8c0 0%, #f0d48a 100%); animation: sky-cl2 15s ease-in-out infinite alternate; }
.scn-claudio-lucio-reunion .road { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b89860 0%, #8a7a4a 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); }
.scn-claudio-lucio-reunion .house-left { position:absolute; bottom:30%; left:5%; width:25%; height:45%; background: linear-gradient(180deg, #b89860 0%, #8a7a4a 100%); border-radius: 8% 8% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); }
.scn-claudio-lucio-reunion .house-left::before { content:''; position:absolute; top:25%; left:20%; width:30%; height:20%; background: #4a3820; border-radius: 4px; box-shadow: inset 0 0 4px rgba(255,255,255,0.1); }
.scn-claudio-lucio-reunion .house-right { position:absolute; bottom:30%; right:5%; width:25%; height:45%; background: linear-gradient(180deg, #b89860 0%, #8a7a4a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,0.3); }
.scn-claudio-lucio-reunion .house-right::before { content:''; position:absolute; top:20%; right:20%; width:40%; height:15%; background: #5a4030; border-radius: 4px; }
.scn-claudio-lucio-reunion .claudio { position:absolute; bottom:20%; left:42%; width:30px; height:60px; background: #7a6040; border-radius:30% 30% 20% 20%; transform:rotate(-5deg); animation: claudio-cl2 2s ease-in-out infinite alternate; }
.scn-claudio-lucio-reunion .lucio { position:absolute; bottom:20%; left:48%; width:30px; height:60px; background: #a08060; border-radius:30% 30% 20% 20%; transform:rotate(5deg); animation: lucio-cl2 2.3s ease-in-out infinite alternate; }
.scn-claudio-lucio-reunion .dust { position:absolute; bottom:18%; left:40%; width:80px; height:8px; background: radial-gradient(ellipse, rgba(180,140,80,0.4) 0%, transparent 70%); animation: dust-cl2 4s ease-in-out infinite; }
.scn-claudio-lucio-reunion .cloud { position:absolute; top:10%; left:30%; width:80px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(6px); animation: cloud-cl2 40s linear infinite; }
@keyframes sky-cl2 { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes claudio-cl2 { 0%{transform:rotate(-6deg)} 50%{transform:rotate(-2deg) translateY(-2px)} 100%{transform:rotate(-6deg)} }
@keyframes lucio-cl2 { 0%{transform:rotate(4deg)} 50%{transform:rotate(7deg) translateY(-1px)} 100%{transform:rotate(4deg)} }
@keyframes dust-cl2 { 0%{transform:translateY(0) scale(1); opacity:0.3} 50%{transform:translateY(-5px) scale(1.2); opacity:0.6} 100%{transform:translateY(0) scale(1); opacity:0.3} }
@keyframes cloud-cl2 { 0%{transform:translateX(-80px)} 100%{transform:translateX(120vw)} }

.scn-claudio-confesses-offence { background: linear-gradient(180deg, #d4b870 0%, #b89860 40%, #8a7a4a 100%), radial-gradient(ellipse at 50% 0%, #f0d48a 0%, transparent 70%); }
.scn-claudio-confesses-offence .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #c8a064 0%, #a08050 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.4); }
.scn-claudio-confesses-offence .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7a4a 0%, #6a5a3a 100%); border-radius: 0 0 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
.scn-claudio-confesses-offence .claudio { position:absolute; bottom:22%; left:36%; width:32px; height:64px; background: #7a6040; border-radius:30% 30% 20% 20%; transform:rotate(-4deg); animation: claudio-cl3 1.8s ease-in-out infinite alternate; }
.scn-claudio-confesses-offence .lucio { position:absolute; bottom:22%; left:44%; width:32px; height:64px; background: #a08060; border-radius:30% 30% 20% 20%; transform:rotate(3deg); animation: lucio-cl3 2.2s ease-in-out infinite alternate; }
.scn-claudio-confesses-offence .guard1 { position:absolute; bottom:22%; left:30%; width:28px; height:60px; background: #5a4030; border-radius:30% 30% 20% 20%; transform:rotate(2deg); animation: guard-cl3 1.5s ease-in-out infinite alternate; }
.scn-claudio-confesses-offence .guard2 { position:absolute; bottom:22%; right:30%; width:28px; height:60px; background: #5a4030; border-radius:30% 30% 20% 20%; transform:rotate(-2deg); animation: guard-cl3 1.5s ease-in-out infinite alternate-reverse; }
.scn-claudio-confesses-offence .light-shaft { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,235,200,0.4) 0%, rgba(255,235,200,0) 100%); animation: light-cl3 3s ease-in-out infinite alternate; }
@keyframes claudio-cl3 { 0%{transform:rotate(-5deg)} 50%{transform:rotate(-1deg) translateX(2px)} 100%{transform:rotate(-5deg)} }
@keyframes lucio-cl3 { 0%{transform:rotate(2deg)} 50%{transform:rotate(5deg) translateX(-2px)} 100%{transform:rotate(2deg)} }
@keyframes guard-cl3 { 0%{transform:rotate(1deg)} 50%{transform:rotate(4deg)} 100%{transform:rotate(1deg)} }
@keyframes light-cl3 { 0%{opacity:0.5} 50%{opacity:1} 100%{opacity:0.6} }

.scn-juliet-pregnancy-revealed { background: linear-gradient(180deg, #e8d0a0 0%, #c8a064 40%, #a08050 100%), radial-gradient(ellipse at 50% 20%, #f0d48a 0%, transparent 60%); }
.scn-juliet-pregnancy-revealed .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #c8a064 0%, #9a7a4a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.5); }
.scn-juliet-pregnancy-revealed .window { position:absolute; top:15%; left:50%; transform:translateX(-50%); width:120px; height:140px; background: linear-gradient(180deg, #f8e4a0 0%, #e8c880 100%); border: 6px solid #5a4030; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: window-cl4 6s ease-in-out infinite alternate; }
.scn-juliet-pregnancy-revealed .window::before { content:''; position:absolute; top:20px; left:20px; width:80px; height:100px; background: linear-gradient(180deg, #ffe8b0 0%, #f0d48a 100%); border:2px solid #8a7a4a; border-radius:2px; }
.scn-juliet-pregnancy-revealed .claudio { position:absolute; bottom:20%; left:32%; width:30px; height:60px; background: #7a6040; border-radius:30% 30% 20% 20%; transform:rotate(-3deg); animation: claudio-cl4 1.8s ease-in-out infinite alternate; }
.scn-juliet-pregnancy-revealed .juliet { position:absolute; bottom:20%; left:42%; width:34px; height:64px; background: #a08060; border-radius:30% 30% 20% 20%; transform:rotate(2deg); animation: juliet-cl4 2s ease-in-out infinite alternate; }
.scn-juliet-pregnancy-revealed .provost { position:absolute; bottom:20%; right:30%; width:28px; height:58px; background: #5a4030; border-radius:30% 30% 20% 20%; transform:rotate(4deg); animation: provost-cl4 2.5s ease-in-out infinite alternate; }
.scn-juliet-pregnancy-revealed .belly { position:absolute; bottom:28%; left:45%; width:20px; height:22px; background: radial-gradient(ellipse at 50% 40%, #c8a064 0%, #a08050 100%); border-radius: 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); animation: belly-cl4 3s ease-in-out infinite alternate; }
.scn-juliet-pregnancy-revealed .shadow { position:absolute; bottom:15%; left:30%; width:40%; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: shadow-cl4 4s ease-in-out infinite; }
@keyframes window-cl4 { 0%{filter:brightness(0.9)} 50%{filter:brightness(1.1)} 100%{filter:brightness(1)} }
@keyframes claudio-cl4 { 0%{transform:rotate(-4deg)} 50%{transform:rotate(-1deg) translateY(-2px)} 100%{transform:rotate(-4deg)} }
@keyframes juliet-cl4 { 0%{transform:rotate(1deg)} 50%{transform:rotate(3deg) translateY(-1px)} 100%{transform:rotate(1deg)} }
@keyframes provost-cl4 { 0%{transform:rotate(3deg)} 50%{transform:rotate(6deg)} 100%{transform:rotate(3deg)} }
@keyframes belly-cl4 { 0%{transform:scale(1)} 50%{transform:scale(1.05)} 100%{transform:scale(1)} }
@keyframes shadow-cl4 { 0%{opacity:0.2} 50%{opacity:0.4} 100%{opacity:0.2} }

/* isabella-argues-mercy */
.scn-isabella-argues-mercy {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9c29e 60%, #b89b7a 100%), radial-gradient(ellipse at 70% 30%, rgba(255,230,180,0.6) 0%, transparent 70%);
  filter: contrast(1.1);
}
.scn-isabella-argues-mercy .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d5b0 0%, #cbb290 100%); }
.scn-isabella-argues-mercy .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6e50 0%, #6a5238 100%); box-shadow: inset 0 15px 25px rgba(0,0,0,0.3); }
.scn-isabella-argues-mercy .judge { position:absolute; bottom:28%; right:30%; width:60px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%; transform-origin: bottom center; animation: iam-judge 6s ease-in-out infinite; }
.scn-isabella-argues-mercy .pleader { position:absolute; bottom:28%; left:25%; width:50px; height:80px; background: linear-gradient(180deg, #7a6850 0%, #4a3a28 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: iam-plead 4s ease-in-out infinite alternate; }
.scn-isabella-argues-mercy .bench { position:absolute; bottom:34%; left:30%; right:35%; height:18px; background: linear-gradient(180deg, #5a4a32 0%, #3a2e1c 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-isabella-argues-mercy .window-glow { position:absolute; top:12%; left:15%; width:80px; height:110px; background: radial-gradient(ellipse at center, rgba(255,230,180,0.8) 0%, rgba(255,210,150,0.3) 50%, transparent 80%); border-radius: 10% 10% 20% 20%; filter: blur(8px); animation: iam-glow 5s ease-in-out infinite alternate; }
.scn-isabella-argues-mercy .shadow-bar { position:absolute; bottom:36%; left:0; right:0; height:20px; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); transform: skewY(-2deg); animation: iam-shadowbar 8s infinite alternate; }
@keyframes iam-judge { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes iam-plead { 0% { transform: translateY(0) translateX(0) rotate(0deg); } 50% { transform: translateY(-3px) translateX(5px) rotate(2deg); } 100% { transform: translateY(0) translateX(0) rotate(0deg); } }
@keyframes iam-glow { 0% { opacity:0.7; filter: blur(6px); } 50% { opacity:1; filter: blur(10px); } 100% { opacity:0.8; filter: blur(8px); } }
@keyframes iam-shadowbar { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* isabella-eloquent-plea */
.scn-isabella-eloquent-plea {
  background: linear-gradient(180deg, #f0dbb0 0%, #d4b88a 50%, #a6835e 100%), radial-gradient(ellipse at 40% 20%, rgba(255,240,200,0.5) 0%, transparent 70%);
}
.scn-isabella-eloquent-plea .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e2cba0 0%, #c4a880 100%); }
.scn-isabella-eloquent-plea .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a5e3e 0%, #5a4228 100%); }
.scn-isabella-eloquent-plea .podium { position:absolute; bottom:30%; left:40%; width:50px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: iae-podium 8s ease-in-out infinite alternate; }
.scn-isabella-eloquent-plea .speaker { position:absolute; bottom:38%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #6a583e 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 45% 45%; transform-origin: bottom center; animation: iae-speak 3s ease-in-out infinite; }
.scn-isabella-eloquent-plea .listener { position:absolute; bottom:32%; right:20%; width:45px; height:75px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%; transform-origin: bottom center; animation: iae-listen 6s ease-in-out infinite alternate; }
.scn-isabella-eloquent-plea .arch-over { position:absolute; top:8%; left:15%; right:15%; height:12px; background: linear-gradient(180deg, #b89b7a 0%, #8a7356 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: iae-arch 15s linear infinite alternate; }
.scn-isabella-eloquent-plea .light-shaft { position:absolute; top:0; left:35%; width:8px; height:80%; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 80%); transform: rotate(3deg); animation: iae-lights 7s ease-in-out infinite alternate; }
@keyframes iae-podium { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes iae-speak { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes iae-listen { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes iae-arch { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes iae-lights { 0% { opacity:0.4; transform: rotate(3deg) translateX(0); } 50% { opacity:0.8; transform: rotate(5deg) translateX(3px); } 100% { opacity:0.4; transform: rotate(3deg) translateX(0); } }

/* isabella-compares-justice */
.scn-isabella-compares-justice {
  background: linear-gradient(180deg, #eddea4 0%, #c9b078 50%, #a0855e 100%), radial-gradient(ellipse at 60% 50%, rgba(240,210,160,0.3) 0%, transparent 70%);
}
.scn-isabella-compares-justice .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #dcc698 0%, #b8a078 100%); }
.scn-isabella-compares-justice .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5238 0%, #4a3622 100%); }
.scn-isabella-compares-justice .scales { position:absolute; bottom:40%; left:50%; width:100px; height:40px; margin-left:-50px; background: radial-gradient(ellipse at center, #8a7356 0%, #5a4a32 60%, transparent 70%); border-radius: 50%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); animation: iac-scales 10s ease-in-out infinite alternate; }
.scn-isabella-compares-justice .fowl-platter { position:absolute; bottom:42%; left:25%; width:60px; height:20px; background: radial-gradient(ellipse at 50% 0%, #a0784a 0%, #6a5238 100%); border-radius: 30% 30% 50% 50%; transform: rotate(-10deg); animation: iac-platter 6s ease-in-out infinite alternate; }
.scn-isabella-compares-justice .isabella { position:absolute; bottom:30%; left:15%; width:45px; height:80px; background: linear-gradient(180deg, #6a583e 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 45% 45%; transform-origin: bottom center; animation: iac-isabella 4s ease-in-out infinite; }
.scn-isabella-compares-justice .judge-shadow { position:absolute; bottom:32%; right:20%; width:70px; height:90px; background: linear-gradient(180deg, #2a1e12 0%, #0e0a05 100%); border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%; opacity:0.6; filter: blur(3px); animation: iac-jshadow 8s ease-in-out infinite alternate; }
.scn-isabella-compares-justice .hearth-glow { position:absolute; bottom:0; left:0; width:100%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(230,160,80,0.6) 0%, transparent 70%); animation: iac-hearth 7s ease-in-out infinite alternate; }
@keyframes iac-scales { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes iac-platter { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes iac-isabella { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes iac-jshadow { 0% { opacity:0.5; transform: translateY(0); } 50% { opacity:0.7; transform: translateY(-3px); } 100% { opacity:0.5; transform: translateY(0); } }
@keyframes iac-hearth { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

/* isabella-denounces-tyranny */
.scn-isabella-denounces-tyranny {
  background: linear-gradient(180deg, #e6d4b4 0%, #c4a880 50%, #9a7a58 100%), radial-gradient(ellipse at 30% 40%, rgba(230,200,160,0.4) 0%, transparent 70%);
}
.scn-isabella-denounces-tyranny .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #dcc698 0%, #b89a72 100%); }
.scn-isabella-denounces-tyranny .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a5238 0%, #4a3622 100%); }
.scn-isabella-denounces-tyranny .giant-shadow { position:absolute; bottom:30%; left:20%; right:20%; height:120px; background: linear-gradient(180deg, rgba(20,10,5,0.8) 0%, transparent 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; filter: blur(10px); animation: iad-giant 8s ease-in-out infinite alternate; }
.scn-isabella-denounces-tyranny .isabella { position:absolute; bottom:30%; left:15%; width:45px; height:80px; background: linear-gradient(180deg, #6a583e 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 45% 45%; transform-origin: bottom center; animation: iad-isabella 3s ease-in-out infinite; }
.scn-isabella-denounces-tyranny .councilor-left { position:absolute; bottom:34%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%; transform: rotate(-5deg); animation: iad-council 6s ease-in-out infinite alternate; }
.scn-isabella-denounces-tyranny .councilor-right { position:absolute; bottom:34%; left:70%; width:40px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%; transform: rotate(5deg); animation: iad-council 6s ease-in-out infinite alternate-reverse; }
.scn-isabella-denounces-tyranny .thunder-lines { position:absolute; top:10%; left:20%; right:20%; height:40px; background: repeating-linear-gradient(45deg, rgba(255,200,100,0.5) 0px, rgba(255,200,100,0.5) 2px, transparent 2px, transparent 8px); filter: blur(1px); animation: iad-thunder 4s ease-in-out infinite; }
.scn-isabella-denounces-tyranny .light-bolt { position:absolute; top:5%; left:45%; width:4px; height:50px; background: linear-gradient(180deg, rgba(255,220,150,0.8) 0%, transparent 100%); transform: rotate(5deg); animation: iad-bolt 7s infinite alternate; }
@keyframes iad-giant { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-10px) scale(1.05); opacity:0.7; } 100% { transform: translateY(0) scale(1); opacity:0.5; } }
@keyframes iad-isabella { 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 iad-council { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes iad-thunder { 0% { opacity:0.2; } 50% { opacity:1; } 100% { opacity:0.2; } }
@keyframes iad-bolt { 0% { height:50px; opacity:0.3; } 50% { height:80px; opacity:0.7; } 100% { height:50px; opacity:0.3; } }

.scn-provost-assents { background: linear-gradient(180deg, #2a2218 0%, #3a2e20 30%, #4a3a2a 60%, #2a1e14 100%), radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%); }
.scn-provost-assents .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #3a2e20 0%, #2a2218 60%, #1e1814 100%); }
.scn-provost-assents .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,.6); }
.scn-provost-assents .desk { position:absolute; bottom:28%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #5e4a34 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: pa-desk 14s ease-in-out infinite; }
.scn-provost-assents .candle { position:absolute; bottom:36%; left:40%; width:4px; height:16px; background: linear-gradient(180deg, #e8d0a0 0%, #b89870 40%, #6a5040 100%); border-radius:2px; box-shadow: 0 0 20px 8px rgba(232,208,160,.5), 0 0 40px 16px rgba(232,208,160,.2); animation: pa-candle 3s ease-in-out infinite alternate; }
.scn-provost-assents .figure { position:absolute; bottom:25%; left:42%; width:22px; height:56px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius:40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom center; animation: pa-write 4s ease-in-out infinite; }
.scn-provost-assents .letter { position:absolute; bottom:30%; left:46%; width:24px; height:32px; background: linear-gradient(180deg, #d4c8a8 0%, #b8a888 100%); border-radius:2px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: pa-letter 5s ease-in-out infinite; }
.scn-provost-assents .window-glow { position:absolute; bottom:60%; right:15%; width:40px; height:50px; background: radial-gradient(ellipse, rgba(180,200,220,.3) 0%, transparent 70%); border-radius:8px; box-shadow: inset 0 0 18px 4px rgba(180,200,220,.15); animation: pa-window 8s ease-in-out infinite alternate; }
.scn-provost-assents .shadow { position:absolute; bottom:25%; left:38%; width:28px; height:32px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%); filter: blur(6px); animation: pa-shadow 4s ease-in-out infinite; }
@keyframes pa-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes pa-candle { 0% { transform: scaleY(1); opacity:.85 } 50% { transform: scaleY(1.04); opacity:1 } 100% { transform: scaleY(.97); opacity:.9 } }
@keyframes pa-write { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(.5deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(6px) rotate(.5deg) } 100% { transform: translateX(8px) rotate(0) } }
@keyframes pa-letter { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes pa-window { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes pa-shadow { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(1.05) translateX(3px) } }

.scn-head-sent { background: linear-gradient(180deg, #0e0a08 0%, #1a1210 30%, #2a1e18 60%, #0e0a08 100%), radial-gradient(ellipse at 50% 100%, #3a2a22 0%, transparent 80%); }
.scn-head-sent .corridor-wall { position:absolute; inset:0 20% 0 20%; background: linear-gradient(90deg, #1a1410 0%, #2a1e18 30%, #3a2a22 50%, #2a1e18 70%, #1a1410 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-head-sent .arch-left { position:absolute; bottom:20%; left:18%; width:18%; height:60%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius:50% / 80% 80% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-head-sent .arch-right { position:absolute; bottom:20%; right:18%; width:18%; height:60%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius:50% / 80% 80% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-head-sent .torch { position:absolute; bottom:55%; left:48%; width:6px; height:12px; background: linear-gradient(180deg, #e89050 0%, #c07040 50%, #5a3020 100%); border-radius:3px; box-shadow: 0 0 24px 8px rgba(232,144,80,.6), 0 0 48px 16px rgba(232,144,80,.3); animation: hs-torch 1.5s ease-in-out infinite alternate; }
.scn-head-sent .torch-glow { position:absolute; bottom:45%; left:44%; width:12%; height:25%; background: radial-gradient(ellipse, rgba(232,144,80,.2) 0%, transparent 70%); animation: hs-torch-glow 2s ease-in-out infinite alternate; }
.scn-head-sent .figure-ha { position:absolute; bottom:20%; left:40%; width:26px; height:60px; background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%); border-radius:35% 35% 25% 25% / 55% 55% 30% 30%; transform-origin: bottom center; animation: hs-walk 3s ease-in-out infinite; }
.scn-head-sent .bundle { position:absolute; bottom:35%; left:42%; width:16px; height:18px; background: #3a2a22; border-radius:50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hs-bundle 3s ease-in-out infinite; }
.scn-head-sent .shadow-ha { position:absolute; bottom:18%; left:38%; width:30px; height:24px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(8px); animation: hs-shadow 3s ease-in-out infinite; }
@keyframes hs-torch { 0% { transform: scaleY(1); opacity:.7 } 30% { transform: scaleY(1.08); opacity:1 } 60% { transform: scaleY(.95); opacity:.8 } 100% { transform: scaleY(1.03); opacity:.9 } }
@keyframes hs-torch-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes hs-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(1.5deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes hs-bundle { 0%,100% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(2px,-1px) rotate(3deg) } }
@keyframes hs-shadow { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(1.1) translateX(8px) } }

.scn-isabella-hears-news { background: linear-gradient(180deg, #0a080e 0%, #14101a 40%, #1a1622 70%, #0e0a10 100%), radial-gradient(ellipse at 50% 60%, #1a1622 0%, transparent 80%); }
.scn-isabella-hears-news .dark-bg { position:absolute; inset:0; background: linear-gradient(135deg, #06040a 0%, #0e0a14 50%, #141018 100%); }
.scn-isabella-hears-news .cloak-duke { position:absolute; bottom:18%; left:30%; width:30px; height:66px; background: linear-gradient(180deg, #2a222e 0%, #14101a 100%); border-radius:40% 40% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: is-duke 6s ease-in-out infinite; }
.scn-isabella-hears-news .cloak-isabella { position:absolute; bottom:18%; left:55%; width:26px; height:60px; background: linear-gradient(180deg, #3a2a38 0%, #1a1420 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: is-isabella 4s ease-in-out infinite; }
.scn-isabella-hears-news .light-shard { position:absolute; bottom:50%; left:45%; width:3px; height:40px; background: linear-gradient(180deg, rgba(200,180,220,.4) 0%, transparent 100%); transform: rotate(15deg); filter: blur(2px); box-shadow: 0 0 20px 6px rgba(200,180,220,.2); animation: is-light 5s ease-in-out infinite alternate; }
.scn-isabella-hears-news .shadow-is { position:absolute; bottom:16%; left:48%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(10px); animation: is-shadow 4s ease-in-out infinite; }
.scn-isabella-hears-news .ground-is { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #1a1622 0%, #0e0a10 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
@keyframes is-duke { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-1deg) } }
@keyframes is-isabella { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(-4px) rotate(0) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes is-light { 0% { opacity:.2; transform: rotate(12deg) } 50% { opacity:.5; transform: rotate(18deg) } 100% { opacity:.3; transform: rotate(14deg) } }
@keyframes is-shadow { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(1.08) translateX(-4px) } }

.scn-duke-reveals-plan { background: linear-gradient(180deg, #141018 0%, #1a1622 40%, #221e2a 70%, #141018 100%), radial-gradient(ellipse at 50% 40%, #2a2434 0%, transparent 80%); }
.scn-duke-reveals-plan .cell-wall { position:absolute; inset:0 10% 25% 10%; background: linear-gradient(135deg, #1a1622 0%, #221e2a 50%, #1a1622 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-duke-reveals-plan .cell-floor { position:absolute; bottom:0; left:8%; right:8%; height:25%; background: linear-gradient(180deg, #2a2434 0%, #141018 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-duke-reveals-plan .crucifix { position:absolute; bottom:48%; left:14%; width:22px; height:40px; background: #5e4a3a; border-radius:2px; transform: translateY(0); box-shadow: 0 0 8px 2px rgba(100,80,60,.3); animation: dr-cross 10s ease-in-out infinite alternate; }
.scn-duke-reveals-plan .crucifix::before { content:''; position:absolute; top:10px; left:-8px; width:38px; height:4px; background: #5e4a3a; border-radius:2px; }
.scn-duke-reveals-plan .candle-dr { position:absolute; bottom:40%; left:50%; width:4px; height:14px; background: linear-gradient(180deg, #e8d0a0 0%, #b89870 40%, #6a5040 100%); border-radius:2px; box-shadow: 0 0 18px 6px rgba(232,208,160,.4), 0 0 36px 12px rgba(232,208,160,.15); animation: dr-candle 4s ease-in-out infinite alternate; }
.scn-duke-reveals-plan .figure-duke { position:absolute; bottom:20%; left:30%; width:24px; height:58px; background: linear-gradient(180deg, #2a2434 0%, #141018 100%); border-radius:40% 40% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: dr-duke 6s ease-in-out infinite; }
.scn-duke-reveals-plan .figure-iso { position:absolute; bottom:20%; left:55%; width:22px; height:54px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1422 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dr-iso 6s ease-in-out infinite; }
.scn-duke-reveals-plan .prayer-desk { position:absolute; bottom:22%; left:50%; width:18px; height:12px; background: linear-gradient(180deg, #5e4a3a 0%, #3a2a22 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: dr-desk 10s ease-in-out infinite alternate; }
.scn-duke-reveals-plan .window-dr { position:absolute; bottom:55%; right:16%; width:30px; height:44px; background: radial-gradient(ellipse, rgba(160,180,200,.15) 0%, transparent 70%); border-radius:8px; box-shadow: inset 0 0 14px 2px rgba(160,180,200,.1); animation: dr-window 12s ease-in-out infinite alternate; }
@keyframes dr-candle { 0% { transform: scaleY(1); opacity:.8 } 30% { transform: scaleY(1.05); opacity:1 } 60% { transform: scaleY(.96); opacity:.85 } 100% { transform: scaleY(1.02); opacity:.9 } }
@keyframes dr-duke { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(1px) rotate(.5deg) } 50% { transform: translateX(2px) rotate(-.5deg) } 75% { transform: translateX(1px) rotate(.5deg) } }
@keyframes dr-iso { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-1px) rotate(-.5deg) } 60% { transform: translateX(-2px) rotate(.5deg) } 90% { transform: translateX(-1px) rotate(-.5deg) } }
@keyframes dr-cross { 0% { transform: translateY(0); opacity:.8 } 50% { transform: translateY(-2px); opacity:1 } 100% { transform: translateY(0); opacity:.85 } }
@keyframes dr-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dr-window { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* scene: torches-metaphor */
.scn-torches-metaphor {
  background:
    radial-gradient(ellipse at 50% 80%, #1a0f0a 0%, transparent 60%),
    linear-gradient(180deg, #1f1510 0%, #2a1e18 40%, #1a0f0a 100%);
  overflow: hidden;
}
.scn-torches-metaphor .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.6) 80%);
  animation: tm-darkpulse 8s ease-in-out infinite alternate;
}
.scn-torches-metaphor .torch-stand {
  position: absolute; bottom: 15%; left: 50%; width: 20px; height: 120px;
  margin-left: -10px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 40%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 4px 0 8px rgba(0,0,0,.5), -4px 0 8px rgba(0,0,0,.3);
}
.scn-torches-metaphor .torch-flame {
  position: absolute; bottom: calc(15% + 120px); left: 50%;  transform-origin: bottom center;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
}
.scn-torches-metaphor .flame-core {
  width: 22px; height: 50px; margin-left: -11px;
  background: radial-gradient(ellipse 50% 60%, #ffdd88 0%, #ff8800 80%, transparent 100%);
  animation: tm-core 1.8s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 12px #ff8800, 0 0 80px 30px rgba(255,136,0,.4);
}
.scn-torches-metaphor .flame-outer {
  width: 30px; height: 70px; margin-left: -15px;
  background: radial-gradient(ellipse 50% 60%, #ffaa33 0%, #ff5500 70%, transparent 100%);
  opacity: .7;
  animation: tm-outer 1.6s ease-in-out infinite alternate;
}
.scn-torches-metaphor .spark {
  position: absolute; border-radius: 50%;
  background: #ffdd66;
  box-shadow: 0 0 6px 2px #ffaa33;
}
.scn-torches-metaphor .spark-a {
  width: 5px; height: 5px; bottom: calc(15% + 170px); left: 48%;
  animation: tm-sparka 2.4s ease-out infinite;
}
.scn-torches-metaphor .spark-b {
  width: 3px; height: 3px; bottom: calc(15% + 180px); left: 52%;
  animation: tm-sparkb 1.8s ease-out infinite 0.5s;
}
.scn-torches-metaphor .glow-ring {
  position: absolute; bottom: calc(15% + 100px); left: 50%; width: 100px; height: 80px;
  margin-left: -50px;
  background: radial-gradient(ellipse, rgba(255,180,80,.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: tm-glow 3s ease-in-out infinite alternate;
}
@keyframes tm-darkpulse {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 0.6; }
}
@keyframes tm-core {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.15) translateY(-4px); }
  100% { transform: scaleY(0.95) translateY(2px); }
}
@keyframes tm-outer {
  0% { transform: scaleY(1) scaleX(1) translateY(0); }
  33% { transform: scaleY(1.1) scaleX(0.95) translateY(-3px); }
  66% { transform: scaleY(0.9) scaleX(1.05) translateY(1px); }
  100% { transform: scaleY(1.02) scaleX(1) translateY(-1px); }
}
@keyframes tm-sparka {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(-15px, -30px) scale(0.5); opacity: .6; }
  100% { transform: translate(-30px, -60px) scale(0); opacity: 0; }
}
@keyframes tm-sparkb {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(10px, -25px) scale(0.6); opacity: .5; }
  100% { transform: translate(20px, -50px) scale(0); opacity: 0; }
}
@keyframes tm-glow {
  0% { transform: scaleX(1) scaleY(1); opacity: .5; }
  50% { transform: scaleX(1.1) scaleY(1.2); opacity: .8; }
  100% { transform: scaleX(0.95) scaleY(1.05); opacity: .6; }
}

/* scene: duke-commission-angelo */
.scn-duke-commission-angelo {
  background:
    radial-gradient(ellipse at 70% 50%, #c8b088 0%, transparent 60%),
    linear-gradient(135deg, #e8d8c0 0%, #b89a78 50%, #8a6a4a 100%);
  overflow: hidden;
}
.scn-duke-commission-angelo .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, rgba(80,60,40,0.5) 100%);
}
.scn-duke-commission-angelo .pillar {
  position: absolute; top: 10%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #b09070 0%, #d0b8a0 50%, #a08060 100%);
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  border-radius: 2px;
}
.scn-duke-commission-angelo .pillar-left { left: 18%; }
.scn-duke-commission-angelo .pillar-right { right: 18%; }
.scn-duke-commission-angelo .scroll-hand {
  position: absolute; bottom: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #e0b890 0%, #c09070 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-duke-commission-angelo .left-hand {
  left: 38%;
  animation: dca-hand-left 3s ease-in-out infinite;
}
.scn-duke-commission-angelo .right-hand {
  right: 38%;
  animation: dca-hand-right 3s ease-in-out infinite;
}
.scn-duke-commission-angelo .scroll-paper {
  position: absolute; bottom: 42%; left: 50%; width: 50px; height: 20px;
  margin-left: -25px;
  background: linear-gradient(180deg, #f5e8d0 0%, #dcc8a8 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: dca-scroll 3s ease-in-out infinite;
}
.scn-duke-commission-angelo .shadow-stripe {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: dca-stripe 4s ease-in-out infinite alternate;
}
@keyframes dca-hand-left {
  0%, 100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-3px); }
}
@keyframes dca-hand-right {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
}
@keyframes dca-scroll {
  0% { transform: translate(-25px,0) rotate(2deg); }
  50% { transform: translate(-25px,-2px) rotate(-2deg); }
  100% { transform: translate(-25px,0) rotate(1deg); }
}
@keyframes dca-stripe {
  0% { opacity: 0.3; }
  50% { opacity: 0.1; }
  100% { opacity: 0.4; }
}

/* scene: duke-final-instructions */
.scn-duke-final-instructions {
  background:
    radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%),
    linear-gradient(180deg, #8a7050 0%, #5a4a3a 40%, #3a2a1a 100%);
  overflow: hidden;
}
.scn-duke-final-instructions .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(60,40,20,0.3) 0%, rgba(100,80,60,0.1) 100%);
}
.scn-duke-final-instructions .desk-top {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-duke-final-instructions .book {
  position: absolute; bottom: 22%; left: 32%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
}
.scn-duke-final-instructions .candle {
  position: absolute; bottom: 22%; left: 55%;
}
.scn-duke-final-instructions .candle.base {
  width: 10px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%);
  border-radius: 2px 2px 4px 4px;
  transform: translateX(-5px);
}
.scn-duke-final-instructions .candle.flame-small {
  width: 8px; height: 18px; bottom: calc(22% + 40px); left: 55%;
  margin-left: -4px;
  background: radial-gradient(ellipse at 50% 100%, #ffdd88 0%, #ff8800 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: dfi-flame 2.4s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 6px rgba(255,136,0,.5);
}
.scn-duke-final-instructions .candle.glow-soft {
  width: 60px; height: 40px; bottom: calc(22% + 30px); left: 55%;
  margin-left: -30px;
  background: radial-gradient(ellipse, rgba(255,200,100,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: dfi-glow 4s ease-in-out infinite alternate;
}
.scn-duke-final-instructions .hourglass {
  position: absolute; bottom: 22%; right: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, transparent 10%, #c0a080 10% 50%, transparent 50% 90%, #c0a080 90%);
  border: 2px solid #8a6a4a;
  border-radius: 50%;
  animation: dfi-sand 6s linear infinite;
}
@keyframes dfi-flame {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.2) translateY(-2px); }
  100% { transform: scaleY(0.9) translateY(1px); }
}
@keyframes dfi-glow {
  0% { transform: scaleX(1) scaleY(1); opacity: .5; }
  50% { transform: scaleX(1.1) scaleY(1.3); opacity: .8; }
  100% { transform: scaleX(0.95) scaleY(1.1); opacity: .6; }
}
@keyframes dfi-sand {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes dfi-hourglass {}
/* note: since sand animation uses background gradient, keyframe not needed for motion */

/* scene: duke-farewell-handshake */
.scn-duke-farewell-handshake {
  background:
    radial-gradient(ellipse at 50% 30%, #f0d8b0 0%, transparent 70%),
    linear-gradient(180deg, #c8a880 0%, #8a6a4a 100%);
  overflow: hidden;
}
.scn-duke-farewell-handshake .window-frame {
  position: absolute; top: 5%; left: 30%; right: 30%; bottom: 30%;
  border: 8px solid #5a4a3a;
  background: radial-gradient(ellipse at 50% 40%, #ffeedd 0%, #d8c8b0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,200,150,0.4), 0 4px 12px rgba(0,0,0,0.3);
}
.scn-duke-farewell-handshake .window-light {
  position: absolute; top: 5%; left: 30%; right: 30%; bottom: 30%;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,220,180,0.3) 0%, transparent 70%);
  pointer-events: none;
}
.scn-duke-farewell-handshake .silhouette {
  position: absolute; bottom: 28%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-duke-farewell-handshake .left-figure {
  left: 38%;
  animation: dfh-figure-left 4s ease-in-out infinite;
}
.scn-duke-farewell-handshake .right-figure {
  right: 38%;
  animation: dfh-figure-right 4s ease-in-out infinite;
}
.scn-duke-farewell-handshake .handshake {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 20px;
  margin-left: -15px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: dfh-handshake 2s ease-in-out infinite;
}
.scn-duke-farewell-handshake .floor-shadow {
  position: absolute; bottom: 24%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  border-radius: 50%;
  animation: dfh-shadow 4s ease-in-out infinite alternate;
}
@keyframes dfh-figure-left {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
}
@keyframes dfh-figure-right {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
}
@keyframes dfh-handshake {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes dfh-shadow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}

/* Scene: provost-oath */
.scn-provost-oath { background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3d 50%, #15153a 100%), radial-gradient(ellipse at 30% 40%, #2a1a2a 0%, transparent 70%); }
.scn-provost-oath .bg-po { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1e 0%, #12122e 100%); }
.scn-provost-oath .table-po { position:absolute; bottom:10%; left:30%; right:20%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1f150c 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 10px rgba(0,0,0,.7); }
.scn-provost-oath .book-po { position:absolute; bottom:14%; left:38%; width:40px; height:30px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 10% 10% 5% 5%; transform: perspective(80px) rotateX(10deg); box-shadow: 0 4px 6px rgba(0,0,0,.6); }
.scn-provost-oath .candle-po { position:absolute; bottom:16%; left:44%; width:8px; height:20px; background: linear-gradient(180deg, #f0c868 0%, #b08030 60%, #5a3a10 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 16px 6px #e0a040; animation: po-candle 1.6s ease-in-out infinite alternate; }
.scn-provost-oath .hand-po { position:absolute; bottom:14%; left:41%; width:16px; height:18px; background: radial-gradient(circle at 50% 20%, #d4c9b8 0%, #a09080 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom left; animation: po-hand 3s ease-in-out infinite; }
.scn-provost-oath .cleric-po { position:absolute; bottom:8%; left:25%; width:40px; height:70px; background: linear-gradient(180deg, #1a1528 0%, #0f0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 50%; box-shadow: 0 8px 12px rgba(0,0,0,.8); animation: po-cleric 4s ease-in-out infinite; }
@keyframes po-candle { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes po-hand { 0%,100% { transform: rotate(-5deg) translate(0,0); } 50% { transform: rotate(5deg) translate(2px,-1px); } }
@keyframes po-cleric { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }

/* Scene: duke-reveals-return */
.scn-duke-reveals-return { background: linear-gradient(180deg, #0f1428 0%, #161e36 50%, #12182f 100%), radial-gradient(ellipse at 70% 30%, #1c2a3a 0%, transparent 60%); }
.scn-duke-reveals-return .bg-dr { position:absolute; inset:0; background: linear-gradient(180deg, #0b0f1e 0%, #11172a 100%); }
.scn-duke-reveals-return .window-dr { position:absolute; top:8%; right:10%; width:60px; height:90px; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%); border: 3px solid #2a1a1a; border-radius: 4px; box-shadow: inset 0 0 20px 4px rgba(100,150,200,.3); animation: dr-moonlight 12s ease-in-out infinite alternate; }
.scn-duke-reveals-return .desk-dr { position:absolute; bottom:8%; left:15%; right:40%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1f150c 100%); border-radius: 4% 4% 0 0; }
.scn-duke-reveals-return .letter-dr { position:absolute; bottom:12%; left:20%; width:50px; height:35px; background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 100%); border-radius: 5%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: dr-letter 8s ease-in-out infinite; }
.scn-duke-reveals-return .figure-dr { position:absolute; bottom:10%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 50%; animation: dr-figure 6s ease-in-out infinite; }
.scn-duke-reveals-return .candle-dr { position:absolute; bottom:14%; left:18%; width:6px; height:18px; background: linear-gradient(180deg, #f0c868 0%, #b08030 60%, #5a3a10 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px #c09040; animation: dr-candle 4s ease-in-out infinite alternate; }
.scn-duke-reveals-return .chair-dr { position:absolute; bottom:10%; left:22%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%); border-radius: 30% 30% 10% 10%; transform: rotate(5deg); animation: dr-chair 10s ease-in-out infinite; }
@keyframes dr-moonlight { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes dr-letter { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } }
@keyframes dr-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }
@keyframes dr-candle { 0% { opacity:0.85; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.03); } 100% { opacity:0.9; transform: scaleY(0.97); } }
@keyframes dr-chair { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } }

/* Scene: pompey-list-prisoners */
.scn-pompey-list-prisoners { background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #1a1410 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 80%); }
.scn-pompey-list-prisoners .bg-pp { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #2a2018 100%); }
.scn-pompey-list-prisoners .bars-pp { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #2a1a1a 0px, #2a1a1a 4px, transparent 4px, transparent 16px); opacity:0.6; }
.scn-pompey-list-prisoners .prisoner-pp { position:absolute; bottom:18%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-pompey-list-prisoners .p1 { left:20%; animation: pp-prisoner 2.4s ease-in-out infinite 0s; }
.scn-pompey-list-prisoners .p2 { left:40%; animation: pp-prisoner 2.4s ease-in-out infinite 0.4s; }
.scn-pompey-list-prisoners .p3 { left:60%; animation: pp-prisoner 2.4s ease-in-out infinite 0.8s; }
.scn-pompey-list-prisoners .pompey-pp { position:absolute; bottom:14%; left:50%; width:45px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: pp-pompey 2s ease-in-out infinite; }
.scn-pompey-list-prisoners .ledger-pp { position:absolute; bottom:10%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #c8b898 0%, #a09070 100%); border-radius: 5%; transform: translateX(-50%); animation: pp-ledger 3s ease-in-out infinite; }
.scn-pompey-list-prisoners .lamp-pp { position:absolute; top:20%; left:30%; width:10px; height:12px; background: radial-gradient(circle, #e0b868 0%, #a08030 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #c09040; animation: pp-lamp 1.6s ease-in-out infinite alternate; }
@keyframes pp-prisoner { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes pp-pompey { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.02); } }
@keyframes pp-ledger { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes pp-lamp { 0% { transform: scale(1) rotate(-3deg); } 50% { transform: scale(1.1) rotate(3deg); } 100% { transform: scale(0.95) rotate(-2deg); } }

/* Scene: abhorson-summon-barnardine */
.scn-abhorson-summon-barnardine { background: linear-gradient(180deg, #101010 0%, #1a1818 50%, #121212 100%), radial-gradient(ellipse at 40% 50%, #1e1c1c 0%, transparent 70%); }
.scn-abhorson-summon-barnardine .bg-ab { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0a 0%, #151515 100%); }
.scn-abhorson-summon-barnardine .cell-door-ab { position:absolute; bottom:10%; left:35%; right:35%; height:60%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%); border: 4px solid #1a1a1a; border-radius: 5px; box-shadow: inset 0 0 10px #000; }
.scn-abhorson-summon-barnardine .bed-ab { position:absolute; bottom:5%; left:40%; right:40%; height:8%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 5% 5%; }
.scn-abhorson-summon-barnardine .barnardine-ab { position:absolute; bottom:6%; left:42%; width:40px; height:25px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); animation: ab-barnardine 4s ease-in-out infinite; }
.scn-abhorson-summon-barnardine .hangman-ab { position:absolute; bottom:12%; left:20%; width:35px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ab-hangman 1.5s ease-in-out infinite; }
.scn-abhorson-summon-barnardine .lantern-ab { position:absolute; top:10%; left:25%; width:12px; height:16px; background: radial-gradient(circle, #e0b868 0%, #a08030 70%); border-radius: 30%; box-shadow: 0 0 18px 6px #c09040; animation: ab-lantern 3s ease-in-out infinite alternate; }
.scn-abhorson-summon-barnardine .knock-ab { position:absolute; bottom:20%; left:36%; width:10px; height:10px; background: radial-gradient(circle, #f0e0c0 0%, transparent 100%); border-radius: 50%; animation: ab-knock 1.5s ease-in-out infinite alternate; }
@keyframes ab-barnardine { 0%,100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } }
@keyframes ab-hangman { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(5deg); } 70% { transform: translateX(-3px) rotate(-3deg); } }
@keyframes ab-lantern { 0% { transform: rotate(-5deg); opacity:0.8; } 50% { transform: rotate(5deg); opacity:1; } 100% { transform: rotate(-3deg); opacity:0.9; } }
@keyframes ab-knock { 0% { transform: scale(1); opacity:0.5; } 100% { transform: scale(1.5); opacity:0; } }

.scn-duke-palace-opening {
  background:
    linear-gradient(180deg, #d4c3a8 0%, #b8a68c 40%, #8a7a64 100%),
    radial-gradient(ellipse at 50% 30%, #e8dcc0 0%, transparent 70%);
}
.scn-duke-palace-opening .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c4b49c 100%); }
.scn-duke-palace-opening .column-l { position:absolute; bottom:10%; left:12%; width:20px; height:70%; background: linear-gradient(180deg, #c4b49c 0%, #a09078 50%, #8a7a64 100%); border-radius:6px; box-shadow: 3px 0 8px rgba(0,0,0,.15); animation: dpo-pillar-l 8s ease-in-out infinite; }
.scn-duke-palace-opening .column-r { position:absolute; bottom:10%; right:12%; width:20px; height:70%; background: linear-gradient(180deg, #c4b49c 0%, #a09078 50%, #8a7a64 100%); border-radius:6px; box-shadow: -3px 0 8px rgba(0,0,0,.15); animation: dpo-pillar-r 8s ease-in-out infinite; }
.scn-duke-palace-opening .dais { position:absolute; bottom:10%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #9a8a74 0%, #7a6a54 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.25); animation: dpo-dais 6s ease-in-out infinite alternate; }
.scn-duke-palace-opening .drape-l { position:absolute; top:0; left:5%; width:30%; height:50%; background: linear-gradient(180deg, #8a5830 0%, #6a4020 50%, #4a2a10 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; box-shadow: 6px 6px 20px rgba(0,0,0,.3); animation: dpo-drape 12s ease-in-out infinite alternate; }
.scn-duke-palace-opening .drape-r { position:absolute; top:0; right:5%; width:30%; height:50%; background: linear-gradient(180deg, #8a5830 0%, #6a4020 50%, #4a2a10 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; box-shadow: -6px 6px 20px rgba(0,0,0,.3); animation: dpo-drape 12s ease-in-out infinite alternate-reverse; }
.scn-duke-palace-opening .light-beam { position:absolute; top:0; left:35%; right:35%; height:40%; background: linear-gradient(180deg, rgba(240,225,190,.4) 0%, transparent 100%); border-radius: 40% 40% 0 0; animation: dpo-beam 9s ease-in-out infinite alternate; }
.scn-duke-palace-opening .throne { position:absolute; bottom:18%; left:44%; right:44%; height:20%; background: linear-gradient(160deg, #6a4a2a 0%, #4a2a10 50%, #3a1a08 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-duke-palace-opening .cushion { position:absolute; bottom:16%; left:46%; right:46%; height:6%; background: radial-gradient(ellipse at 50% 40%, #b06030 0%, #7a4018 100%); border-radius: 50%; animation: dpo-cushion 5s ease-in-out infinite alternate; }
@keyframes dpo-pillar-l { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes dpo-pillar-r { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes dpo-dais { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dpo-drape { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(4px) rotate(.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dpo-beam { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }
@keyframes dpo-cushion { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.02) scaleY(.95) } 100% { transform: scaleX(1) scaleY(1) } }

.scn-item-commission-paper {
  background:
    linear-gradient(180deg, #c8b898 0%, #a09070 40%, #7a6a50 100%),
    radial-gradient(ellipse at 50% 60%, #d4c4a4 0%, transparent 60%);
}
.scn-item-commission-paper .table-top { position:absolute; bottom:20%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #6a5a42 0%, #4a3a28 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,.4); }
.scn-item-commission-paper .scroll { position:absolute; bottom:30%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #e8d8b8 0%, #d4c4a0 50%, #c0b090 100%); border-radius: 4% 4% 8% 8% / 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: icp-scroll 12s ease-in-out infinite alternate; }
.scn-item-commission-paper .seal { position:absolute; bottom:34%; left:48%; right:48%; height:4%; background: radial-gradient(circle, #c06040 0%, #8a3a1e 70%); border-radius: 50%; box-shadow: 0 0 8px rgba(160,60,30,.5); animation: icp-seal 6s ease-in-out infinite; }
.scn-item-commission-paper .quill { position:absolute; bottom:36%; left:55%; width:40px; height:4px; background: linear-gradient(90deg, #8a7050 0%, #6a5030 100%); border-radius: 2px; transform-origin: 0% 50%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: icp-quill 5s ease-in-out infinite alternate; }
.scn-item-commission-paper .inkwell { position:absolute; bottom:28%; left:56%; width:12px; height:10px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-item-commission-paper .candle { position:absolute; bottom:36%; left:18%; width:8px; height:20px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b088 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.15); animation: icp-candle 9s ease-in-out infinite; }
.scn-item-commission-paper .flame { position:absolute; bottom:56%; left:18%; width:6px; height:8px; margin-left:-3px; background: radial-gradient(circle, #ffd060 0%, #e08820 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 16px 4px rgba(255,208,96,.5); animation: icp-flame 2s ease-in-out infinite alternate; }
.scn-item-commission-paper .desk-edge { position:absolute; bottom:18%; left:10%; right:10%; height:4px; background: linear-gradient(90deg, transparent 0%, #4a3a28 20%, #5a4a32 50%, #4a3a28 80%, transparent 100%); border-radius: 2px; }
@keyframes icp-scroll { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes icp-seal { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes icp-quill { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-22deg) } }
@keyframes icp-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes icp-flame { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.2) rotate(5deg) } 100% { transform: scale(.9) rotate(-5deg) } }

.scn-duke-angelo-anticipation {
  background:
    linear-gradient(180deg, #d8c8a8 0%, #b8a888 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 20%, #e8dcc0 0%, transparent 70%);
}
.scn-duke-angelo-anticipation .back-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4c4a4 0%, #bcaa8a 100%); }
.scn-duke-angelo-anticipation .window-frame { position:absolute; top:15%; left:35%; right:35%; height:30%; background: linear-gradient(180deg, #9a8a72 0%, #7a6a52 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.2); }
.scn-duke-angelo-anticipation .window-glow { position:absolute; top:18%; left:37%; right:37%; height:23%; background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #d4c4a0 70%); border-radius: 10%; animation: daa-glow 8s ease-in-out infinite alternate; }
.scn-duke-angelo-anticipation .figure-seated { position:absolute; bottom:30%; left:30%; width:22px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: daa-seated 10s ease-in-out infinite; }
.scn-duke-angelo-anticipation .figure-standing { position:absolute; bottom:20%; right:28%; width:20px; height:42px; background: linear-gradient(180deg, #3a3020 0%, #1a140a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: daa-standing 8s ease-in-out infinite; }
.scn-duke-angelo-anticipation .floor-tile { position:absolute; bottom:18%; left:20%; right:20%; height:2%; background: repeating-linear-gradient(90deg, #9a8a72 0px, #9a8a72 20px, #8a7a62 20px, #8a7a62 40px); opacity:.5; animation: daa-floor 15s linear infinite; }
.scn-duke-angelo-anticipation .shadow-l { position:absolute; bottom:18%; left:25%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 100%); animation: daa-shad-l 10s ease-in-out infinite; }
.scn-duke-angelo-anticipation .shadow-r { position:absolute; bottom:18%; right:22%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 100%); animation: daa-shad-r 8s ease-in-out infinite; }
@keyframes daa-glow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes daa-seated { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes daa-standing { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes daa-floor { 0% { background-position: 0 0 } 100% { background-position: -80px 0 } }
@keyframes daa-shad-l { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }
@keyframes daa-shad-r { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-duke-angelo-meeting {
  background:
    linear-gradient(180deg, #d0c0a0 0%, #b0a080 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 40%, #e4d4b8 0%, transparent 60%);
}
.scn-duke-angelo-meeting .chamber-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4c4a4 0%, #bcaa8a 50%, #a09070 100%); }
.scn-duke-angelo-meeting .table-center { position:absolute; bottom:25%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #7a6a52 0%, #5a4a32 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 16px rgba(0,0,0,.3); }
.scn-duke-angelo-meeting .figure-duke { position:absolute; bottom:20%; left:28%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dam-duke 7s ease-in-out infinite; }
.scn-duke-angelo-meeting .figure-angelo { position:absolute; bottom:20%; right:28%; width:20px; height:36px; background: linear-gradient(180deg, #2a2018 0%, #100a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dam-angelo 7s ease-in-out infinite 3.5s; }
.scn-duke-angelo-meeting .candelabra { position:absolute; bottom:35%; left:48%; right:48%; height:12px; background: linear-gradient(180deg, #8a7a62 0%, #5a4a32 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.scn-duke-angelo-meeting .flame-1 { position:absolute; bottom:47%; left:49%; width:4px; height:6px; margin-left:-2px; background: radial-gradient(circle, #ffd060 0%, #e08820 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 12px 3px rgba(255,208,96,.4); animation: dam-flame1 2s ease-in-out infinite alternate; }
.scn-duke-angelo-meeting .flame-2 { position:absolute; bottom:47%; left:51%; width:4px; height:6px; margin-left:-2px; background: radial-gradient(circle, #ffd060 0%, #e08820 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 12px 3px rgba(255,208,96,.4); animation: dam-flame2 2.5s ease-in-out infinite alternate-reverse; }
.scn-duke-angelo-meeting .tapestry { position:absolute; top:5%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 50%, #3a1a0a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.3); animation: dam-tapestry 14s ease-in-out infinite alternate; }
@keyframes dam-duke { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dam-angelo { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dam-flame1 { 0% { transform: scale(1) rotate(0deg); opacity:.8 } 50% { transform: scale(1.3) rotate(6deg); opacity:1 } 100% { transform: scale(.9) rotate(-3deg); opacity:.7 } }
@keyframes dam-flame2 { 0% { transform: scale(1) rotate(0deg); opacity:.8 } 50% { transform: scale(1.2) rotate(-5deg); opacity:1 } 100% { transform: scale(.95) rotate(4deg); opacity:.7 } }
@keyframes dam-tapestry { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

.scn-angelo-troubled { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-angelo-troubled .shadow-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.6) 0%, transparent 60%); animation: at-shade 12s ease-in-out infinite alternate; }
.scn-angelo-troubled .wall { position:absolute; bottom:20%; left:10%; right:10%; height:70%; background: linear-gradient(90deg, #2a2a4e 0%, #3a3a5e 50%, #2a2a4e 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-angelo-troubled .table { position:absolute; bottom:15%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(200px) rotateX(5deg); }
.scn-angelo-troubled .letters { position:absolute; bottom:18%; left:32%; width:30px; height:20px; background: linear-gradient(135deg, #d4c4a0, #b8a880); border-radius:2px; box-shadow: 1px 1px 3px rgba(0,0,0,.3); animation: at-scatter 15s ease-in-out infinite; }
.scn-angelo-troubled .figure { position:absolute; bottom:15%; left:50%; width:24px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: at-pace 5s ease-in-out infinite; }
.scn-angelo-troubled .candle { position:absolute; bottom:30%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #c8a060 100%); border-radius:4px; box-shadow: 0 0 12px 4px #c88040, 0 0 24px 8px rgba(200,128,64,.3); animation: at-flicker 3s ease-in-out infinite alternate; }
.scn-angelo-troubled .shadow-figure { position:absolute; bottom:12%; left:45%; width:30px; height:80px; background: rgba(0,0,0,.3); filter: blur(6px); border-radius:50%; transform: skewX(-10deg); animation: at-shade 8s ease-in-out infinite; }
@keyframes at-shade { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes at-scatter { 0%,100% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(5px,-3px) rotate(3deg); } 50% { transform: translate(-3px,2px) rotate(-1deg); } 75% { transform: translate(2px,-1px) rotate(4deg); } }
@keyframes at-pace { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(-1deg); } 75% { transform: translateX(30px) rotate(3deg); } }
@keyframes at-flicker { 0%,100% { opacity:.9; box-shadow: 0 0 8px 2px #c88040, 0 0 16px 4px rgba(200,128,64,.3); } 50% { opacity:1; box-shadow: 0 0 20px 8px #ffa060, 0 0 40px 16px rgba(255,160,96,.5); } }

.scn-escalus-arranges { background: linear-gradient(180deg, #2e241e 0%, #4a3c32 50%, #5e4e40 100%), radial-gradient(ellipse at 50% 100%, #5e4e40 0%, transparent 60%); }
.scn-escalus-arranges .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.3) 0%, transparent 50%, rgba(0,0,0,.2) 100%); }
.scn-escalus-arranges .door { position:absolute; bottom:10%; right:15%; width:60px; height:100px; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px 4px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.5); }
.scn-escalus-arranges .figure-es { position:absolute; bottom:10%; left:40%; width:22px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ea-walk 8s ease-in-out infinite; }
.scn-escalus-arranges .lantern { position:absolute; bottom:25%; left:25%; width:10px; height:14px; background: radial-gradient(circle, #ffd680 0%, #d4a050 100%); border-radius:50%; box-shadow: 0 0 20px 6px #d4a050, 0 0 40px 12px rgba(212,160,80,.3); animation: ea-softglow 5s ease-in-out infinite alternate; }
.scn-escalus-arranges .cloak { position:absolute; bottom:15%; left:55%; width:30px; height:25px; background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 100%); border-radius:50%; transform: rotate(-20deg); animation: ea-sway 10s ease-in-out infinite; }
.scn-escalus-arranges .letter { position:absolute; bottom:20%; left:30%; width:25px; height:15px; background: linear-gradient(135deg, #d4c4a0, #b8a880); border-radius:2px; box-shadow: 1px 1px 3px rgba(0,0,0,.2); animation: ea-fade 6s ease-in-out infinite; }
@keyframes ea-walk { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(0); } 75% { transform: translateX(8px) rotate(-1deg); } }
@keyframes ea-softglow { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@keyframes ea-sway { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } }
@keyframes ea-fade { 0%,100% { opacity:.7; } 50% { opacity:1; } }

.scn-angelo-regrets { background: linear-gradient(180deg, #1e1e3a 0%, #2e2e4e 50%, #3a3a5e 100%), radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 60%); }
.scn-angelo-regrets .cell-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.5) 0%, transparent 40%, rgba(0,0,0,.3) 100%); }
.scn-angelo-regrets .window-bar { position:absolute; top:15%; left:20%; width:40px; height:60px; border:4px solid #4a4a6a; border-radius:4px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); box-shadow: inset 0 0 10px rgba(0,0,0,.3); }
.scn-angelo-regrets .figure-kneel { position:absolute; bottom:5%; left:50%; width:28px; height:50px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius:40% 40% 50% 50% / 30% 30% 60% 60%; transform: translateX(-50%); animation: ar-kneel 9s ease-in-out infinite; }
.scn-angelo-regrets .chain { position:absolute; bottom:10%; left:45%; width:30px; height:6px; background: #5a5a7a; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ar-shiver 4s ease-in-out infinite; }
.scn-angelo-regrets .light-ray { position:absolute; top:10%; left:18%; width:6px; height:80px; background: linear-gradient(180deg, rgba(200,180,140,.2) 0%, transparent 100%); transform: rotate(15deg); filter: blur(2px); animation: ar-beam 7s ease-in-out infinite alternate; }
.scn-angelo-regrets .shadow { position:absolute; bottom:0; left:30%; right:30%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); border-radius:50% 50% 0 0; animation: ar-shade 10s ease-in-out infinite; }
@keyframes ar-kneel { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes ar-shiver { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(4deg); } }
@keyframes ar-beam { 0%,100% { opacity:.3; } 50% { opacity:.8; } }
@keyframes ar-shade { 0%,100% { opacity:.6; } 50% { opacity:.9; } }

.scn-duke-in-own-habit { background: linear-gradient(180deg, #f0d8b8 0%, #d4b898 30%, #a08060 70%, #7a6a4a 100%), radial-gradient(ellipse at 50% 0%, #f0d8b8 0%, transparent 60%); }
.scn-duke-in-own-habit .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffd4a0 0%, #f0b880 40%, #d49870 100%); animation: dh-rise 20s ease-in-out infinite alternate; }
.scn-duke-in-own-habit .field { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-duke-in-own-habit .path { position:absolute; bottom:20%; left:40%; width:80px; height:15px; background: linear-gradient(90deg, #c0b090 0%, #a09070 100%); border-radius:10px; transform: perspective(100px) rotateX(30deg); animation: dh-rise 30s ease-in-out infinite; }
.scn-duke-in-own-habit .figure-duke { position:absolute; bottom:25%; left:35%; width:22px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dh-walk 12s ease-in-out infinite; }
.scn-duke-in-own-habit .figure-friar { position:absolute; bottom:25%; left:55%; width:20px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dh-walk 12s ease-in-out infinite reverse; animation-delay: -3s; }
.scn-duke-in-own-habit .letters { position:absolute; bottom:40%; left:45%; width:20px; height:12px; background: linear-gradient(135deg, #d4c4a0, #b8a880); border-radius:2px; box-shadow: 1px 1px 3px rgba(0,0,0,.2); animation: dh-float 8s ease-in-out infinite; }
.scn-duke-in-own-habit .sunrise { position:absolute; top:20%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #f0a050 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #f0a050; animation: dh-pulse 4s ease-in-out infinite alternate; }
@keyframes dh-rise { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@keyframes dh-walk { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(6px) rotate(1deg); } 50% { transform: translateX(12px) rotate(0); } 75% { transform: translateX(6px) rotate(-1deg); } }
@keyframes dh-float { 0%,100% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(3px,-4px) rotate(5deg); } }
@keyframes dh-pulse { 0%,100% { transform: scale(1); opacity:.9; } 50% { transform: scale(1.05); opacity:1; } }

.scn-street-escalus-duke {
  background: 
    linear-gradient(180deg, #70787a 0%, #9ca5a7 40%, #b5c0c2 70%, #d5dede 100%),
    radial-gradient(ellipse at 50% 0%, #8a9495 0%, transparent 60%);
}

.scn-street-escalus-duke .sed-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5f6769 0%, #8a9495 100%);
  animation: sed-sky 12s ease-in-out infinite alternate;
}
.scn-street-escalus-duke .sed-clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: 
    radial-gradient(ellipse at 20% 50%, rgba(255,255,255,0.2) 0%, transparent 50%),
    radial-gradient(ellipse at 60% 30%, rgba(255,255,255,0.15) 0%, transparent 40%),
    radial-gradient(ellipse at 85% 60%, rgba(255,255,255,0.1) 0%, transparent 45%);
  filter: blur(8px);
  animation: sed-clouds 25s linear infinite;
}
.scn-street-escalus-duke .sed-buildings {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #3f4445 0%, #52595a 60%, #6b7576 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: sed-buildings 8s ease-in-out infinite alternate;
}
.scn-street-escalus-duke .sed-street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #52595a 0%, #3f4445 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2);
}
.scn-street-escalus-duke .sed-lantern {
  position: absolute; bottom: 35%; left: 25%; width: 8px; height: 14px;
  background: #6b5f4a;
  border-radius: 20%;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.4);
}
.scn-street-escalus-duke .sed-figure {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1e2223 0%, #0f1213 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sed-figure 6s ease-in-out infinite;
}
.scn-street-escalus-duke .sed-mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.08) 0%, transparent 70%);
  filter: blur(10px);
  animation: sed-mist 15s ease-in-out infinite alternate;
}

@keyframes sed-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sed-clouds { 0% { transform: translateX(-20px); } 100% { transform: translateX(90vw); } }
@keyframes sed-buildings { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes sed-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sed-mist { 0% { opacity:0.3; transform: translateX(-10px); } 100% { opacity:0.6; transform: translateX(10px); } }

/* ------- duke-soliloquy-sword ------- */
.scn-duke-soliloquy-sword {
  background: 
    linear-gradient(180deg, #1a181a 0%, #2c282c 30%, #3f3a3f 60%, #1a181a 100%),
    radial-gradient(ellipse at 50% 60%, #2c282c 0%, transparent 70%);
}

.scn-duke-soliloquy-sword .dss-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2c282c 0%, #1a181a 50%, #2c282c 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-duke-soliloquy-sword .dss-window {
  position: absolute; top: 10%; left: 50%; width: 90px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #3f4a4f 0%, #1f282c 70%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 8px 20px rgba(0,0,0,0.4);
  animation: dss-window 8s ease-in-out infinite alternate;
}
.scn-duke-soliloquy-sword .dss-figure {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #0f0e0f 0%, #1a171a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dss-figure 4s ease-in-out infinite;
}
.scn-duke-soliloquy-sword .dss-sword {
  position: absolute; bottom: 30%; left: 48%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #4a4a4a 0%, #7a7a7a 50%, #4a4a4a 100%);
  border-radius: 40%;
  transform: rotate(30deg);
  transform-origin: left center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dss-sword 3s ease-in-out infinite alternate;
}
.scn-duke-soliloquy-sword .dss-shadow {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: dss-shadow 6s ease-in-out infinite alternate;
}
.scn-duke-soliloquy-sword .dss-light-ray {
  position: absolute; top: 10%; left: 45%; width: 20px; height: 60px;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  transform: rotate(-15deg);
  transform-origin: top center;
  animation: dss-light-ray 5s ease-in-out infinite alternate;
}

@keyframes dss-window { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes dss-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dss-sword { 0% { transform: rotate(25deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(25deg); } }
@keyframes dss-shadow { 0% { transform: scaleX(0.9); opacity:0.5; } 100% { transform: scaleX(1.1); opacity:0.8; } }
@keyframes dss-light-ray { 0% { opacity:0.2; } 100% { opacity:0.5; } }

/* ------- scheme-craft-angelo ------- */
.scn-scheme-craft-angelo {
  background: 
    linear-gradient(180deg, #19161a 0%, #2a242e 40%, #3d354a 60%, #19161a 100%),
    radial-gradient(ellipse at 50% 30%, #2f2838 0%, transparent 70%);
}

.scn-scheme-craft-angelo .sca-background {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1c1720 0%, #2a242e 50%, #1c1720 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.4);
}
.scn-scheme-craft-angelo .sca-bed {
  position: absolute; bottom: 5%; left: 30%; width: 160px; height: 40px;
  background: linear-gradient(180deg, #4a3f4a 0%, #2f2838 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-scheme-craft-angelo .sca-curtain {
  position: absolute; bottom: 10%; left: 25%; width: 200px; height: 80px;
  background: linear-gradient(180deg, #5c4e5c 0%, #3d354a 100%);
  border-radius: 0 0 30% 30%;
  filter: blur(2px);
  animation: sca-curtain 10s ease-in-out infinite alternate;
}
.scn-scheme-craft-angelo .sca-figure-1 {
  position: absolute; bottom: 8%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0f0d11 0%, #1a161e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sca-figure1 8s ease-in-out infinite;
}
.scn-scheme-craft-angelo .sca-figure-2 {
  position: absolute; bottom: 8%; left: 55%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #120f14 0%, #1e1924 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sca-figure2 8s ease-in-out infinite reverse;
}
.scn-scheme-craft-angelo .sca-lamp {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 20px;
  background: #8a7a6a;
  border-radius: 20%;
  box-shadow: 0 0 30px 8px rgba(180,150,120,0.3);
  animation: sca-lamp 5s ease-in-out infinite alternate;
}
.scn-scheme-craft-angelo .sca-web {
  position: absolute; top: 5%; right: 8%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,200,200,0.1) 1px, transparent 1px);
  background-size: 10px 10px;
  border-radius: 50%;
  filter: blur(1px);
  animation: sca-web 15s ease-in-out infinite alternate;
}

@keyframes sca-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sca-figure1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sca-figure2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sca-lamp { 0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(180,150,120,0.2); } 50% { opacity:1; box-shadow: 0 0 40px 12px rgba(180,150,120,0.4); } 100% { opacity:0.7; box-shadow: 0 0 25px 6px rgba(180,150,120,0.3); } }
@keyframes sca-web { 0% { transform: scale(0.95); opacity:0.3; } 100% { transform: scale(1.05); opacity:0.6; } }

/* ------- mariana-grange-arrival ------- */
.scn-mariana-grange-arrival {
  background: 
    linear-gradient(180deg, #b2d1e0 0%, #d2e5f0 40%, #eaf4f5 70%, #f0f7f7 100%),
    radial-gradient(ellipse at 50% 0%, #d2e5f0 0%, transparent 60%);
}

.scn-mariana-grange-arrival .mga-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #87b5d0 0%, #b2d1e0 100%);
  animation: mga-sky 15s ease-in-out infinite alternate;
}
.scn-mariana-grange-arrival .mga-sun {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f5e8c8 0%, #eac8a0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(250,220,160,0.4);
  animation: mga-sun 20s ease-in-out infinite alternate;
}
.scn-mariana-grange-arrival .mga-house {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a48a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1), inset 0 4px 10px rgba(255,255,255,0.3);
  animation: mga-house 9s ease-in-out infinite;
}
.scn-mariana-grange-arrival .mga-moat {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7aabba 0%, #6a9aaa 100%);
  border-radius: 0 0 50% 50%;
  animation: mga-moat 12s ease-in-out infinite alternate;
}
.scn-mariana-grange-arrival .mga-tree {
  position: absolute; bottom: 25%; left: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: mga-tree 8s ease-in-out infinite alternate;
}
.scn-mariana-grange-arrival .mga-figure {
  position: absolute; bottom: 20%; left: 60%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mga-figure 5s ease-in-out infinite;
}
.scn-mariana-grange-arrival .mga-flowers {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(circle, #b87878 0%, #d4a0a0 40%, transparent 70%),
              radial-gradient(circle at 50% 100%, #6aaa6a 0%, transparent 50%);
  filter: blur(1px);
  animation: mga-flowers 6s ease-in-out infinite alternate;
}

@keyframes mga-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mga-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes mga-house { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes mga-moat { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes mga-tree { 0% { transform: scaleY(1); } 100% { transform: scaleY(0.95); } }
@keyframes mga-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mga-flowers { 0% { opacity:0.7; transform: scale(0.95); } 100% { opacity:1; transform: scale(1.05); } }

/* barnardine-background */
.scn-barnardine-background {
  background: radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, #0f0f1a 60%, #050510 100%),
              linear-gradient(180deg, #0a0a14 0%, #151525 40%, #1c1c30 100%);
}
.scn-barnardine-background .cell-wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: bb-wall 12s ease-in-out infinite alternate;
}
.scn-barnardine-background .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.8);
}
.scn-barnardine-background .window-frame {
  position: absolute; top: 18%; left: 65%; width: 80px; height: 90px;
  border: 8px solid #2a2a2e; border-radius: 4px;
  background: #0a0a12;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  transform: rotate(-3deg);
}
.scn-barnardine-background .moonbeam {
  position: absolute; top: 18%; left: 65%; width: 80px; height: 90px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,210,255,0.6) 0%, transparent 80%);
  animation: bb-moon 6s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-barnardine-background .figure-slumped {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1c1c2a 0%, #12121e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bb-figure 5s ease-in-out infinite;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
}
.scn-barnardine-background .chains {
  position: absolute; bottom: 28%; left: 28%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: bb-chain 8s ease-in-out infinite alternate;
}
@keyframes bb-wall { 0% { opacity: .8; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes bb-moon { 0% { opacity: .4; transform: scale(1); } 50% { opacity: .6; transform: scale(1.02); } 100% { opacity: .35; transform: scale(0.98); } }
@keyframes bb-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bb-chain { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(1px); } 100% { transform: rotate(-2deg) translateX(-1px); } }

/* barnardine-penitence */
.scn-barnardine-penitence {
  background: radial-gradient(ellipse at 50% 60%, #1e1e30 0%, #10101a 60%, #05050a 100%),
              linear-gradient(180deg, #0e0e16 0%, #1a1a2a 50%, #0e0e16 100%);
}
.scn-barnardine-penitence .deep-shadow {
  position: absolute; inset: 20% 15% 25% 15%;
  background: radial-gradient(ellipse at 50% 40%, rgba(25,25,40,.4) 0%, transparent 70%);
  animation: bp-shadow 9s ease-in-out infinite alternate;
}
.scn-barnardine-penitence .pallet {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #2a2a32 0%, #1c1c24 100%);
  border-radius: 20% 20% 40% 40% / 15% 15% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.7);
}
.scn-barnardine-penitence .figure-lying {
  position: absolute; bottom: 22%; left: 35%; width: 60px; height: 25px;
  background: linear-gradient(180deg, #20202e 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: left center;
  animation: bp-lying 6s ease-in-out infinite;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
}
.scn-barnardine-penitence .lantern-glow {
  position: absolute; bottom: 40%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  animation: bp-glow 4s ease-in-out infinite alternate;
  transform: translateX(-50%);
}
.scn-barnardine-penitence .lantern-body {
  position: absolute; bottom: 38%; left: 50%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 10px 2px rgba(255,180,80,0.2);
}
.scn-barnardine-penitence .dust-motes {
  position: absolute; top: 20%; left: 20%; right: 20%; height: 50%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,200,0.05) 0%, transparent 50%);
  animation: bp-dust 20s linear infinite;
}
@keyframes bp-shadow { 0% { opacity: .3; } 50% { opacity: .4; } 100% { opacity: .25; } }
@keyframes bp-lying { 0% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(3deg) scaleX(1.02); } 50% { transform: rotate(-1deg) scaleX(0.98); } 75% { transform: rotate(4deg) scaleX(1.01); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes bp-glow { 0% { opacity: .4; transform: translateX(-50%) scale(1); } 50% { opacity: .7; transform: translateX(-50%) scale(1.15); } 100% { opacity: .3; transform: translateX(-50%) scale(0.95); } }
@keyframes bp-dust { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }

/* duke-proposes-swap */
.scn-duke-proposes-swap {
  background: radial-gradient(ellipse at 40% 60%, #1a1a2e 0%, #0d0d18 60%, #05050a 100%),
              linear-gradient(135deg, #12121f 0%, #1a1a2a 50%, #10101a 100%);
}
.scn-duke-proposes-swap .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #23233a 0%, #15152a 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,.7);
  animation: ds-wall 8s ease-in-out infinite alternate;
}
.scn-duke-proposes-swap .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 15% 15%;
  box-shadow: 0 6px 15px rgba(0,0,0,.8), inset 0 2px 4px rgba(255,255,255,0.05);
  transform: perspective(200px) rotateX(10deg);
}
.scn-duke-proposes-swap .duke-silhouette {
  position: absolute; bottom: 35%; left: 30%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #111120 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 10px rgba(0,0,0,.5);
  animation: ds-duke 4s ease-in-out infinite alternate;
}
.scn-duke-proposes-swap .provost-silhouette {
  position: absolute; bottom: 35%; left: 55%; width: 40px; height: 65px;
  background: linear-gradient(180deg, #15152a 0%, #0d0d1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 10px rgba(0,0,0,.5);
  animation: ds-provost 3.5s ease-in-out infinite alternate;
}
.scn-duke-proposes-swap .candle-flame {
  position: absolute; bottom: 48%; left: 48%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #ffcc80 0%, #e08030 50%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  animation: ds-flame 1.5s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 10px rgba(255,160,60,0.3), 0 0 40px 20px rgba(255,160,60,0.1);
}
.scn-duke-proposes-swap .candle-body {
  position: absolute; bottom: 42%; left: 48.5%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  transform: translateX(-50%);
}
.scn-duke-proposes-swap .scroll {
  position: absolute; bottom: 22%; left: 44%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: ds-scroll 6s ease-in-out infinite;
}
@keyframes ds-wall { 0% { opacity: .8; } 50% { opacity: .85; } 100% { opacity: .75; } }
@keyframes ds-duke { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ds-provost { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ds-flame { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.15); opacity: 1; } 100% { transform: scaleY(0.9); opacity: .7; } }
@keyframes ds-scroll { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-12deg) translateY(0); } }

/* provost-hesitates */
.scn-provost-hesitates {
  background: radial-gradient(ellipse at 45% 50%, #12121e 0%, #080812 60%, #030308 100%),
              linear-gradient(180deg, #0a0a14 0%, #141422 40%, #0a0a14 100%);
}
.scn-provost-hesitates .darkness {
  position: absolute; inset: 10% 20% 15% 20%;
  background: radial-gradient(ellipse at 50% 40%, rgba(0,0,10,.6) 0%, transparent 70%);
  animation: ph-darkness 10s ease-in-out infinite alternate;
}
.scn-provost-hesitates .hand-scroll {
  position: absolute; bottom: 35%; left: 38%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 15% 15% 30% 30%;
  transform: rotate(15deg);
  box-shadow: 0 3px 8px rgba(0,0,0,.7);
  animation: ph-hand 3s ease-in-out infinite alternate;
}
.scn-provost-hesitates .candle-flame {
  position: absolute; bottom: 55%; left: 55%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 20%, #ffcc80 0%, #e08030 50%, transparent 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  animation: ph-flame 1.6s ease-in-out infinite alternate;
  box-shadow: 0 0 12px 6px rgba(255,160,60,0.4), 0 0 30px 15px rgba(255,160,60,0.15);
}
.scn-provost-hesitates .candle-body {
  position: absolute; bottom: 48%; left: 55%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 15% 15% / 20% 20% 25% 25%;
  transform: translateX(-50%);
}
.scn-provost-hesitates .shadow-arm {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 35px;
  background: linear-gradient(180deg, #0a0a14 0%, #15152a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform: rotate(-20deg);
  box-shadow: 0 6px 12px rgba(0,0,0,.8);
  animation: ph-arm 7s ease-in-out infinite alternate;
}
@keyframes ph-darkness { 0% { opacity: .5; } 50% { opacity: .6; } 100% { opacity: .4; } }
@keyframes ph-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(18deg) translateY(1px); } }
@keyframes ph-flame { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.85); opacity: .6; } }
@keyframes ph-arm { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-18deg) translateX(-2px); } 100% { transform: rotate(-22deg) translateX(1px); } }

/* Scene 1: elbow-wife-complaint – courtroom interior */
.scn-elbow-wife-complaint {
  background: 
    linear-gradient(180deg, #f5e6cc 0%, #dac4a8 40%, #b8a08a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-elbow-wife-complaint .bg-panel {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(90deg, #c8b89a 0px, #c8b89a 4px, #d4c4a6 4px, #d4c4a6 8px);
  border-bottom: 6px solid #a08a6a;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: ewc-panel 20s ease-in-out infinite alternate;
}
.scn-elbow-wife-complaint .bench {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ewc-bench 10s ease-in-out infinite alternate;
}
.scn-elbow-wife-complaint .judge {
  position: absolute; bottom: 30%; left: 32%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewc-judge 8s ease-in-out infinite;
}
.scn-elbow-wife-complaint .complainant {
  position: absolute; bottom: 30%; left: 58%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ewc-complainant 12s ease-in-out infinite alternate;
}
.scn-elbow-wife-complaint .lamp {
  position: absolute; top: 8%; left: 44%; width: 6%; height: 10%;
  background: radial-gradient(circle, #ffd680 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,214,128,0.6), 0 0 60px 30px rgba(255,214,128,0.3);
  animation: ewc-lamp 3s ease-in-out infinite alternate;
}
.scn-elbow-wife-complaint .gavel {
  position: absolute; bottom: 28%; left: 34%; width: 4%; height: 3%;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ewc-gavel 4s ease-in-out infinite;
}
@keyframes ewc-panel {
  0% { opacity: 0.85 }
  50% { opacity: 1 }
  100% { opacity: 0.9 }
}
@keyframes ewc-bench {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) scale(1.01) }
  100% { transform: translateY(0) }
}
@keyframes ewc-judge {
  0% { transform: rotate(-2deg) }
  50% { transform: rotate(2deg) }
  100% { transform: rotate(-1deg) }
}
@keyframes ewc-complainant {
  0% { transform: translateX(0) rotate(0) }
  50% { transform: translateX(4px) rotate(1deg) }
  100% { transform: translateX(0) rotate(-1deg) }
}
@keyframes ewc-lamp {
  0% { box-shadow: 0 0 20px 10px rgba(255,214,128,0.5), 0 0 40px 20px rgba(255,214,128,0.2); opacity: 0.8 }
  50% { box-shadow: 0 0 40px 20px rgba(255,214,128,0.8), 0 0 80px 40px rgba(255,214,128,0.4); opacity: 1 }
  100% { box-shadow: 0 0 25px 12px rgba(255,214,128,0.6), 0 0 50px 25px rgba(255,214,128,0.3); opacity: 0.9 }
}
@keyframes ewc-gavel {
  0% { transform: translateY(0) rotate(0) }
  30% { transform: translateY(-8px) rotate(10deg) }
  50% { transform: translateY(0) rotate(-5deg) }
  70% { transform: translateY(-5px) rotate(5deg) }
  100% { transform: translateY(0) rotate(0) }
}

/* Scene 2: bunch-of-grapes-tavern – warm interior with table and window */
.scn-bunch-of-grapes-tavern {
  background: 
    linear-gradient(180deg, #e8d6b0 0%, #c4a87a 50%, #a08050 100%),
    radial-gradient(ellipse at 80% 20%, #f5e6cc 0%, transparent 60%);
}
.scn-bunch-of-grapes-tavern .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: repeating-linear-gradient(0deg, #b89a6a 0px, #b89a6a 6px, #c8aa7a 6px, #c8aa7a 12px);
  border-bottom: 8px solid #7a5a3a;
  animation: bgt-wall 15s ease-in-out infinite alternate;
}
.scn-bunch-of-grapes-tavern .table {
  position: absolute; bottom: 18%; left: 15%; width: 70%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: bgt-table 20s ease-in-out infinite;
}
.scn-bunch-of-grapes-tavern .mug1 {
  position: absolute; bottom: 22%; left: 25%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bgt-mug1 5s ease-in-out infinite alternate;
}
.scn-bunch-of-grapes-tavern .mug2 {
  position: absolute; bottom: 22%; left: 45%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #d4b07a 0%, #b89050 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bgt-mug2 6s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-bunch-of-grapes-tavern .window {
  position: absolute; top: 8%; right: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at center, #ffe0a0 0%, #b08040 70%);
  border: 6px solid #5a3a1a;
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(255,224,160,0.3);
  animation: bgt-window 8s ease-in-out infinite alternate;
}
.scn-bunch-of-grapes-tavern .grapes {
  position: absolute; top: 10%; left: 35%; width: 12%; height: 16%;
  background: radial-gradient(circle at 30% 30%, #7a2040 0%, #4a1020 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bgt-grapes 7s ease-in-out infinite alternate;
}
@keyframes bgt-wall {
  0% { opacity: 0.9 }
  50% { opacity: 1 }
  100% { opacity: 0.85 }
}
@keyframes bgt-table {
  0% { transform: translateY(0) }
  50% { transform: translateY(-3px) }
  100% { transform: translateY(0) }
}
@keyframes bgt-mug1 {
  0% { transform: rotate(-3deg) translateY(0) }
  50% { transform: rotate(2deg) translateY(-2px) }
  100% { transform: rotate(-1deg) translateY(0) }
}
@keyframes bgt-mug2 {
  0% { transform: rotate(2deg) translateY(0) }
  50% { transform: rotate(-3deg) translateY(-2px) }
  100% { transform: rotate(1deg) translateY(0) }
}
@keyframes bgt-window {
  0% { box-shadow: inset 0 0 15px rgba(255,224,160,0.2); }
  50% { box-shadow: inset 0 0 30px rgba(255,224,160,0.5); }
  100% { box-shadow: inset 0 0 20px rgba(255,224,160,0.3); }
}
@keyframes bgt-grapes {
  0% { transform: rotate(0) scale(0.95) }
  50% { transform: rotate(5deg) scale(1.05) }
  100% { transform: rotate(-2deg) scale(1) }
}

/* Scene 3: froth-face-defense – two profile heads and a pointing hand */
.scn-froth-face-defense {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #d0b890 100%),
    radial-gradient(circle at 50% 30%, #fff5e0 0%, transparent 70%);
}
.scn-froth-face-defense .bg-face {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #e8d0b0 0%, #c8a880 100%);
  opacity: 0.6;
  animation: ffd-bg 10s ease-in-out infinite alternate;
}
.scn-froth-face-defense .head1 {
  position: absolute; bottom: 30%; left: 20%; width: 15%; height: 28%;
  background: linear-gradient(180deg, #d4b89a 0%, #a88a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.2));
  animation: ffd-head1 8s ease-in-out infinite alternate;
}
.scn-froth-face-defense .head2 {
  position: absolute; bottom: 30%; right: 20%; width: 15%; height: 28%;
  background: linear-gradient(180deg, #c8a88a 0%, #9a7a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: drop-shadow(-2px 4px 6px rgba(0,0,0,0.2));
  animation: ffd-head2 9s ease-in-out infinite alternate;
}
.scn-froth-face-defense .hand-point {
  position: absolute; bottom: 35%; left: 42%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #d4b89a 0%, #a88a6a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: ffd-hand 3s ease-in-out infinite;
}
.scn-froth-face-defense .chest {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ffd-chest 12s ease-in-out infinite alternate;
}
@keyframes ffd-bg {
  0% { opacity: 0.5 }
  50% { opacity: 0.7 }
  100% { opacity: 0.5 }
}
@keyframes ffd-head1 {
  0% { transform: rotate(-3deg) }
  50% { transform: rotate(2deg) }
  100% { transform: rotate(-1deg) }
}
@keyframes ffd-head2 {
  0% { transform: rotate(2deg) }
  50% { transform: rotate(-3deg) }
  100% { transform: rotate(0deg) }
}
@keyframes ffd-hand {
  0% { transform: translateY(0) rotate(-5deg) }
  25% { transform: translateY(-5px) rotate(0deg) }
  50% { transform: translateY(0) rotate(5deg) }
  75% { transform: translateY(-3px) rotate(-2deg) }
  100% { transform: translateY(0) rotate(0deg) }
}
@keyframes ffd-chest {
  0% { transform: translateY(0) }
  50% { transform: translateY(-4px) }
  100% { transform: translateY(0) }
}

/* Scene 4: elbow-respected-argument – three silhouettes arguing */
.scn-elbow-respected-argument {
  background: 
    linear-gradient(180deg, #e8d6b0 0%, #c4a87a 50%, #b09060 100%),
    radial-gradient(ellipse at 30% 50%, #f0e0c8 0%, transparent 60%);
}
.scn-elbow-respected-argument .bg-room {
  position: absolute; inset: 0 0 15% 0;
  background: repeating-linear-gradient(90deg, #b89a6a 0px, #b89a6a 3px, #c8aa7a 3px, #c8aa7a 6px);
  border-bottom: 4px solid #8a6a4a;
  animation: era-bg 18s ease-in-out infinite alternate;
}
.scn-elbow-respected-argument .figure1 {
  position: absolute; bottom: 20%; left: 15%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: era-fig1 7s ease-in-out infinite alternate;
}
.scn-elbow-respected-argument .figure2 {
  position: absolute; bottom: 20%; right: 15%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: era-fig2 9s ease-in-out infinite alternate;
}
.scn-elbow-respected-argument .figure3 {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: era-fig3 11s ease-in-out infinite alternate;
}
.scn-elbow-respected-argument .hat {
  position: absolute; bottom: 45%; left: 12%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: era-hat 6s ease-in-out infinite alternate;
}
@keyframes era-bg {
  0% { opacity: 0.85 }
  50% { opacity: 1 }
  100% { opacity: 0.9 }
}
@keyframes era-fig1 {
  0% { transform: rotate(-3deg) translateY(0) }
  50% { transform: rotate(2deg) translateY(-3px) }
  100% { transform: rotate(-1deg) translateY(0) }
}
@keyframes era-fig2 {
  0% { transform: rotate(2deg) translateY(0) }
  50% { transform: rotate(-3deg) translateY(-2px) }
  100% { transform: rotate(1deg) translateY(0) }
}
@keyframes era-fig3 {
  0% { transform: rotate(0deg) }
  50% { transform: rotate(1deg) translateY(-4px) }
  100% { transform: rotate(-1deg) }
}
@keyframes era-hat {
  0% { transform: rotate(-12deg) translateX(0) }
  50% { transform: rotate(-8deg) translateX(3px) }
  100% { transform: rotate(-10deg) translateX(0) }
}

.scn-duke-questions-visitors { background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #DEB887 100%), radial-gradient(ellipse at 50% 0%, #FFFACD 0%, transparent 60%); }
.scn-duke-questions-visitors .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 100%); animation: dqv-sky 15s ease-in-out infinite alternate; }
.scn-duke-questions-visitors .wall { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #DEB887 0%, #C4A882 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); animation: dqv-wall 20s ease-in-out infinite alternate; }
.scn-duke-questions-visitors .bench { position:absolute; bottom:28%; left:20%; width:100px; height:20px; background: linear-gradient(90deg, #8B4513 0%, #A0522D 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: rotate(-2deg); animation: dqv-bench 8s ease-in-out infinite; }
.scn-duke-questions-visitors .figure-duke { position:absolute; bottom:28%; left:22%; width:30px; height:50px; background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dqv-figure 6s ease-in-out infinite; }
.scn-duke-questions-visitors .figure-isabella { position:absolute; bottom:28%; left:55%; width:28px; height:48px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dqv-approach 5s ease-in-out infinite alternate; }
.scn-duke-questions-visitors .tree { position:absolute; bottom:30%; right:5%; width:60px; height:120px; background: linear-gradient(180deg, #228B22 0%, #006400 100%); border-radius: 50% 50% 40% 40% / 80% 80% 60% 60%; transform-origin: bottom center; animation: dqv-tree 12s ease-in-out infinite; }
.scn-duke-questions-visitors .leaves { position:absolute; bottom:80%; right:8%; width:70px; height:30px; background: radial-gradient(ellipse, #32CD32 0%, transparent 70%); filter: blur(3px); animation: dqv-leaves 4s ease-in-out infinite alternate; }
.scn-duke-questions-visitors .bird { position:absolute; top:15%; left:10%; width:12px; height:8px; background: #333; border-radius: 50%; animation: dqv-bird 20s linear infinite; }
@keyframes dqv-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes dqv-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dqv-bench { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-1px) } }
@keyframes dqv-figure { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes dqv-approach { 0% { transform: translateX(0) } 100% { transform: translateX(-10px) } }
@keyframes dqv-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes dqv-leaves { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes dqv-bird { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(40vw) translateY(-10px) } 100% { transform: translateX(80vw) translateY(0) } }

.scn-item-garden-keys { background: linear-gradient(180deg, #FFD700 0%, #B8860B 50%, #8B6508 100%), radial-gradient(circle at 30% 50%, #FFFACD 0%, transparent 60%); }
.scn-item-garden-keys .gate { position:absolute; bottom:10%; left:40%; width:80px; height:140px; background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%); border-radius: 5px 5px 0 0; box-shadow: 4px 0 12px rgba(0,0,0,.4); animation: igk-gate 18s ease-in-out infinite; }
.scn-item-garden-keys .figure-giver { position:absolute; bottom:15%; left:20%; width:30px; height:55px; background: linear-gradient(180deg, #556B2F 0%, #2E4A1E 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: igk-giver 3s ease-in-out infinite; }
.scn-item-garden-keys .figure-receiver { position:absolute; bottom:15%; left:55%; width:30px; height:55px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: igk-receiver 3s ease-in-out infinite alternate; }
.scn-item-garden-keys .key { position:absolute; bottom:35%; left:40%; width:20px; height:10px; background: #FFD700; border-radius: 2px; box-shadow: 0 0 12px #FFD700, 0 0 24px rgba(255,215,0,.5); animation: igk-key 2s ease-in-out infinite alternate; transform: rotate(-15deg); }
.scn-item-garden-keys .shadow-tree { position:absolute; bottom:0; right:10%; width:100px; height:200px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(8px); animation: igk-shadow 6s ease-in-out infinite alternate; }
.scn-item-garden-keys .dust { position:absolute; top:20%; left:30%; width:4px; height:4px; background: #FFF8DC; border-radius: 50%; box-shadow: 0 0 6px #FFF8DC; animation: igk-dust 4s ease-in-out infinite; }
@keyframes igk-gate { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes igk-giver { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes igk-receiver { 0% { transform: translateX(0) } 100% { transform: translateX(-5px) } }
@keyframes igk-key { 0% { transform: rotate(-15deg) translateY(0); opacity: .8 } 100% { transform: rotate(-15deg) translateY(-4px); opacity: 1 } }
@keyframes igk-shadow { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.05) } }
@keyframes igk-dust { 0% { opacity: .3; transform: translateY(0) } 100% { opacity: .9; transform: translateY(-20px) } }

.scn-isabella-garden-plan { background: linear-gradient(180deg, #228B22 0%, #006400 40%, #2E4A1E 100%), radial-gradient(ellipse at 60% 30%, #90EE90 0%, transparent 70%); }
.scn-isabella-garden-plan .hedge-bg { position:absolute; inset:20% 10% 15% 10%; background: linear-gradient(180deg, #3CB371 0%, #228B22 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: igp-hedge 14s ease-in-out infinite; }
.scn-isabella-garden-plan .figure-isabella { position:absolute; bottom:20%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: igp-whisper 3s ease-in-out infinite; }
.scn-isabella-garden-plan .figure-duke { position:absolute; bottom:20%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: igp-whisper 3s ease-in-out infinite reverse; }
.scn-isabella-garden-plan .scroll { position:absolute; bottom:30%; left:42%; width:24px; height:16px; background: #F5DEB3; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(10deg); animation: igp-scroll 5s ease-in-out infinite alternate; }
.scn-isabella-garden-plan .footstep { position:absolute; bottom:12%; left:25%; width:10px; height:5px; background: #8B6508; border-radius: 50%; opacity: .5; animation: igp-footstep 10s linear infinite; }
.scn-isabella-garden-plan .bird-flit { position:absolute; top:10%; left:20%; width:10px; height:7px; background: #333; border-radius: 50%; animation: igp-bird 12s linear infinite; }
@keyframes igp-hedge { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes igp-whisper { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes igp-scroll { 0% { transform: rotate(10deg) translateY(0) } 100% { transform: rotate(10deg) translateY(-3px); opacity: .7 } }
@keyframes igp-footstep { 0% { opacity: 0; transform: translateX(0) } 50% { opacity: .8; transform: translateX(40px) } 100% { opacity: 0; transform: translateX(80px) } }
@keyframes igp-bird { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(30vw) translateY(-8px) } 100% { transform: translateX(60vw) translateY(0) } }

.scn-mariana-introduction-by-duke { background: linear-gradient(180deg, #2C3E50 0%, #34495E 30%, #5D6D7E 60%, #F5CBA7 100%), radial-gradient(ellipse at 60% 90%, #E59866 0%, transparent 50%); }
.scn-mariana-introduction-by-duke .sky-twilight { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1A252F 0%, #2C3E50 100%); animation: mid-sky 10s ease-in-out infinite alternate; }
.scn-mariana-introduction-by-duke .castle-silhouette { position:absolute; bottom:30%; left:0; right:70%; height:40%; background: linear-gradient(180deg, #1C2833 0%, #000000 100%); border-radius: 0 20% 0 0; filter: blur(2px); animation: mid-castle 20s ease-in-out infinite; }
.scn-mariana-introduction-by-duke .door { position:absolute; bottom:20%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #6E2C00 0%, #3E1F00 100%); border-radius: 5px 5px 0 0; box-shadow: 0 0 20px rgba(230,152,102,.3); animation: mid-door 8s ease-in-out infinite; }
.scn-mariana-introduction-by-duke .figure-duke { position:absolute; bottom:22%; left:35%; width:30px; height:55px; background: linear-gradient(180deg, #5D6D7E 0%, #2C3E50 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mid-figure-duke 6s ease-in-out infinite; }
.scn-mariana-introduction-by-duke .figure-mariana { position:absolute; bottom:22%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #FAD7A0 0%, #E59866 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mid-figure-mariana 4s ease-in-out infinite alternate; }
.scn-mariana-introduction-by-duke .lantern { position:absolute; bottom:33%; left:38%; width:8px; height:12px; background: #FFD700; border-radius: 2px; box-shadow: 0 0 16px 4px #FFD700, 0 0 32px 8px rgba(255,215,0,.4); animation: mid-lantern 3s ease-in-out infinite alternate; }
.scn-mariana-introduction-by-duke .ivy { position:absolute; bottom:40%; left:45%; width:15px; height:30px; background: #2E7D32; border-radius: 50% 50% 0 0; filter: blur(1px); animation: mid-ivy 5s ease-in-out infinite; }
@keyframes mid-sky { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes mid-castle { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes mid-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes mid-figure-duke { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes mid-figure-mariana { 0% { transform: translateX(0) } 100% { transform: translateX(-8px) } }
@keyframes mid-lantern { 0% { box-shadow: 0 0 16px 4px #FFD700, 0 0 32px 8px rgba(255,215,0,.4); opacity: .85 } 100% { box-shadow: 0 0 24px 8px #FFD700, 0 0 48px 16px rgba(255,215,0,.6); opacity: 1 } }
@keyframes mid-ivy { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(1) } }

/* ---------- angelo-deflects ---------- */
.scn-angelo-deflects {
  background: linear-gradient(180deg, #f8e8c0 0%, #d4c094 40%, #9a7a5a 100%), radial-gradient(ellipse at 30% 20%, #fff4d0 0%, transparent 60%);
}
.scn-angelo-deflects .window {
  position: absolute; top: 5%; left: 10%; width: 40%; height: 60%;
  background: linear-gradient(135deg, #fff9e6 0%, #bfa87a 100%);
  border-radius: 4% / 3%; box-shadow: inset 0 0 30px rgba(255,200,100,0.5);
  animation: ad-window 12s ease-in-out infinite alternate;
}
.scn-angelo-deflects .light-beam {
  position: absolute; top: 10%; left: 15%; width: 35%; height: 80%;
  background: linear-gradient(135deg, rgba(255,230,180,0.15) 0%, transparent 100%);
  transform: skewX(-5deg); filter: blur(8px);
  animation: ad-beam 6s ease-in-out infinite alternate;
}
.scn-angelo-deflects .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
.scn-angelo-deflects .column {
  position: absolute; bottom: 25%; left: 40%; width: 8%; height: 75%;
  background: linear-gradient(90deg, #b09870, #806040, #b09870);
  border-radius: 5%; box-shadow: 4px 0 8px rgba(0,0,0,0.2);
}
.scn-angelo-deflects .figure-angelo {
  position: absolute; bottom: 25%; left: 48%; width: 12%; height: 55%;
  background: linear-gradient(135deg, #3a2a1a 30%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ad-angelo-turn 5s ease-in-out infinite alternate;
}
.scn-angelo-deflects .figure-isabella {
  position: absolute; bottom: 25%; left: 60%; width: 10%; height: 50%;
  background: linear-gradient(135deg, #5a3a2a 30%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ad-isabella-reach 3s ease-in-out infinite alternate;
}
.scn-angelo-deflects .shadow-angelo {
  position: absolute; bottom: 25%; left: 46%; width: 16%; height: 20%;
  background: rgba(0,0,0,0.3); border-radius: 50%;
  filter: blur(6px); animation: ad-shad-angelo 5s ease-in-out infinite alternate;
}
.scn-angelo-deflects .shadow-isabella {
  position: absolute; bottom: 25%; left: 58%; width: 14%; height: 18%;
  background: rgba(0,0,0,0.25); border-radius: 50%;
  filter: blur(6px); animation: ad-shad-isabella 3s ease-in-out infinite alternate;
}
@keyframes ad-window {
  0% { opacity:0.85; transform:scaleY(1) }
  50% { opacity:1; transform:scaleY(1.02) }
  100% { opacity:0.9; transform:scaleY(1) }
}
@keyframes ad-beam {
  0% { opacity:0.4; transform:skewX(-5deg) translateX(0) }
  50% { opacity:0.7; transform:skewX(-8deg) translateX(4px) }
  100% { opacity:0.5; transform:skewX(-5deg) translateX(0) }
}
@keyframes ad-angelo-turn {
  0% { transform: translateX(0) rotate(0deg) scaleX(1) }
  50% { transform: translateX(-8px) rotate(8deg) scaleX(0.95) }
  100% { transform: translateX(0) rotate(0deg) scaleX(1) }
}
@keyframes ad-isabella-reach {
  0% { transform: translateY(0) rotate(-3deg) scaleY(1) }
  50% { transform: translateY(-6px) rotate(5deg) scaleY(1.05) }
  100% { transform: translateY(0) rotate(-3deg) scaleY(1) }
}
@keyframes ad-shad-angelo {
  0% { transform: translateX(0) scaleX(1); opacity:0.3 }
  50% { transform: translateX(-10px) scaleX(1.1); opacity:0.5 }
  100% { transform: translateX(0) scaleX(1); opacity:0.3 }
}
@keyframes ad-shad-isabella {
  0% { transform: translateY(0) scaleY(1); opacity:0.25 }
  50% { transform: translateY(-4px) scaleY(0.8); opacity:0.4 }
  100% { transform: translateY(0) scaleY(1); opacity:0.25 }
}

/* ---------- isabella-pleads-sanity ---------- */
.scn-isabella-pleads-sanity {
  background: linear-gradient(180deg, #ffe6b0 0%, #c8a878 40%, #806040 100%), radial-gradient(ellipse at 50% 30%, #fff4d0 0%, transparent 60%);
}
.scn-isabella-pleads-sanity .cell-bars {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(60,40,20,0.4) 20px, rgba(60,40,20,0.4) 22px);
  pointer-events: none;
}
.scn-isabella-pleads-sanity .light-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 80%);
  filter: blur(12px); animation: ips-shaft 8s ease-in-out infinite alternate;
}
.scn-isabella-pleads-sanity .figure {
  position: absolute; bottom: 15%; left: 45%; width: 14%; height: 70%;
  background: linear-gradient(135deg, #4a2a1a 20%, #1a0a00 100%);
  border-radius: 45% 45% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center; animation: ips-figure 4s ease-in-out infinite alternate;
}
.scn-isabella-pleads-sanity .arms {
  position: absolute; bottom: 55%; left: 43%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #4a2a1a, #2a1a0a);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ips-arms 2.5s ease-in-out infinite alternate;
}
.scn-isabella-pleads-sanity .shadow {
  position: absolute; bottom: 15%; left: 42%; width: 20%; height: 12%;
  background: rgba(0,0,0,0.35); border-radius: 50%;
  filter: blur(6px); animation: ips-shadow 4s ease-in-out infinite alternate;
}
.scn-isabella-pleads-sanity .dust {
  position: absolute; top: 30%; left: 40%; width: 4%; height: 4%;
  background: radial-gradient(circle, rgba(255,230,180,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ips-dust 10s linear infinite;
}
@keyframes ips-shaft {
  0% { opacity:0.3; transform:scaleX(1) }
  50% { opacity:0.6; transform:scaleX(1.1) }
  100% { opacity:0.4; transform:scaleX(1) }
}
@keyframes ips-figure {
  0% { transform: translateY(0) rotate(-1deg) scaleY(1) }
  50% { transform: translateY(-10px) rotate(3deg) scaleY(1.05) }
  100% { transform: translateY(0) rotate(-1deg) scaleY(1) }
}
@keyframes ips-arms {
  0% { transform: translateY(0) rotate(-20deg) scaleX(1) }
  50% { transform: translateY(-4px) rotate(30deg) scaleX(1.2) }
  100% { transform: translateY(0) rotate(-20deg) scaleX(1) }
}
@keyframes ips-shadow {
  0% { transform: translateX(0) scaleX(1); opacity:0.35 }
  50% { transform: translateX(4px) scaleX(1.15); opacity:0.5 }
  100% { transform: translateX(0) scaleX(1); opacity:0.35 }
}
@keyframes ips-dust {
  0% { transform: translateY(0) translateX(0) scale(1); opacity:0.6 }
  25% { transform: translateY(-15px) translateX(8px) scale(0.5); opacity:0.3 }
  50% { transform: translateY(-30px) translateX(-5px) scale(0.2); opacity:0.1 }
  75% { transform: translateY(-45px) translateX(10px) scale(0.8); opacity:0.4 }
  100% { transform: translateY(-60px) translateX(0) scale(1); opacity:0.6 }
}

/* ---------- duke-suggests-reason ---------- */
.scn-duke-suggests-reason {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 40%, #907050 100%), radial-gradient(ellipse at 50% 0%, #fff4d0 0%, transparent 60%);
}
.scn-duke-suggests-reason .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #a0c8e0 0%, #c8e0f0 100%);
  animation: dsr-sky 20s ease-in-out infinite alternate;
}
.scn-duke-suggests-reason .arch {
  position: absolute; top: 15%; left: 10%; width: 80%; height: 50%;
  border: 8px solid #b09870; border-bottom: none;
  border-radius: 50% 50% 0 0;
  background: transparent; box-shadow: 0 0 20px rgba(160,130,100,0.3);
}
.scn-duke-suggests-reason .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #806040 0%, #503020 100%);
  border-radius: 20% 20% 0 0;
}
.scn-duke-suggests-reason .figure-duke {
  position: absolute; bottom: 30%; left: 35%; width: 12%; height: 50%;
  background: linear-gradient(135deg, #3a2a1a, #1a0a00);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: dsr-duke 10s ease-in-out infinite alternate;
}
.scn-duke-suggests-reason .figure-isabella {
  position: absolute; bottom: 30%; left: 52%; width: 10%; height: 45%;
  background: linear-gradient(135deg, #4a2a1a, #2a1a0a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: dsr-isabella 8s ease-in-out infinite alternate;
}
.scn-duke-suggests-reason .light-pool {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,230,180,0.2) 0%, transparent 100%);
  animation: dsr-pool 12s ease-in-out infinite alternate;
}
.scn-duke-suggests-reason .leaves {
  position: absolute; top: 5%; right: 8%; width: 12%; height: 18%;
  background: radial-gradient(circle at 50% 50%, #60a040 0%, #306020 100%);
  border-radius: 60% 40% 50% 50% / 50% 50% 60% 40%;
  filter: blur(2px); animation: dsr-leaves 25s linear infinite;
}
@keyframes dsr-sky {
  0% { opacity:0.8; transform:scaleY(1) }
  50% { opacity:1; transform:scaleY(1.02) }
  100% { opacity:0.85; transform:scaleY(1) }
}
@keyframes dsr-duke {
  0% { transform: translateY(0) rotate(0deg) scaleX(1) }
  50% { transform: translateY(-2px) rotate(1deg) scaleX(1.01) }
  100% { transform: translateY(0) rotate(0deg) scaleX(1) }
}
@keyframes dsr-isabella {
  0% { transform: translateY(0) rotate(0deg) scaleY(1) }
  50% { transform: translateY(-1px) rotate(-1deg) scaleY(1.01) }
  100% { transform: translateY(0) rotate(0deg) scaleY(1) }
}
@keyframes dsr-pool {
  0% { opacity:0.2; transform:scale(1) }
  50% { opacity:0.4; transform:scale(1.05) }
  100% { opacity:0.25; transform:scale(1) }
}
@keyframes dsr-leaves {
  0% { transform: translateX(0) rotate(0deg) scale(1); opacity:0.6 }
  25% { transform: translateX(-10px) rotate(20deg) scale(1.1); opacity:0.8 }
  50% { transform: translateX(-20px) rotate(40deg) scale(0.9); opacity:0.5 }
  75% { transform: translateX(-10px) rotate(60deg) scale(1.05); opacity:0.7 }
  100% { transform: translateX(0) rotate(80deg) scale(1); opacity:0.6 }
}

/* ---------- lucio-interrupts-again ---------- */
.scn-lucio-interrupts-again {
  background: linear-gradient(180deg, #f0e0b0 0%, #c8a878 50%, #907050 100%), radial-gradient(ellipse at 50% 30%, #fff4d0 0%, transparent 60%);
}
.scn-lucio-interrupts-again .stage-bg {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, #d0b890, #a08870);
  border: 4px solid #806040; box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-lucio-interrupts-again .figure-duke {
  position: absolute; bottom: 20%; left: 25%; width: 14%; height: 60%;
  background: linear-gradient(135deg, #4a3a2a, #2a1a0a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lia-duke 6s ease-in-out infinite alternate;
}
.scn-lucio-interrupts-again .figure-isabella {
  position: absolute; bottom: 20%; left: 42%; width: 11%; height: 55%;
  background: linear-gradient(135deg, #5a3a2a, #3a1a0a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lia-isabella 4s ease-in-out infinite alternate;
}
.scn-lucio-interrupts-again .figure-lucio {
  position: absolute; bottom: 20%; left: 60%; width: 10%; height: 50%;
  background: linear-gradient(135deg, #b85830, #803818);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lia-lucio 1.5s ease-in-out infinite;
}
.scn-lucio-interrupts-again .speech-burst {
  position: absolute; top: 15%; left: 58%; width: 20%; height: 15%;
  background: radial-gradient(ellipse, #ffe890 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: lia-burst 2s ease-in-out infinite alternate;
}
.scn-lucio-interrupts-again .shadow-lucio {
  position: absolute; bottom: 20%; left: 60%; width: 14%; height: 10%;
  background: rgba(0,0,0,0.3); border-radius: 50%;
  filter: blur(5px); animation: lia-shadow-lucio 1.5s ease-in-out infinite;
}
@keyframes lia-duke {
  0% { transform: translateY(0) rotate(-2deg) scaleX(1) }
  50% { transform: translateY(-2px) rotate(0deg) scaleX(1.02) }
  100% { transform: translateY(0) rotate(-2deg) scaleX(1) }
}
@keyframes lia-isabella {
  0% { transform: translateY(0) rotate(0deg) scaleY(1) }
  50% { transform: translateY(-3px) rotate(2deg) scaleY(1.03) }
  100% { transform: translateY(0) rotate(0deg) scaleY(1) }
}
@keyframes lia-lucio {
  0% { transform: translateY(0) rotate(0deg) scale(1) }
  20% { transform: translateY(-12px) rotate(10deg) scale(1.1) }
  40% { transform: translateY(-4px) rotate(-5deg) scale(0.95) }
  60% { transform: translateY(-8px) rotate(8deg) scale(1.05) }
  80% { transform: translateY(-2px) rotate(-3deg) scale(1) }
  100% { transform: translateY(0) rotate(0deg) scale(1) }
}
@keyframes lia-burst {
  0% { opacity:0.2; transform:scale(0.8) }
  50% { opacity:0.7; transform:scale(1.2) }
  100% { opacity:0.3; transform:scale(0.9) }
}
@keyframes lia-shadow-lucio {
  0% { transform: translateX(0) scaleX(1); opacity:0.3 }
  20% { transform: translateX(6px) scaleX(1.3); opacity:0.5 }
  40% { transform: translateX(-2px) scaleX(0.8); opacity:0.2 }
  60% { transform: translateX(4px) scaleX(1.2); opacity:0.4 }
  80% { transform: translateX(-1px) scaleX(0.9); opacity:0.25 }
  100% { transform: translateX(0) scaleX(1); opacity:0.3 }
}

.scn-pompey-joins-trade {
  background: linear-gradient(180deg, #2a1b12 0%, #3d271a 40%, #1a0f0a 100%),
              radial-gradient(ellipse at 50% 80%, #4a2e1a 0%, transparent 70%);
}
.scn-pompey-joins-trade .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1b12 0%, #1a0f0a 100%);
  animation: pjt-wall 10s ease-in-out infinite alternate;
}
.scn-pompey-joins-trade .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-pompey-joins-trade .figure-pompey {
  position: absolute; bottom: 20%; left: 25%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pjt-bow 4s ease-in-out infinite;
}
.scn-pompey-joins-trade .figure-abhorson {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a180e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pjt-stand 4s ease-in-out infinite alternate;
}
.scn-pompey-joins-trade .lantern {
  position: absolute; bottom: 50%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #e0a050 0%, #b07030 60%, #4a2e1a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(192,128,64,.6), 0 0 40px 12px rgba(192,128,64,.3);
  animation: pjt-flicker 2s ease-in-out infinite alternate;
}
.scn-pompey-joins-trade .gallows {
  position: absolute; bottom: 25%; left: 60%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
}
.scn-pompey-joins-trade .gallows::before {
  content: ''; position: absolute; top: 0; left: -16px; width: 40px; height: 6px;
  background: linear-gradient(90deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
}
@keyframes pjt-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes pjt-bow { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } }
@keyframes pjt-stand { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes pjt-flicker { 0% { opacity: .7; box-shadow: 0 0 14px 3px rgba(192,128,64,.5) } 50% { opacity: 1; box-shadow: 0 0 30px 8px rgba(224,160,80,.8) } 100% { opacity: .8; box-shadow: 0 0 18px 4px rgba(192,128,64,.6) } }

.scn-abhorson-objection {
  background: linear-gradient(180deg, #2a1b12 0%, #3d271a 40%, #1a0f0a 100%),
              radial-gradient(ellipse at 50% 80%, #4a2e1a 0%, transparent 70%);
}
.scn-abhorson-objection .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1b12 0%, #1a0f0a 100%);
  animation: abh-wall 12s ease-in-out infinite alternate;
}
.scn-abhorson-objection .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-abhorson-objection .figure-abhorson {
  position: absolute; bottom: 20%; left: 35%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a180e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: abh-point 5s ease-in-out infinite;
}
.scn-abhorson-objection .canvas-frame {
  position: absolute; bottom: 35%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a4a2e 0%, #3a2215 100%);
  border: 3px solid #2a180e;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: abh-canvas 8s ease-in-out infinite alternate;
}
.scn-abhorson-objection .paintbrush {
  position: absolute; bottom: 30%; right: 30%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  animation: abh-brush 6s ease-in-out infinite;
}
.scn-abhorson-objection .noose {
  position: absolute; bottom: 45%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  animation: abh-sway 5s ease-in-out infinite alternate;
}
.scn-abhorson-objection .noose::after {
  content: ''; position: absolute; bottom: -3px; left: -4px; width: 14px; height: 8px;
  background: transparent;
  border: 3px solid #3a2215;
  border-radius: 50%;
  border-bottom: none;
}
@keyframes abh-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes abh-point { 0%,100% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(15deg) translateY(-2px) } 60% { transform: rotate(10deg) translateY(-1px) } }
@keyframes abh-canvas { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes abh-brush { 0%,100% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } }
@keyframes abh-sway { 0% { transform: rotate(-3deg) } 100% { transform: rotate(3deg) } }

.scn-trade-mystery-debate {
  background: linear-gradient(180deg, #2a1b12 0%, #3d271a 40%, #1a0f0a 100%),
              radial-gradient(ellipse at 50% 80%, #4a2e1a 0%, transparent 70%);
}
.scn-trade-mystery-debate .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1b12 0%, #1a0f0a 100%);
  animation: tmd-wall 14s ease-in-out infinite alternate;
}
.scn-trade-mystery-debate .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-trade-mystery-debate .figure-pompey {
  position: absolute; bottom: 20%; left: 20%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tmd-pompey 4s ease-in-out infinite;
}
.scn-trade-mystery-debate .figure-abhorson {
  position: absolute; bottom: 20%; right: 20%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a180e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tmd-abhorson 4s ease-in-out infinite alternate;
}
.scn-trade-mystery-debate .block {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: tmd-block 8s ease-in-out infinite alternate;
}
.scn-trade-mystery-debate .axe {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 28px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2e1a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: tmd-axe 5s ease-in-out infinite;
}
.scn-trade-mystery-debate .axe::after {
  content: ''; position: absolute; top: -6px; left: -6px; width: 16px; height: 10px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(15deg);
}
@keyframes tmd-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes tmd-pompey { 0%,100% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(4px) } }
@keyframes tmd-abhorson { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } }
@keyframes tmd-block { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.03) } 100% { transform: translateX(-50%) scale(0.97) } }
@keyframes tmd-axe { 0%,100% { transform: rotate(-15deg) } 30% { transform: rotate(-5deg) } 60% { transform: rotate(-20deg) } }

.scn-barnardine-and-claudio-order {
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1b12 50%, #0d0705 100%),
              radial-gradient(ellipse at 50% 80%, #2a1b12 0%, transparent 70%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-barnardine-and-claudio-order .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0f0a 0%, #0d0705 100%);
  animation: bac-wall 8s ease-in-out infinite alternate;
}
.scn-barnardine-and-claudio-order .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0705 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8);
}
.scn-barnardine-and-claudio-order .bars {
  position: absolute; top: 0; left: 30%; width: 3px; height: 70%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  box-shadow: 14px 0 0 #2a1a10, 28px 0 0 #4a3020, 42px 0 0 #2a1a10, 56px 0 0 #4a3020;
  animation: bac-bars 6s ease-in-out infinite alternate;
}
.scn-barnardine-and-claudio-order .figure-barnardine {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 56px;
  background: linear-gradient(180deg, #3a2215 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bac-barnardine 3s ease-in-out infinite alternate;
  box-shadow: -10px 0 15px rgba(0,0,0,.6);
}
.scn-barnardine-and-claudio-order .figure-claudio {
  position: absolute; bottom: 20%; left: 30%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bac-claudio 4s ease-in-out infinite;
  filter: brightness(0.7);
}
.scn-barnardine-and-claudio-order .block {
  position: absolute; bottom: 15%; left: 48%; width: 32px; height: 18px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a10 100%);
  border-radius: 3px;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: bac-block 5s ease-in-out infinite alternate;
}
.scn-barnardine-and-claudio-order .axe {
  position: absolute; bottom: 28%; left: 50%; width: 5px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: bac-axe 3s ease-in-out infinite;
}
.scn-barnardine-and-claudio-order .axe::after {
  content: ''; position: absolute; top: -7px; left: -7px; width: 18px; height: 12px;
  background: linear-gradient(180deg, #6a4a2e 0%, #3a2215 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(20deg);
}
@keyframes bac-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes bac-bars { 0% { opacity: .7; transform: translateX(0) } 50% { opacity: .9; transform: translateX(-2px) } 100% { opacity: .8; transform: translateX(0) } }
@keyframes bac-barnardine { 0%,100% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(8deg) translateY(-3px) } 70% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes bac-claudio { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-2px) } 60% { transform: translateY(1px) } }
@keyframes bac-block { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes bac-axe { 0%,100% { transform: rotate(-20deg) } 40% { transform: rotate(-10deg) } 80% { transform: rotate(-25deg) } }

.scn-street-lucio-pompey {
  background:
    linear-gradient(180deg, #7a7a80 0%, #5e5e64 40%, #454548 100%),
    radial-gradient(ellipse at 50% 100%, #6b6b70 0%, transparent 60%);
}
.scn-street-lucio-pompey .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8a8a90 0%, #6a6a70 60%, transparent);
  animation: slp-sky 25s ease-in-out infinite alternate;
}
.scn-street-lucio-pompey .buildings-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, #4a4a50 0%, #3a3a40 20%, #4a4a50 40%, #3a3a40 60%, #4a4a50 80%);
  background-size: 60px 100%;
  border-radius: 10% 10% 0 0;
  opacity: 0.6;
  animation: slp-buildings 40s linear infinite;
}
.scn-street-lucio-pompey .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #3a3a3e 0%, #4e4e54 60%, #5a5a60 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-street-lucio-pompey .column-left {
  position: absolute; bottom: 20%; left: 15%; width: 12px; height: 65%;
  background: linear-gradient(90deg, #5a5a60, #6a6a70, #5a5a60);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: slp-column 8s ease-in-out infinite;
}
.scn-street-lucio-pompey .figure-lucio {
  position: absolute; bottom: 10%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slp-lucio 4s ease-in-out infinite;
}
.scn-street-lucio-pompey .figure-pompey {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slp-pompey 5s ease-in-out infinite;
}
.scn-street-lucio-pompey .lamp-post {
  position: absolute; bottom: 20%; left: 8%; width: 4px; height: 50%;
  background: linear-gradient(0deg, #2a2a2e, #4a4a50);
  border-radius: 1px;
  transform: translateX(-50%);
}
.scn-street-lucio-pompey .lamp-glow {
  position: absolute; bottom: 50%; left: 8%; width: 16px; height: 16px;
  background: radial-gradient(circle, #c8a860 0%, #a08030 50%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  box-shadow: 0 0 30px 10px rgba(200,168,96,0.5);
  animation: slp-lamp 3s ease-in-out infinite alternate;
}
@keyframes slp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes slp-buildings {
  0% { background-position: 0 0; }
  100% { background-position: 120px 0; }
}
@keyframes slp-column {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes slp-lucio {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes slp-pompey {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(6px) rotate(2deg); }
  60% { transform: translateX(0) rotate(-1deg); }
  100% { transform: translateX(-6px) rotate(0deg); }
}
@keyframes slp-lamp {
  0% { opacity: 0.6; box-shadow: 0 0 20px 6px rgba(200,168,96,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(200,168,96,0.7); }
  100% { opacity: 0.7; box-shadow: 0 0 25px 8px rgba(200,168,96,0.5); }
}

.scn-street-lucio-duke {
  background:
    linear-gradient(180deg, #6e6e74 0%, #4e4e54 50%, #3a3a3e 100%),
    radial-gradient(ellipse at 50% 100%, #5a5a60 0%, transparent 70%);
}
.scn-street-lucio-duke .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #808086 0%, #606066 60%, transparent);
  animation: sld-sky 20s ease-in-out infinite alternate;
}
.scn-street-lucio-duke .buildings-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 25%;
  background: linear-gradient(90deg, #404048 0%, #303038 20%, #404048 40%, #303038 60%);
  background-size: 50px 100%;
  border-radius: 20% 20% 0 0;
  opacity: 0.7;
  animation: sld-buildings 35s linear infinite;
}
.scn-street-lucio-duke .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2e2e32 0%, #424246 60%, #525258 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-street-lucio-duke .wall-brick {
  position: absolute; bottom: 15%; right: 10%; width: 30%; height: 50%;
  background: linear-gradient(135deg, #4a3a30, #3a2a20);
  border-radius: 4% 4% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: sld-wall 12s ease-in-out infinite alternate;
}
.scn-street-lucio-duke .figure-lucio {
  position: absolute; bottom: 10%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sld-lucio 3.5s ease-in-out infinite;
}
.scn-street-lucio-duke .figure-duke-friar {
  position: absolute; bottom: 10%; left: 50%; width: 32px; height: 65px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sld-duke 5s ease-in-out infinite;
}
.scn-street-lucio-duke .puddle {
  position: absolute; bottom: 5%; left: 40%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(100,100,120,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sld-puddle 6s ease-in-out infinite alternate;
}
@keyframes sld-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes sld-buildings {
  0% { background-position: 0 0; }
  100% { background-position: 100px 0; }
}
@keyframes sld-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes sld-lucio {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sld-duke {
  0% { transform: translateX(0) rotate(0) scale(1); }
  30% { transform: translateX(-3px) rotate(-1deg) scale(1.01); }
  60% { transform: translateX(0) rotate(0) scale(1); }
  100% { transform: translateX(3px) rotate(1deg) scale(1); }
}
@keyframes sld-puddle {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.7; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
}

.scn-street-duke-soliloquy {
  background:
    linear-gradient(180deg, #5a5a60 0%, #3a3a40 50%, #2a2a2e 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a50 0%, transparent 60%);
}
.scn-street-duke-soliloquy .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #707076 0%, #505056 60%, transparent);
  animation: sds-sky 30s ease-in-out infinite alternate;
}
.scn-street-duke-soliloquy .buildings-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #303038 0%, #202028 20%, #303038 40%);
  background-size: 40px 100%;
  border-radius: 30% 30% 0 0;
  opacity: 0.5;
  animation: sds-buildings 45s linear infinite;
}
.scn-street-duke-soliloquy .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #242428 0%, #38383c 60%, #48484c 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-street-duke-soliloquy .wall-stone {
  position: absolute; bottom: 15%; left: 5%; width: 25%; height: 55%;
  background: linear-gradient(135deg, #3a3a42, #2a2a32);
  border-radius: 8% 8% 0 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.4);
  animation: sds-wall 15s ease-in-out infinite alternate;
}
.scn-street-duke-soliloquy .figure-duke {
  position: absolute; bottom: 10%; left: 45%; width: 30px; height: 62px;
  background: linear-gradient(180deg, #2a2a30 0%, #0a0a0e 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sds-duke 8s ease-in-out infinite;
}
.scn-street-duke-soliloquy .mist-layer {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, transparent, rgba(120,120,140,0.2) 20%, transparent 60%);
  filter: blur(6px);
  animation: sds-mist 20s linear infinite;
}
.scn-street-duke-soliloquy .leaf-drift {
  position: absolute; top: 10%; left: 20%; width: 10px; height: 6px;
  background: #6a5a3a;
  border-radius: 50% 20% 50% 20%;
  filter: blur(0.5px);
  animation: sds-leaf 12s ease-in-out infinite;
}
@keyframes sds-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes sds-buildings {
  0% { background-position: 0 0; }
  100% { background-position: 80px 0; }
}
@keyframes sds-wall {
  0% { transform: scaleY(1) scaleX(1); }
  50% { transform: scaleY(1.01) scaleX(0.99); }
  100% { transform: scaleY(1) scaleX(1); }
}
@keyframes sds-duke {
  0% { transform: translateX(0) rotate(0) scale(1); }
  25% { transform: translateX(-2px) rotate(-1deg) scale(1.01); }
  50% { transform: translateX(0) rotate(0) scale(1); }
  75% { transform: translateX(2px) rotate(1deg) scale(1.01); }
  100% { transform: translateX(0) rotate(0) scale(1); }
}
@keyframes sds-mist {
  0% { transform: translateX(-10%); opacity: 0.3; }
  50% { transform: translateX(10%); opacity: 0.5; }
  100% { transform: translateX(-10%); opacity: 0.3; }
}
@keyframes sds-leaf {
  0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.8; }
  25% { transform: translateY(-20px) rotate(45deg) scale(1.1); }
  50% { transform: translateY(0) rotate(90deg) scale(1); opacity: 0.5; }
  75% { transform: translateY(-15px) rotate(135deg) scale(0.9); }
  100% { transform: translateY(0) rotate(180deg) scale(1); opacity: 0.8; }
}

.scn-street-mistress-overdone {
  background:
    linear-gradient(180deg, #7a7a80 0%, #5a5a60 50%, #3a3a40 100%),
    radial-gradient(ellipse at 50% 100%, #6a6a70 0%, transparent 60%);
}
.scn-street-mistress-overdone .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8a8a90 0%, #6a6a70 60%, transparent);
  animation: smo-sky 22s ease-in-out infinite alternate;
}
.scn-street-mistress-overdone .buildings-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 22%;
  background: linear-gradient(90deg, #4a4a52 0%, #3a3a42 20%, #4a4a52 40%);
  background-size: 45px 100%;
  border-radius: 15% 15% 0 0;
  opacity: 0.65;
  animation: smo-buildings 38s linear infinite;
}
.scn-street-mistress-overdone .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #3a3a3e 0%, #4e4e54 60%, #5e5e64 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-street-mistress-overdone .doorway {
  position: absolute; bottom: 10%; left: 20%; width: 24px; height: 50%;
  background: linear-gradient(90deg, #2a2a30, #1a1a20 60%, #2a2a30);
  border-radius: 4% 4% 0 0;
  border: 2px solid #4a4a52;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: smo-door 10s ease-in-out infinite;
}
.scn-street-mistress-overdone .figure-mistress {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 58px;
  background: linear-gradient(180deg, #5e3a4a 0%, #3a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smo-mistress 4.5s ease-in-out infinite;
}
.scn-street-mistress-overdone .figure-child {
  position: absolute; bottom: 10%; left: 45%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smo-child 6s ease-in-out infinite;
}
.scn-street-mistress-overdone .basket {
  position: absolute; bottom: 6%; left: 52%; width: 16px; height: 10px;
  background: linear-gradient(135deg, #6a4a30, #4a2a10);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: smo-basket 8s ease-in-out infinite alternate;
}
@keyframes smo-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes smo-buildings {
  0% { background-position: 0 0; }
  100% { background-position: 90px 0; }
}
@keyframes smo-door {
  0%,100% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.02) scaleY(0.98); }
}
@keyframes smo-mistress {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes smo-child {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-4px) rotate(-3deg); }
  60% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(4px) rotate(3deg); }
}
@keyframes smo-basket {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* scene: escaelus-dismisses-case */
.scn-escaelus-dismisses-case {
  background: linear-gradient(180deg, #f5ead0 0%, #e8d5a8 40%, #d4b482 100%),
              radial-gradient(ellipse at 50% 20%, #fff4e0 0%, transparent 70%);
}
.scn-escaelus-dismisses-case .esd-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #c8a882 0%, #dcc09e 50%, #c8a882 100%);
  border-bottom: 2px solid #ad8a66;
  animation: esd-wall 12s ease-in-out infinite alternate;
}
.scn-escaelus-dismisses-case .esd-desk {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #8b6f47 0%, #6a5238 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.3);
  animation: esd-desk 8s ease-in-out infinite;
}
.scn-escaelus-dismisses-case .esd-escalus {
  position: absolute; bottom: 28%; left: 28%; width: 24%; height: 44%;
  background: radial-gradient(ellipse 70% 80% at 50% 60%, #d5b896 0%, #a0805e 70%, #705038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: esd-figure1 4s ease-in-out infinite;
}
.scn-escaelus-dismisses-case .esd-officer {
  position: absolute; bottom: 28%; left: 55%; width: 16%; height: 38%;
  background: radial-gradient(ellipse 60% 80% at 50% 60%, #b8967a 0%, #80654a 70%, #4a3520 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: esd-figure2 4.5s ease-in-out infinite;
}
.scn-escaelus-dismisses-case .esd-caitiff {
  position: absolute; bottom: 18%; left: 38%; width: 8%; height: 25%;
  background: radial-gradient(ellipse 50% 70% at 50% 60%, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: esd-caitiff 3s ease-in-out infinite;
  z-index: 2;
}
.scn-escaelus-dismisses-case .esd-candle {
  position: absolute; bottom: 27%; left: 45%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #f5d6a0 0%, #d4a060 50%, #8a6040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 16px 6px #f5d6a0, 0 0 32px 12px rgba(245,214,160,0.4);
  animation: esd-candle 3s ease-in-out infinite alternate;
}
.scn-escaelus-dismisses-case .esd-dust-mot {
  position: absolute; top: 20%; left: 30%; width: 2%; height: 2%;
  background: rgba(255,240,200,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: esd-dust 8s linear infinite;
}
@keyframes esd-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.88; }
}
@keyframes esd-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes esd-figure1 {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes esd-figure2 {
  0%, 100% { transform: rotate(1deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
}
@keyframes esd-caitiff {
  0%, 100% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
}
@keyframes esd-candle {
  0% { box-shadow: 0 0 12px 4px #f5d6a0, 0 0 24px 8px rgba(245,214,160,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 24px 10px #ffd080, 0 0 48px 18px rgba(255,208,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 14px 5px #f5d6a0, 0 0 28px 10px rgba(245,214,160,0.35); opacity: 0.92; }
}
@keyframes esd-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.7; }
  50% { transform: translate(30px, -20px) scale(1.4); opacity: 0.2; }
  100% { transform: translate(60px, -40px) scale(0.8); opacity: 0.6; }
}

/* scene: pompey-interrogated */
.scn-pompey-interrogated {
  background: linear-gradient(180deg, #f7edc8 0%, #e8d6a0 50%, #d4bc80 100%),
              radial-gradient(ellipse at 40% 50%, #fff4d4 0%, transparent 70%);
}
.scn-pompey-interrogated .pmi-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b08a6a 0%, #c8a482 50%, #b08a6a 100%);
  border-bottom: 2px solid #8a6a4a;
  animation: pmi-back 14s ease-in-out infinite alternate;
}
.scn-pompey-interrogated .pmi-table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%);
  border-radius: 6px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.3);
  animation: pmi-table 10s ease-in-out infinite;
}
.scn-pompey-interrogated .pmi-escalus {
  position: absolute; bottom: 28%; left: 55%; width: 18%; height: 40%;
  background: radial-gradient(ellipse 60% 80% at 50% 60%, #d5b896 0%, #a0805e 70%, #705038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pmi-figure1 3.8s ease-in-out infinite;
}
.scn-pompey-interrogated .pmi-pompey {
  position: absolute; bottom: 28%; left: 28%; width: 14%; height: 36%;
  background: radial-gradient(ellipse 55% 75% at 50% 60%, #b8967a 0%, #80654a 70%, #4a3520 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pmi-figure2 4.2s ease-in-out infinite;
}
.scn-pompey-interrogated .pmi-mug {
  position: absolute; bottom: 25%; left: 37%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #a0805e 0%, #6a5238 100%);
  border-radius: 30% 30% 15% 15%;
  transform: rotate(-5deg);
  animation: pmi-mug 5s ease-in-out infinite;
}
.scn-pompey-interrogated .pmi-coins {
  position: absolute; bottom: 24%; left: 46%; width: 5%; height: 3%;
  background: radial-gradient(circle, #c8a060 0%, #8a6a30 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px #c8a060;
  animation: pmi-coins 3s ease-in-out infinite alternate;
}
.scn-pompey-interrogated .pmi-fly {
  position: absolute; top: 20%; left: 20%; width: 1.5%; height: 1.5%;
  background: #4a3a2a;
  border-radius: 50%;
  box-shadow: 0 0 2px 1px rgba(0,0,0,0.2);
  animation: pmi-fly 6s linear infinite;
}
@keyframes pmi-back {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes pmi-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes pmi-figure1 {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
}
@keyframes pmi-figure2 {
  0%, 100% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes pmi-mug {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes pmi-coins {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes pmi-fly {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(20px, -30px) rotate(90deg); }
  50% { transform: translate(50px, -20px) rotate(180deg); }
  75% { transform: translate(30px, -50px) rotate(270deg); }
  100% { transform: translate(0, 0) rotate(360deg); }
}

/* scene: pompey-bawd-confession */
.scn-pompey-bawd-confession {
  background: linear-gradient(180deg, #f5e6c0 0%, #e2cd9c 40%, #cbb07a 100%),
              radial-gradient(ellipse at 60% 30%, #fff4dc 0%, transparent 60%);
}
.scn-pompey-bawd-confession .pbc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4028 100%);
  border-top: 2px solid #6a4a2a;
  animation: pbc-floor 15s ease-in-out infinite alternate;
}
.scn-pompey-bawd-confession .pbc-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #a8806a 0%, #c8a482 50%, #a8806a 100%);
  animation: pbc-wall 10s ease-in-out infinite;
}
.scn-pompey-bawd-confession .pbc-stool {
  position: absolute; bottom: 28%; left: 35%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #6a5238 0%, #4a3020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pbc-stool 6s ease-in-out infinite;
}
.scn-pompey-bawd-confession .pbc-pompey {
  position: absolute; bottom: 30%; left: 30%; width: 14%; height: 38%;
  background: radial-gradient(ellipse 55% 75% at 50% 60%, #b8967a 0%, #80654a 70%, #4a3520 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pbc-figure1 4.5s ease-in-out infinite;
}
.scn-pompey-bawd-confession .pbc-escalus {
  position: absolute; bottom: 30%; left: 55%; width: 18%; height: 42%;
  background: radial-gradient(ellipse 60% 80% at 50% 60%, #d5b896 0%, #a0805e 70%, #705038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbc-figure2 4s ease-in-out infinite;
}
.scn-pompey-bawd-confession .pbc-papers {
  position: absolute; bottom: 18%; left: 42%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #f5ead0 0%, #d4bc90 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: pbc-papers 3s ease-in-out infinite alternate;
}
@keyframes pbc-floor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes pbc-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.88; }
}
@keyframes pbc-stool {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes pbc-figure1 {
  0%, 100% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
}
@keyframes pbc-figure2 {
  0%, 100% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes pbc-papers {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.05); }
  100% { transform: rotate(8deg) scale(0.95); }
}

/* scene: pompey-warns-escalus */
.scn-pompey-warns-escalus {
  background: linear-gradient(180deg, #f7ecc6 0%, #e8d49a 40%, #d4b870 100%),
              radial-gradient(ellipse at 50% 20%, #fff4d0 0%, transparent 70%);
}
.scn-pompey-warns-escalus .pwm-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d4c898 0%, #b8a87a 100%);
  animation: pwm-sky 20s ease-in-out infinite alternate;
}
.scn-pompey-warns-escalus .pwm-bench {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%);
  border-radius: 4px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.3);
  animation: pwm-bench 8s ease-in-out infinite;
}
.scn-pompey-warns-escalus .pwm-pompey {
  position: absolute; bottom: 25%; left: 32%; width: 14%; height: 36%;
  background: radial-gradient(ellipse 55% 75% at 50% 60%, #b8967a 0%, #80654a 70%, #4a3520 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pwm-figure1 4.8s ease-in-out infinite;
}
.scn-pompey-warns-escalus .pwm-escalus {
  position: absolute; bottom: 25%; left: 52%; width: 18%; height: 40%;
  background: radial-gradient(ellipse 60% 80% at 50% 60%, #d5b896 0%, #a0805e 70%, #705038 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pwm-figure2 4.2s ease-in-out infinite;
}
.scn-pompey-warns-escalus .pwm-gallows {
  position: absolute; bottom: 30%; left: 10%; width: 6%; height: 40%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: pwm-gallows 12s ease-in-out infinite;
}
.scn-pompey-warns-escalus .pwm-sign {
  position: absolute; bottom: 55%; left: 8%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pwm-sign 5s ease-in-out infinite alternate;
}
.scn-pompey-warns-escalus .pwm-leaf {
  position: absolute; top: 10%; left: 40%; width: 2%; height: 2%;
  background: #8a6a40;
  border-radius: 50% 0 50% 0;
  filter: blur(1px);
  animation: pwm-leaf 7s linear infinite;
}
@keyframes pwm-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pwm-bench {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pwm-figure1 {
  0%, 100% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
}
@keyframes pwm-figure2 {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes pwm-gallows {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes pwm-sign {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-5deg) scale(1.05); }
  100% { transform: rotate(-12deg) scale(0.95); }
}
@keyframes pwm-leaf {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0.8; }
  25% { transform: translate(20px, -30px) rotate(90deg); opacity: 0.4; }
  50% { transform: translate(40px, -60px) rotate(180deg); opacity: 0.1; }
  75% { transform: translate(60px, -90px) rotate(270deg); opacity: 0.3; }
  100% { transform: translate(80px, -120px) rotate(360deg); opacity: 0.6; }
}

/* provost-pity – dim interior, calm */
.scn-provost-pity {
  background:
    linear-gradient(180deg, #2a2340 0%, #3d2e50 50%, #1c1628 100%),
    radial-gradient(ellipse at 50% 100%, #4b3a60 0%, transparent 70%);
}
.scn-provost-pity .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #3d2e50, #2a2340);
  animation: pp-wall 20s ease-in-out infinite alternate;
}
.scn-provost-pity .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2340, #161122);
  border-radius: 20% 20% 0 0;
}
.scn-provost-pity .bars-left {
  position: absolute; left: 5%; top: 0; bottom: 20%; width: 6px;
  background: linear-gradient(0deg, #4a3a60, #6a5a80);
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: pp-bars 8s ease-in-out infinite alternate;
}
.scn-provost-pity .bars-right {
  position: absolute; right: 5%; top: 0; bottom: 20%; width: 6px;
  background: linear-gradient(0deg, #4a3a60, #6a5a80);
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: pp-bars 8s ease-in-out infinite alternate-reverse;
}
.scn-provost-pity .figure-provost {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2e4a 0%, #1f1630 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pp-figure 6s ease-in-out infinite;
}
.scn-provost-pity .lantern {
  position: absolute; bottom: 38%; left: 42%;
  width: 8px; height: 10px;
  background: radial-gradient(circle, #e8c868 0%, #b08840 70%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px rgba(232,200,104,0.6), 0 0 40px 12px rgba(232,200,104,0.3);
  animation: pp-lantern 4s ease-in-out infinite alternate;
}
.scn-provost-pity .shadow-exit {
  position: absolute; bottom: 30%; right: 20%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #1c1628, #0c0914);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: pp-shadow-exit 6s ease-in-out infinite;
}
@keyframes pp-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes pp-bars { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes pp-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes pp-lantern { 0% { box-shadow: 0 0 16px 4px rgba(232,200,104,0.5); opacity: 0.8 } 50% { box-shadow: 0 0 24px 8px rgba(232,200,104,0.7); opacity: 1 } 100% { box-shadow: 0 0 20px 6px rgba(232,200,104,0.6); opacity: 0.9 } }
@keyframes pp-shadow-exit { 0% { transform: translateX(0) scale(1); opacity: 0.6 } 50% { transform: translateX(-10px) scale(0.9); opacity: 0.4 } 100% { transform: translateX(0) scale(1); opacity: 0.6 } }

/* claudio-death-warrant – dark, tense */
.scn-claudio-death-warrant {
  background:
    linear-gradient(180deg, #0f0d1a 0%, #1a1530 50%, #2a2040 100%),
    radial-gradient(ellipse at 50% 0%, #1a1530 0%, transparent 60%);
}
.scn-claudio-death-warrant .bg-cell {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(0deg, #1a1530, #0f0d1a);
  animation: cdw-bg 15s ease-in-out infinite alternate;
}
.scn-claudio-death-warrant .hand {
  position: absolute; bottom: 35%; left: 30%;
  width: 28px; height: 18px;
  background: linear-gradient(180deg, #3a2a4a, #1f1630);
  border-radius: 60% 30% 30% 60% / 50% 40% 40% 50%;
  transform: rotate(15deg);
  animation: cdw-hand 3s ease-in-out infinite alternate;
}
.scn-claudio-death-warrant .paper {
  position: absolute; bottom: 38%; left: 35%;
  width: 40px; height: 30px;
  background: linear-gradient(135deg, #4a3a50, #2a1f35);
  border-radius: 4% 8% 12% 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  transform: rotate(10deg);
  animation: cdw-paper 4s ease-in-out infinite;
}
.scn-claudio-death-warrant .candle {
  position: absolute; bottom: 32%; left: 55%;
  width: 6px; height: 18px;
  background: linear-gradient(0deg, #d0b070, #f0d088);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: cdw-candle 5s ease-in-out infinite alternate;
}
.scn-claudio-death-warrant .flame {
  position: absolute; bottom: 50%; left: 55.5%;
  width: 8px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #e8a830 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,96,0.7), 0 0 40px 12px rgba(255,208,96,0.4);
  animation: cdw-flame 1.6s ease-in-out infinite alternate;
}
.scn-claudio-death-warrant .shadow-face {
  position: absolute; bottom: 22%; right: 25%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1530, #0a0818);
  border-radius: 50% 40% 50% 40%;
  animation: cdw-shadow 6s ease-in-out infinite;
}
@keyframes cdw-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes cdw-hand { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes cdw-paper { 0% { transform: rotate(8deg) translateX(0) } 50% { transform: rotate(12deg) translateX(2px) } 100% { transform: rotate(8deg) translateX(0) } }
@keyframes cdw-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes cdw-flame { 0% { transform: scale(1) rotate(-5deg); opacity: 0.9 } 50% { transform: scale(1.2) rotate(0deg); opacity: 1 } 100% { transform: scale(0.9) rotate(5deg); opacity: 0.8 } }
@keyframes cdw-shadow { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(3px) scale(0.95) } 100% { transform: translateY(0) scale(1) } }

/* claudio-exit-and-duke-enters – dark, tense */
.scn-claudio-exit-and-duke-enters {
  background:
    linear-gradient(180deg, #0c0b18 0%, #181430 50%, #242040 100%),
    radial-gradient(ellipse at 50% 100%, #202040 0%, transparent 60%);
}
.scn-claudio-exit-and-duke-enters .bg-night {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(0deg, #242040, #0c0b18);
  animation: cde-night 20s ease-in-out infinite alternate;
}
.scn-claudio-exit-and-duke-enters .doorway {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 70px;
  background: #1a1630;
  border: 3px solid #3a2e50;
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: cde-door 12s ease-in-out infinite;
}
.scn-claudio-exit-and-duke-enters .figure-exit {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1530, #0a0818);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-10px);
  animation: cde-exit 8s ease-in-out infinite;
}
.scn-claudio-exit-and-duke-enters .figure-enter {
  position: absolute; bottom: 18%; right: 42%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1530, #0a0818);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(10px);
  animation: cde-enter 8s ease-in-out infinite alternate;
}
.scn-claudio-exit-and-duke-enters .moonbeam {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 0;
  border-left: 30px solid transparent;
  border-right: 30px solid transparent;
  border-bottom: 80px solid rgba(180,200,230,0.12);
  filter: blur(4px);
  animation: cde-beam 20s ease-in-out infinite alternate;
}
.scn-claudio-exit-and-duke-enters .floor-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #242040, #12102a);
  border-radius: 30% 70% 0 0;
}
@keyframes cde-night { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes cde-door { 0% { box-shadow: inset 0 0 15px rgba(0,0,0,0.7) } 50% { box-shadow: inset 0 0 25px rgba(0,0,0,0.9) } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.7) } }
@keyframes cde-exit { 0% { transform: translateX(-10px) translateY(0); opacity: 0.6 } 50% { transform: translateX(-20px) translateY(-2px); opacity: 0.4 } 100% { transform: translateX(-10px) translateY(0); opacity: 0.6 } }
@keyframes cde-enter { 0% { transform: translateX(10px) scale(1); opacity: 0.4 } 50% { transform: translateX(0) scale(1.05); opacity: 0.7 } 100% { transform: translateX(10px) scale(1); opacity: 0.4 } }
@keyframes cde-beam { 0% { opacity: 0.1; transform: translateX(-50%) rotate(-2deg) } 50% { opacity: 0.3; transform: translateX(-50%) rotate(0deg) } 100% { opacity: 0.2; transform: translateX(-50%) rotate(2deg) } }

/* duke-defense-of-angelo – dark, calm */
.scn-duke-defense-of-angelo {
  background:
    linear-gradient(180deg, #1a1630 0%, #2a2440 50%, #3a3050 100%),
    radial-gradient(ellipse at 50% 50%, #2a2440 0%, transparent 70%);
}
.scn-duke-defense-of-angelo .bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a2440, #1a1630);
  animation: dda-bg 25s ease-in-out infinite alternate;
}
.scn-duke-defense-of-angelo .table {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 8px;
  background: linear-gradient(180deg, #4a3a5a, #2a1f3a);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: dda-table 14s ease-in-out infinite;
}
.scn-duke-defense-of-angelo .figure-duke {
  position: absolute; bottom: 20%; left: 35%; transform: translateX(-50%);
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2e4a 0%, #1f1630 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dda-duke 7s ease-in-out infinite alternate;
}
.scn-duke-defense-of-angelo .figure-provost {
  position: absolute; bottom: 20%; right: 35%; transform: translateX(50%);
  width: 20px; height: 46px;
  background: linear-gradient(180deg, #3a2e4a 0%, #1f1630 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dda-provost 7s ease-in-out infinite alternate-reverse;
}
.scn-duke-defense-of-angelo .candle {
  position: absolute; bottom: 38%; left: 48%; width: 6px; height: 16px;
  background: linear-gradient(0deg, #c8a060, #e8c878);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: dda-candle 6s ease-in-out infinite alternate;
}
.scn-duke-defense-of-angelo .glow {
  position: absolute; bottom: 38%; left: 48%; transform: translate(-50%, 50%);
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(232,200,120,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dda-glow 4s ease-in-out infinite alternate;
}
@keyframes dda-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes dda-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes dda-duke { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-2deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes dda-provost { 0% { transform: translateX(50%) rotate(0deg) } 50% { transform: translateX(50%) rotate(2deg) translateY(-2px) } 100% { transform: translateX(50%) rotate(-2deg) } }
@keyframes dda-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } 100% { transform: scaleY(1) } }
@keyframes dda-glow { 0% { opacity: 0.6; transform: translate(-50%, 50%) scale(1) } 50% { opacity: 1; transform: translate(-50%, 50%) scale(1.1) } 100% { opacity: 0.7; transform: translate(-50%, 50%) scale(0.95) } }

/* Scene: isabella-narrates-attempt (tense sunlit interior) */
.scn-isabella-narrates-attempt {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9b68a 50%, #b88a5a 100%),
              radial-gradient(ellipse at 80% 100%, #e0c090 0%, transparent 60%);
}
.scn-isabella-narrates-attempt .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08050 0%, #7a5a30 100%);
  border-radius: 0 0 20% 20%;
  animation: sia-floor 12s ease-in-out infinite alternate;
}
.scn-isabella-narrates-attempt .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #f0d8b0 0%, #cfb080 40%, #b88a5a 100%);
}
.scn-isabella-narrates-attempt .window {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 50%;
  background: radial-gradient(circle, #ffe080 0%, #c8a060 60%, #a08050 100%);
  border: 6px solid #8a6040;
  border-radius: 10%;
  box-shadow: inset 0 0 40px rgba(255,224,128,0.4);
  animation: sia-window 6s ease-in-out infinite alternate;
}
.scn-isabella-narrates-attempt .kneeling-figure {
  position: absolute; bottom: 15%; left: 30%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sia-kneel 4s ease-in-out infinite;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-isabella-narrates-attempt .standing-figure {
  position: absolute; bottom: 18%; right: 20%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: sia-stand 8s ease-in-out infinite alternate;
}
.scn-isabella-narrates-attempt .shadow {
  position: absolute; bottom: 0; left: 10%; width: 60%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: sia-shadow 4s ease-in-out infinite alternate;
}
.scn-isabella-narrates-attempt .light-ray {
  position: absolute; top: -10%; left: 20%; width: 30%; height: 140%;
  background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: sia-ray 10s ease-in-out infinite alternate;
}
@keyframes sia-floor { 0% { transform: skewX(0deg) } 50% { transform: skewX(0.5deg) } 100% { transform: skewX(-0.5deg) } }
@keyframes sia-window { 0% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(255,224,128,0.3) } 50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,224,128,0.6) } 100% { opacity: 0.8; box-shadow: inset 0 0 40px rgba(255,224,128,0.4) } }
@keyframes sia-kneel { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes sia-stand { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-2px) scaleY(1.01) } 100% { transform: translateX(1px) scaleY(0.99) } }
@keyframes sia-shadow { 0% { opacity: 0.3; transform: scaleX(0.8) } 50% { opacity: 0.5; transform: scaleX(1.1) } 100% { opacity: 0.35; transform: scaleX(0.9) } }
@keyframes sia-ray { 0% { transform: rotate(0deg); opacity: 0.2 } 50% { transform: rotate(2deg); opacity: 0.4 } 100% { transform: rotate(-1deg); opacity: 0.25 } }

/* Scene: angelo-vows-integrity (tense sunlit – architectural) */
.scn-angelo-vows-integrity {
  background: linear-gradient(180deg, #f2e3c6 0%, #d9bc8a 40%, #b59a6a 100%),
              radial-gradient(ellipse at 30% 50%, #f0d8b0 0%, transparent 60%);
}
.scn-angelo-vows-integrity .bg-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8a880 100%);
  animation: avi-sky 15s ease-in-out infinite alternate;
}
.scn-angelo-vows-integrity .pillar-left {
  position: absolute; bottom: 10%; left: 15%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #b08a5a 0%, #7a5a30 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
  animation: avi-pillar 6s ease-in-out infinite alternate;
}
.scn-angelo-vows-integrity .pillar-right {
  position: absolute; bottom: 10%; right: 15%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #b08a5a 0%, #7a5a30 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.3);
  animation: avi-pillar 6s ease-in-out infinite alternate-reverse;
}
.scn-angelo-vows-integrity .figure {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 48%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  animation: avi-figure 5s ease-in-out infinite;
}
.scn-angelo-vows-integrity .sun-flare {
  position: absolute; top: 5%; right: 10%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,255,200,0.5) 0%, transparent 70%);
  filter: blur(12px);
  animation: avi-flare 8s ease-in-out infinite alternate;
}
.scn-angelo-vows-integrity .shadow {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.35) 0%, transparent 70%);
  animation: avi-shadow 4s ease-in-out infinite alternate;
}
@keyframes avi-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes avi-pillar { 0% { transform: skewY(0deg) } 50% { transform: skewY(0.3deg) } 100% { transform: skewY(-0.2deg) } }
@keyframes avi-figure { 0% { transform: translateX(-50%) scaleY(1) } 30% { transform: translateX(-50%) translateY(-2px) scaleY(1.02) } 70% { transform: translateX(-48%) scaleY(0.98) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes avi-flare { 0% { transform: scale(0.9); opacity: 0.3 } 50% { transform: scale(1.3); opacity: 0.6 } 100% { transform: scale(1.1); opacity: 0.4 } }
@keyframes avi-shadow { 0% { opacity: 0.3; transform: scaleX(0.8) } 50% { opacity: 0.5; transform: scaleX(1.2) } 100% { opacity: 0.35; transform: scaleX(0.9) } }

/* Scene: isabella-desperate (tense sunlit – close-up figure) */
.scn-isabella-desperate {
  background: linear-gradient(180deg, #f5e0c0 0%, #d6b88a 50%, #b0905a 100%),
              radial-gradient(ellipse at 50% 40%, #ffe0a0 0%, transparent 60%);
}
.scn-isabella-desperate .bg-light {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #d9b88a 100%);
  animation: ide-light 10s ease-in-out infinite alternate;
}
.scn-isabella-desperate .figure-torso {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 25%; height: 45%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.4);
  animation: ide-torso 4s ease-in-out infinite;
}
.scn-isabella-desperate .arm-left {
  position: absolute; bottom: 30%; left: 42%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: top right;
  animation: ide-arm-left 3s ease-in-out infinite;
}
.scn-isabella-desperate .arm-right {
  position: absolute; bottom: 30%; right: 42%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: top left;
  animation: ide-arm-right 3s ease-in-out infinite;
}
.scn-isabella-desperate .tear {
  position: absolute; bottom: 35%; left: 48%; width: 4%; height: 6%;
  background: radial-gradient(circle, #a0c0e0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ide-tear 5s ease-in-out infinite;
}
.scn-isabella-desperate .shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ide-shadow 4s ease-in-out infinite alternate;
}
.scn-isabella-desperate .halo {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,255,200,0.15) 0%, transparent 60%);
  filter: blur(10px);
  animation: ide-halo 8s ease-in-out infinite alternate;
}
@keyframes ide-light { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ide-torso { 0% { transform: translateX(-50%) translateY(0) } 30% { transform: translateX(-50%) translateY(-3px) } 70% { transform: translateX(-48%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ide-arm-left { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }
@keyframes ide-arm-right { 0% { transform: rotate(0deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(5deg) } }
@keyframes ide-tear { 0% { transform: translateY(0); opacity: 0.5 } 50% { transform: translateY(6px); opacity: 0.8 } 100% { transform: translateY(0); opacity: 0.4 } }
@keyframes ide-shadow { 0% { opacity: 0.3; transform: scaleX(0.8) } 50% { opacity: 0.5; transform: scaleX(1.2) } 100% { opacity: 0.35; transform: scaleX(0.9) } }
@keyframes ide-halo { 0% { transform: scale(0.9); opacity: 0.1 } 50% { transform: scale(1.1); opacity: 0.3 } 100% { transform: scale(1.0); opacity: 0.15 } }

/* Scene: lucio-maligns-friar (funny sunlit – comedic duo) */
.scn-lucio-maligns-friar {
  background: linear-gradient(180deg, #f0e4c0 0%, #d4bc8a 40%, #b0985a 100%),
              radial-gradient(ellipse at 60% 20%, #ffe080 0%, transparent 50%);
}
.scn-lucio-maligns-friar .bg-court {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f8ecc0 0%, #dcc48a 100%);
  animation: lmf-bg 12s ease-in-out infinite alternate;
}
.scn-lucio-maligns-friar .friar-silhouette {
  position: absolute; bottom: 15%; left: 20%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  box-shadow: 0 10px 25px rgba(0,0,0,0.5);
  animation: lmf-friar 3s ease-in-out infinite;
}
.scn-lucio-maligns-friar .lucio-silhouette {
  position: absolute; bottom: 12%; right: 20%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: lmf-lucio 4s ease-in-out infinite alternate;
}
.scn-lucio-maligns-friar .speech-bubble {
  position: absolute; top: 20%; left: 25%; width: 20%; height: 15%;
  background: radial-gradient(ellipse, #e0d0b0 0%, #c0a880 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: lmf-bubble 5s ease-in-out infinite;
}
.scn-lucio-maligns-friar .shadow {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: lmf-shadow 3s ease-in-out infinite alternate;
}
.scn-lucio-maligns-friar .sparkles {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(circle, rgba(255,255,200,0.3) 0%, transparent 60%);
  filter: blur(5px);
  animation: lmf-sparkle 6s ease-in-out infinite;
}
@keyframes lmf-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes lmf-friar { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(-2deg) } 50% { transform: translateY(2px) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lmf-lucio { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(8px) scaleY(1.05) } 100% { transform: translateX(-6px) scaleY(0.95) } }
@keyframes lmf-bubble { 0% { transform: translate(0, 0) scale(0.9); opacity: 0.6 } 50% { transform: translate(-4px, -6px) scale(1.1); opacity: 1 } 100% { transform: translate(3px, -2px) scale(0.95); opacity: 0.7 } }
@keyframes lmf-shadow { 0% { opacity: 0.2; transform: scaleX(0.7) } 50% { opacity: 0.4; transform: scaleX(1.3) } 100% { opacity: 0.25; transform: scaleX(0.9) } }
@keyframes lmf-sparkle { 0% { opacity: 0.1; transform: scale(0.8) } 50% { opacity: 0.4; transform: scale(1.2) } 100% { opacity: 0.15; transform: scale(0.9) } }

.scn-isabella-resolves {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b886 40%, #a07a4e 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-isabella-resolves .bg-warm { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e8d5a8 0%, #c9ae7a 100%); animation: ir-bg 8s ease-in-out infinite alternate; }
.scn-isabella-resolves .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a5e3e 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.3); }
.scn-isabella-resolves .figure { position:absolute; bottom:20%; left:50%; width:26px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2d2d3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -2px 0 6px rgba(0,0,0,.4); animation: ir-figure 6s ease-in-out infinite; }
.scn-isabella-resolves .light-spot { position:absolute; bottom:30%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 100%); mix-blend-mode: screen; opacity:0.6; animation: ir-glow 3s ease-in-out infinite alternate; }
.scn-isabella-resolves .shadow { position:absolute; bottom:18%; left:48%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); transform:rotateX(60deg); animation: ir-shadow 6s ease-in-out infinite; }
.scn-isabella-resolves .door { position:absolute; bottom:25%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #6a4e32 0%, #3a2e1e 100%); border-radius: 4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.5); }
.scn-isabella-resolves .door-glow { position:absolute; bottom:35%; left:20%; width:30px; height:40px; margin-left:10px; background: radial-gradient(ellipse, #ffe8b0 0%, transparent 70%); animation: ir-door-glow 4s ease-in-out infinite alternate; }

@keyframes ir-bg { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ir-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) scaleY(1); } 50% { transform:translateX(-50%) translateY(-3px) rotate(0deg) scaleY(1.02); } 100% { transform:translateX(-50%) translateY(0) rotate(1deg) scaleY(1); } }
@keyframes ir-glow { 0% { width:60px; height:80px; opacity:.5; } 50% { width:80px; height:100px; opacity:.7; } 100% { width:60px; height:80px; opacity:.6; } }
@keyframes ir-shadow { 0% { transform:rotateX(60deg) scaleX(1); opacity:.3; } 50% { transform:rotateX(60deg) scaleX(1.2); opacity:.5; } 100% { transform:rotateX(60deg) scaleX(1); opacity:.3; } }
@keyframes ir-door-glow { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-angelo-hall-justice {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c4b090 40%, #8a7a62 100%),
    radial-gradient(ellipse at 50% 30%, #fff8ee 0%, transparent 70%);
}
.scn-angelo-hall-justice .hall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d8cbb8 0%, #b8a890 100%); animation: ah-hall 12s ease-in-out infinite alternate; }
.scn-angelo-hall-justice .column-l { position:absolute; bottom:10%; left:10%; width:16px; height:70%; background: linear-gradient(90deg, #7a6a58 0%, #9a8a72 50%, #6a5a48 100%); border-radius: 8px; box-shadow: 0 0 6px rgba(0,0,0,.3); transform-origin: bottom center; animation: ah-column 15s ease-in-out infinite; }
.scn-angelo-hall-justice .column-r { position:absolute; bottom:10%; right:10%; width:16px; height:70%; background: linear-gradient(90deg, #6a5a48 0%, #9a8a72 50%, #7a6a58 100%); border-radius: 8px; box-shadow: 0 0 6px rgba(0,0,0,.3); transform-origin: bottom center; animation: ah-column 15s ease-in-out infinite reverse; }
.scn-angelo-hall-justice .dais { position:absolute; bottom:15%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #b8a888 0%, #8a7a62 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); animation: ah-dais 10s ease-in-out infinite; }
.scn-angelo-hall-justice .figure-angelo { position:absolute; bottom:25%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #2e2e3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -2px 0 6px rgba(0,0,0,.5); transform-origin: bottom center; animation: ah-fig 8s ease-in-out infinite; }
.scn-angelo-hall-justice .figure-escalus { position:absolute; bottom:25%; right:35%; width:20px; height:46px; background: linear-gradient(180deg, #3a3a48 0%, #262636 100%); border-radius: 50% 55% 40% 40% / 60% 60% 40% 40%; box-shadow: -1px 0 4px rgba(0,0,0,.4); transform-origin: bottom center; animation: ah-fig 8s ease-in-out infinite 0.3s; }
.scn-angelo-hall-justice .light-ray { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,248,224,0.3) 0%, transparent 80%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: ah-ray 6s ease-in-out infinite alternate; }

@keyframes ah-hall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ah-column { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes ah-dais { 0% { transform: translateY(0); opacity:.9; } 50% { transform: translateY(-2px); opacity:1; } 100% { transform: translateY(0); opacity:.95; } }
@keyframes ah-fig { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ah-ray { 0% { opacity:.2; transform: skewX(3deg); } 50% { opacity:.5; transform: skewX(-2deg); } 100% { opacity:.3; transform: skewX(0deg); } }

.scn-angelo-justifies-sternness {
  background: 
    linear-gradient(180deg, #6b5840 0%, #4a3e2e 40%, #2a221a 100%),
    radial-gradient(ellipse at 40% 30%, #b89a6a 0%, transparent 70%);
}
.scn-angelo-justifies-sternness .bg-dark-warm { position:absolute; inset:0; background: linear-gradient(180deg, #5a4a32 0%, #3a2e1e 100%); animation: aj-bg 12s ease-in-out infinite alternate; }
.scn-angelo-justifies-sternness .window-light { position:absolute; top:10%; left:30%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 50%, #ffecb0 0%, #d4a46a 60%, transparent 90%); filter: blur(4px); mix-blend-mode: screen; animation: aj-window 4s ease-in-out infinite alternate; }
.scn-angelo-justifies-sternness .silhouette { position:absolute; bottom:20%; left:40%; width:30px; height:60px; background: #1a1610; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.7); animation: aj-sil 7s ease-in-out infinite; }
.scn-angelo-justifies-sternness .desk { position:absolute; bottom:5%; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-angelo-justifies-sternness .fist { position:absolute; bottom:22%; left:42%; width:10px; height:14px; background: #2a241e; border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: aj-fist 3s ease-in-out infinite; }
.scn-angelo-justifies-sternness .shadow-aj { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: rgba(0,0,0,.3); border-radius: 50% 50% 0 0; filter: blur(10px); animation: aj-shadow 7s ease-in-out infinite; }

@keyframes aj-bg { 0% { opacity:.75; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes aj-window { 0% { opacity:.4; transform: scaleX(1) scaleY(1); } 50% { opacity:.7; transform: scaleX(1.05) scaleY(1.1); } 100% { opacity:.5; transform: scaleX(1) scaleY(1); } }
@keyframes aj-sil { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes aj-fist { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes aj-shadow { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.5; transform: scaleY(1.2); } 100% { opacity:.3; transform: scaleY(1); } }

.scn-claudio-death-sentence {
  background: 
    linear-gradient(180deg, #3a3e4a 0%, #2a2e38 40%, #1a1e26 100%),
    radial-gradient(ellipse at 50% 30%, #5a5e6a 0%, transparent 70%);
}
.scn-claudio-death-sentence .cell-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2e323c 0%, #1a1e24 100%); animation: cd-cell 15s ease-in-out infinite alternate; }
.scn-claudio-death-sentence .window-bar { position:absolute; top:10%; left:20%; width:60px; height:50px; background: transparent; border: 3px solid #4a4e58; border-radius: 4px; box-shadow: inset 0 0 20px rgba(180,200,220,0.4); }
.scn-claudio-death-sentence .figure-claudio { position:absolute; bottom:20%; left:50%; width:24px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #2c303a 0%, #181c24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -2px 0 8px rgba(0,0,0,.6); animation: cd-figure 8s ease-in-out infinite; }
.scn-claudio-death-sentence .chain { position:absolute; bottom:35%; left:42%; width:20px; height:30px; background: repeating-linear-gradient(0deg, #6a6e78 0px, #6a6e78 3px, transparent 3px, transparent 6px); border-radius: 4px; opacity:0.6; animation: cd-chain 4s ease-in-out infinite; }
.scn-claudio-death-sentence .guard-shadow { position:absolute; bottom:0; left:60%; width:50px; height:100%; background: linear-gradient(180deg, rgba(40,44,52,0.8) 0%, transparent 70%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 20% 100%); opacity:0.5; animation: cd-guard 12s ease-in-out infinite; }
.scn-claudio-death-sentence .floor-cd { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a4e58 0%, #2a2e36 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-claudio-death-sentence .light-cd { position:absolute; top:5%; left:15%; width:70px; height:60px; background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,0.3) 0%, transparent 80%); mix-blend-mode: screen; animation: cd-light 3s ease-in-out infinite alternate; }

@keyframes cd-cell { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.85; } }
@keyframes cd-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) scaleY(1); } 50% { transform:translateX(-50%) translateY(2px) rotate(0deg) scaleY(0.98); } 100% { transform:translateX(-50%) translateY(0) rotate(1deg) scaleY(1); } }
@keyframes cd-chain { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes cd-guard { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.1); } 100% { opacity:.4; transform: scaleX(1); } }
@keyframes cd-light { 0% { opacity:.2; width:70px; height:60px; } 50% { opacity:.5; width:80px; height:70px; } 100% { opacity:.3; width:70px; height:60px; } }

.scn-isabella-consoled {
  background:
    linear-gradient(180deg, #fdf0d8 0%, #f5e0c0 30%, #e8c8a0 60%, #d4a878 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-isabella-consoled .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f5e8d0 0%, #e4c8a0 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: si-ic-wall 12s ease-in-out infinite alternate;
}
.scn-isabella-consoled .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c89a6a 0%, #a07848 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
  animation: si-ic-floor 8s ease-in-out infinite alternate;
}
.scn-isabella-consoled .window {
  position: absolute; top: 12%; left: 18%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #fef8ef 0%, #e8dcc0 100%);
  border-radius: 10% / 8%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 30px 8px rgba(255,235,180,0.15);
  animation: si-ic-window 6s ease-in-out infinite alternate;
}
.scn-isabella-consoled .arch {
  position: absolute; top: 8%; left: 10%; width: 80%; height: 50%;
  background: transparent;
  border: 8px solid #b0885a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  animation: si-ic-arch 15s ease-in-out infinite;
}
.scn-isabella-consoled .figure-seated {
  position: absolute; bottom: 32%; left: 35%; width: 50px; height: 65px;
  background: linear-gradient(180deg, #8a6840 0%, #5a3a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: si-ic-seated 4s ease-in-out infinite alternate;
}
.scn-isabella-consoled .figure-standing {
  position: absolute; bottom: 35%; left: 55%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #7a5a38 0%, #4a2a12 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: si-ic-standing 3s ease-in-out infinite alternate;
}
.scn-isabella-consoled .candle {
  position: absolute; bottom: 38%; left: 25%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d080 0%, #e8b860 50%, #c89840 100%);
  border-radius: 50% / 30%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.6);
  animation: si-ic-candle 2s ease-in-out infinite alternate;
}
.scn-isabella-consoled .glow {
  position: absolute; inset: 0 0 0 0;
  background: radial-gradient(ellipse at 25% 40%, rgba(255,220,150,0.15) 0%, transparent 70%);
  animation: si-ic-glow 5s ease-in-out infinite alternate;
}
.scn-isabella-consoled .shadow {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: si-ic-shadow 4s ease-in-out infinite alternate;
}
@keyframes si-ic-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes si-ic-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes si-ic-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,0.2), 0 0 20px rgba(255,235,180,0.1); } 50% { box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 0 40px rgba(255,235,180,0.2); } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,0.3), 0 0 30px rgba(255,235,180,0.15); } }
@keyframes si-ic-arch { 0% { transform: scale(1); } 50% { transform: scale(1.01) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes si-ic-seated { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes si-ic-standing { 0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(2px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes si-ic-candle { 0% { transform: scaleY(1) rotate(-1deg); opacity: 0.9; } 50% { transform: scaleY(1.05) rotate(0deg); opacity: 1; } 100% { transform: scaleY(1) rotate(1deg); opacity: 0.95; } }
@keyframes si-ic-glow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes si-ic-shadow { 0% { transform: skewX(5deg); opacity: 0.6; } 50% { transform: skewX(-5deg); opacity: 0.8; } 100% { transform: skewX(5deg); opacity: 0.6; } }

.scn-angelo-judged {
  background:
    linear-gradient(180deg, #f2e4c8 0%, #d4b890 30%, #b09070 60%, #8a6e4a 100%),
    radial-gradient(ellipse at 20% 30%, #fff5e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-angelo-judged .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4e2e 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
  animation: si-aj-floor 4s ease-in-out infinite alternate;
}
.scn-angelo-judged .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ede0c8 0%, #b8a080 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  animation: si-aj-wall 6s ease-in-out infinite alternate;
}
.scn-angelo-judged .bench {
  position: absolute; bottom: 30%; left: 40%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #a08060 0%, #684a2a 100%);
  border-radius: 10% / 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: si-aj-bench 2s ease-in-out infinite;
}
.scn-angelo-judged .figure-judge {
  position: absolute; bottom: 33%; left: 46%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: si-aj-judge 3s ease-in-out infinite alternate;
}
.scn-angelo-judged .gavel {
  position: absolute; bottom: 40%; left: 52%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-30deg);
  animation: si-aj-gavel 1.5s ease-in-out infinite alternate;
}
.scn-angelo-judged .shadow-harsh {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 80%);
  filter: blur(2px);
  animation: si-aj-shadow 3s ease-in-out infinite alternate;
}
.scn-angelo-judged .light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,245,200,0.3) 0%, transparent 80%);
  clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%);
  animation: si-aj-beam 5s ease-in-out infinite alternate;
}
@keyframes si-aj-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes si-aj-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes si-aj-bench { 0% { box-shadow: 0 6px 12px rgba(0,0,0,0.3); } 50% { box-shadow: 0 10px 20px rgba(0,0,0,0.4); } 100% { box-shadow: 0 6px 12px rgba(0,0,0,0.3); } }
@keyframes si-aj-judge { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.02); } 100% { transform: rotate(1deg) scale(1); } }
@keyframes si-aj-gavel { 0% { transform: rotate(-40deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-2px); } 100% { transform: rotate(-40deg) translateY(0); } }
@keyframes si-aj-shadow { 0% { transform: skewX(10deg); opacity: 0.7; } 50% { transform: skewX(-10deg); opacity: 1; } 100% { transform: skewX(10deg); opacity: 0.7; } }
@keyframes si-aj-beam { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

.scn-mariana-plea {
  background:
    linear-gradient(180deg, #ead8b8 0%, #d4b890 30%, #b89870 60%, #8a6e4a 100%),
    radial-gradient(ellipse at 30% 40%, #f5e4c0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-mariana-plea .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #9a7a5a 0%, #5a3e1e 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
  animation: si-mp-floor 5s ease-in-out infinite alternate;
}
.scn-mariana-plea .wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #b89870 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: si-mp-wall 6s ease-in-out infinite alternate;
}
.scn-mariana-plea .figure-kneeling {
  position: absolute; bottom: 28%; left: 30%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a220e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: si-mp-kneel 3s ease-in-out infinite alternate;
}
.scn-mariana-plea .figure-standing {
  position: absolute; bottom: 30%; left: 55%; width: 48px; height: 85px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1206 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 30% 30%;
  transform-origin: bottom center;
  animation: si-mp-stand 4s ease-in-out infinite alternate;
}
.scn-mariana-plea .light-source {
  position: absolute; top: 10%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe8b0 0%, rgba(255,200,100,0.3) 50%, transparent 100%);
  filter: blur(10px);
  animation: si-mp-light 3s ease-in-out infinite alternate;
}
.scn-mariana-plea .shadow-pla {
  position: absolute; bottom: 28%; left: 28%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  filter: blur(3px);
  animation: si-mp-shadow 3s ease-in-out infinite alternate;
}
.scn-mariana-plea .tear {
  position: absolute; bottom: 45%; left: 35%; width: 4px; height: 8px;
  background: linear-gradient(180deg, rgba(180,200,255,0.8) 0%, transparent 100%);
  border-radius: 50% / 30%;
  animation: si-mp-tear 2s ease-in-out infinite;
}
@keyframes si-mp-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes si-mp-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes si-mp-kneel { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes si-mp-stand { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.01); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes si-mp-light { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes si-mp-shadow { 0% { transform: skewX(8deg); opacity: 0.6; } 50% { transform: skewX(-8deg); opacity: 0.9; } 100% { transform: skewX(8deg); opacity: 0.6; } }
@keyframes si-mp-tear { 0% { transform: translateY(0) scaleY(1); opacity: 0.8; } 50% { transform: translateY(10px) scaleY(0.5); opacity: 0.4; } 100% { transform: translateY(0) scaleY(1); opacity: 0.8; } }

.scn-isabella-kneels {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d4b890 30%, #b09070 60%, #7a5e3e 100%),
    radial-gradient(ellipse at 40% 50%, #fff0d0 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-isabella-kneels .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3e1e 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
  animation: si-ik-floor 4s ease-in-out infinite alternate;
}
.scn-isabella-kneels .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d0b0 0%, #b09070 100%);
  border-radius: 0 0 15% 15% / 0 0 8% 8%;
  animation: si-ik-wall 5s ease-in-out infinite alternate;
}
.scn-isabella-kneels .figure-kneel {
  position: absolute; bottom: 28%; left: 36%; width: 42px; height: 68px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a220e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: si-ik-kneel 3s ease-in-out infinite alternate;
}
.scn-isabella-kneels .figure-stand {
  position: absolute; bottom: 32%; left: 54%; width: 46px; height: 82px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1206 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 30% 30%;
  transform-origin: bottom center;
  animation: si-ik-stand 4s ease-in-out infinite alternate;
}
.scn-isabella-kneels .light-ray {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, transparent 80%);
  clip-path: polygon(20% 0, 80% 0, 70% 100%, 30% 100%);
  animation: si-ik-ray 6s ease-in-out infinite alternate;
}
.scn-isabella-kneels .shadow-kk {
  position: absolute; bottom: 28%; left: 34%; width: 70px; height: 35px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  filter: blur(3px);
  animation: si-ik-shadow 3s ease-in-out infinite alternate;
}
.scn-isabella-kneels .hand {
  position: absolute; bottom: 38%; left: 44%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #8a6840 0%, #5a3a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(20deg);
  animation: si-ik-hand 2s ease-in-out infinite alternate;
}
@keyframes si-ik-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes si-ik-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes si-ik-kneel { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-5px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes si-ik-stand { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes si-ik-ray { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes si-ik-shadow { 0% { transform: skewX(10deg); opacity: 0.6; } 50% { transform: skewX(-10deg); opacity: 0.9; } 100% { transform: skewX(10deg); opacity: 0.6; } }
@keyframes si-ik-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-isabella-directed { 
  background: linear-gradient(180deg, #0f0c29 0%, #302b63 40%, #24243e 100%), 
              radial-gradient(ellipse at 50% 30%, #1a1a4e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-isabella-directed .wall { 
  position: absolute; inset: 0 0 25% 0; 
  background: linear-gradient(135deg, #2a1f3d 0%, #1a122a 50%, #0d091d 100%);
  border-bottom: 2px solid #3a2a4a;
}
.scn-isabella-directed .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1220 0%, #0d0a15 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-isabella-directed .table { 
  position: absolute; bottom: 20%; left: 35%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: id-table 12s ease-in-out infinite alternate;
}
.scn-isabella-directed .letter { 
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b090 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: id-letter 8s ease-in-out infinite alternate;
}
.scn-isabella-directed .candle { 
  position: absolute; bottom: 33%; left: 38%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #c09050 60%, #806030 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 10px 2px rgba(240,208,128,0.6);
  animation: id-candle 3s ease-in-out infinite alternate;
}
.scn-isabella-directed .figure { 
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a122a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: id-figure 6s ease-in-out infinite;
}
.scn-isabella-directed .window { 
  position: absolute; top: 12%; right: 15%; width: 60px; height: 80px;
  border: 4px solid #3a2a4a;
  background: linear-gradient(135deg, #0a0a30 0%, #1a1a5a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,100,200,0.2);
  animation: id-window 20s ease-in-out infinite alternate;
}
.scn-isabella-directed .moonlight { 
  position: absolute; top: 10%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,220,255,0.3) 0%, rgba(200,220,255,0) 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: id-moonlight 15s ease-in-out infinite alternate;
}
@keyframes id-table { 
  0% { transform: perspective(200px) rotateX(10deg) translateY(0); } 
  50% { transform: perspective(200px) rotateX(12deg) translateY(-2px); } 
  100% { transform: perspective(200px) rotateX(8deg) translateY(0); }
}
@keyframes id-letter { 
  0% { transform: rotate(-5deg) translateX(0); } 
  50% { transform: rotate(-2deg) translateX(3px); } 
  100% { transform: rotate(-7deg) translateX(-2px); }
}
@keyframes id-candle { 
  0% { opacity: 0.8; transform: scaleY(1); box-shadow: 0 0 10px 2px rgba(240,208,128,0.6); }
  50% { opacity: 1; transform: scaleY(1.05); box-shadow: 0 0 14px 4px rgba(240,208,128,0.8); }
  100% { opacity: 0.85; transform: scaleY(0.95); box-shadow: 0 0 8px 1px rgba(240,208,128,0.5); }
}
@keyframes id-figure { 
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes id-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes id-moonlight { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.2); } 100% { transform: translateX(-5px) scale(0.9); } }

.scn-lucio-interrupts {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1628 40%, #261f36 100%),
              radial-gradient(ellipse at 60% 50%, #2a1f3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lucio-interrupts .bg-room { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1220 0%, #120e18 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
}
.scn-lucio-interrupts .door { 
  position: absolute; left: 10%; top: 10%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: li-door 8s ease-in-out infinite;
}
.scn-lucio-interrupts .figure-isabella { 
  position: absolute; bottom: 20%; left: 35%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-isabella 5s ease-in-out infinite;
}
.scn-lucio-interrupts .figure-lucio { 
  position: absolute; bottom: 20%; left: 60%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a2a30 0%, #0a1a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-lucio 3s ease-in-out infinite;
}
.scn-lucio-interrupts .desk { 
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(15deg);
}
.scn-lucio-interrupts .book { 
  position: absolute; bottom: 27%; left: 38%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: li-book 6s ease-in-out infinite alternate;
}
.scn-lucio-interrupts .candle-flicker { 
  position: absolute; bottom: 32%; left: 42%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0d060 0%, #c09040 60%, #806020 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 12px 3px rgba(240,208,96,0.6);
  animation: li-candle 1.6s ease-in-out infinite alternate;
}
.scn-lucio-interrupts .shadow-lucio { 
  position: absolute; bottom: 18%; left: 55%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: li-shadow 3s ease-in-out infinite;
}
@keyframes li-door { 
  0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); }
}
@keyframes li-isabella { 
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-4px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes li-lucio { 
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(8px) translateY(-1px) rotate(5deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-3deg); }
  75% { transform: translateX(8px) translateY(1px) rotate(4deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes li-book { 
  0% { transform: rotate(-10deg) translateX(0); } 
  50% { transform: rotate(-5deg) translateX(4px); } 
  100% { transform: rotate(-12deg) translateX(-2px); }
}
@keyframes li-candle { 
  0% { opacity: 0.7; transform: scaleY(1); } 
  50% { opacity: 1; transform: scaleY(1.1); } 
  100% { opacity: 0.8; transform: scaleY(0.9); }
}
@keyframes li-shadow { 
  0% { transform: translateX(0) scaleX(1); } 
  50% { transform: translateX(8px) scaleX(1.3); } 
  100% { transform: translateX(-4px) scaleX(0.9); }
}

.scn-lucio-banters-duke {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 80%, #2a2018 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-lucio-banters-duke .tavern-wall { 
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a2018 0%, #1a1410 50%, #0f0a08 100%);
  border-bottom: 3px solid #3a2a1a;
}
.scn-lucio-banters-duke .table-round { 
  position: absolute; bottom: 18%; left: 35%; width: 140px; height: 50px;
  background: linear-gradient(135deg, #4a3020 0%, #2a1a10 50%, #1a0e08 100%);
  border-radius: 50% / 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: lb-table 14s ease-in-out infinite alternate;
}
.scn-lucio-banters-duke .tankard { 
  position: absolute; bottom: 27%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: lb-tankard 6s ease-in-out infinite;
}
.scn-lucio-banters-duke .figure-duke { 
  position: absolute; bottom: 15%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-duke 8s ease-in-out infinite;
}
.scn-lucio-banters-duke .figure-lucio-banter { 
  position: absolute; bottom: 15%; left: 52%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-lucio 4s ease-in-out infinite;
}
.scn-lucio-banters-duke .lantern-hanging { 
  position: absolute; top: 8%; left: 55%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #c09050 0%, #806030 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(192,144,80,0.4);
  animation: lb-lantern 3s ease-in-out infinite alternate;
}
.scn-lucio-banters-duke .ale-froth { 
  position: absolute; bottom: 32%; left: 42%; width: 14px; height: 6px;
  background: radial-gradient(ellipse, rgba(230,210,180,0.8) 0%, rgba(200,180,150,0.4) 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: lb-froth 5s ease-in-out infinite alternate;
}
@keyframes lb-table { 
  0% { transform: scale(1) rotate(0deg); } 
  50% { transform: scale(1.02) rotate(1deg); } 
  100% { transform: scale(0.98) rotate(-1deg); }
}
@keyframes lb-tankard { 
  0% { transform: translateY(0) rotate(0deg); } 
  50% { transform: translateY(-3px) rotate(5deg); } 
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes lb-duke { 
  0% { transform: translateX(0) rotate(0deg); } 
  25% { transform: translateX(4px) rotate(2deg); } 
  50% { transform: translateX(8px) rotate(-1deg); } 
  75% { transform: translateX(4px) rotate(-3deg); } 
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lb-lucio { 
  0% { transform: translateX(0) rotate(0deg) scale(1); } 
  30% { transform: translateX(-6px) rotate(4deg) scale(1.05); } 
  60% { transform: translateX(6px) rotate(-3deg) scale(0.95); } 
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes lb-lantern { 
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(192,144,80,0.3); } 
  50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(192,144,80,0.6); } 
  100% { opacity: 0.8; box-shadow: 0 0 18px 5px rgba(192,144,80,0.4); }
}
@keyframes lb-froth { 
  0% { transform: scaleY(1) translateX(0); } 
  50% { transform: scaleY(1.5) translateX(2px); } 
  100% { transform: scaleY(0.8) translateX(-2px); }
}

.scn-lucio-marriage-story {
  background: linear-gradient(180deg, #0a0a14 0%, #141428 40%, #0a0a14 100%),
              radial-gradient(ellipse at 50% 50%, #141428 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-lucio-marriage-story .bg-night { 
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a18 0%, #14142a 100%);
}
.scn-lucio-marriage-story .ground { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-lucio-marriage-story .figure-lucio-story { 
  position: absolute; bottom: 15%; left: 40%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lm-figure 8s ease-in-out infinite;
}
.scn-lucio-marriage-story .rotten-medlar { 
  position: absolute; bottom: 38%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle at 40% 30%, #6a4a2a 0%, #3a2010 50%, #1a0e04 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(20deg);
  animation: lm-medlar 5s ease-in-out infinite;
}
.scn-lucio-marriage-story .arm-left { 
  position: absolute; bottom: 30%; left: 36%; width: 20px; height: 4px;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0a20 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: lm-arm-left 3s ease-in-out infinite alternate;
}
.scn-lucio-marriage-story .arm-right { 
  position: absolute; bottom: 28%; left: 52%; width: 24px; height: 4px;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0a20 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: lm-arm-right 3.5s ease-in-out infinite alternate;
}
.scn-lucio-marriage-story .speech-circle { 
  position: absolute; top: 15%; left: 20%; width: 70px; height: 70px;
  border: 2px solid rgba(200,180,150,0.3);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,180,150,0.05) 0%, transparent 70%);
  filter: blur(3px);
  animation: lm-speech 10s ease-in-out infinite;
}
.scn-lucio-marriage-story .star-cluster { 
  position: absolute; top: 5%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: lm-stars 20s linear infinite;
}
@keyframes lm-figure { 
  0% { transform: translateX(0) rotate(0deg); } 
  25% { transform: translateX(6px) rotate(3deg); } 
  50% { transform: translateX(12px) rotate(-2deg); } 
  75% { transform: translateX(6px) rotate(4deg); } 
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lm-medlar { 
  0% { transform: rotate(20deg) scale(1); } 
  50% { transform: rotate(30deg) scale(1.1); } 
  100% { transform: rotate(10deg) scale(0.9); }
}
@keyframes lm-arm-left { 
  0% { transform: rotate(-20deg); } 
  50% { transform: rotate(10deg); } 
  100% { transform: rotate(-30deg); }
}
@keyframes lm-arm-right { 
  0% { transform: rotate(15deg); } 
  50% { transform: rotate(-10deg); } 
  100% { transform: rotate(25deg); }
}
@keyframes lm-speech { 
  0% { opacity: 0.2; transform: scale(0.8) translateX(0); } 
  50% { opacity: 0.6; transform: scale(1.1) translateX(10px); } 
  100% { opacity: 0.3; transform: scale(0.9) translateX(-10px); }
}
@keyframes lm-stars { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

/* ===== Scene: barnardine-reluctance (funny, dim-interior) ===== */
.scn-barnardine-reluctance {
  background: linear-gradient(180deg, #2b1a10 0%, #1a0f08 40%, #0d0704 100%),
              radial-gradient(ellipse at 40% 60%, #3a2515 0%, transparent 70%);
}
.scn-barnardine-reluctance .cell-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0f08 0%, #2b1a10 50%, #0d0704 100%);
  opacity: 0.8;
}
.scn-barnardine-reluctance .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2b1a10 0%, #1a0f08 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-barnardine-reluctance .lantern {
  position: absolute; top: 15%; left: 20%;
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 60%, #f0a040 0%, #b05020 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(200,100,40,0.6), 0 0 80px 30px rgba(200,100,40,0.3);
  animation: br-lantern 4s ease-in-out infinite alternate;
}
.scn-barnardine-reluctance .figure-drunk {
  position: absolute; bottom: 30%; left: 45%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-drunk 3s ease-in-out infinite;
}
.scn-barnardine-reluctance .barrel {
  position: absolute; bottom: 30%; left: 30%;
  width: 40px; height: 50px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2010 50%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: br-barrel 6s ease-in-out infinite alternate;
}
.scn-barnardine-reluctance .mug-falling {
  position: absolute; bottom: 30%; left: 38%;
  width: 12px; height: 18px;
  background: linear-gradient(180deg, #6a4a2a, #3a2010);
  border-radius: 0 0 20% 20%;
  transform: rotate(-40deg);
  animation: br-mug 4s ease-in-out infinite;
}
.scn-barnardine-reluctance .dust-mote {
  position: absolute; top: 20%; left: 60%;
  width: 6px; height: 6px;
  background: rgba(200,160,100,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: br-mote 15s linear infinite;
}
@keyframes br-lantern {
  0%   { box-shadow: 0 0 30px 10px rgba(200,100,40,0.5), 0 0 60px 20px rgba(200,100,40,0.2); opacity: 0.9; transform: rotate(-2deg); }
  50%  { box-shadow: 0 0 50px 20px rgba(200,100,40,0.7), 0 0 100px 35px rgba(200,100,40,0.4); opacity: 1; transform: rotate(2deg); }
  100% { box-shadow: 0 0 35px 12px rgba(200,100,40,0.55), 0 0 70px 25px rgba(200,100,40,0.25); opacity: 0.85; transform: rotate(-1deg); }
}
@keyframes br-drunk {
  0%   { transform: translateX(0) translateY(0) rotate(-5deg); }
  25%  { transform: translateX(8px) translateY(-4px) rotate(3deg); }
  50%  { transform: translateX(0) translateY(-8px) rotate(-2deg); }
  75%  { transform: translateX(-6px) translateY(-4px) rotate(4deg); }
  100% { transform: translateX(0) translateY(0) rotate(-5deg); }
}
@keyframes br-barrel {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes br-mug {
  0%   { transform: rotate(-40deg) translateY(0); opacity: 1; }
  25%  { transform: rotate(-20deg) translateY(10px); opacity: 0.8; }
  50%  { transform: rotate(10deg) translateY(20px); opacity: 0.5; }
  75%  { transform: rotate(-5deg) translateY(30px); opacity: 0.2; }
  100% { transform: rotate(-40deg) translateY(40px); opacity: 0; }
}
@keyframes br-mote {
  0%   { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50%  { transform: translate(30px, -20px) scale(1.2); opacity: 0.5; }
  100% { transform: translate(60px, -40px) scale(0.8); opacity: 0; }
}

/* ===== Scene: duke-advises-barnardine (calm, dim-interior) ===== */
.scn-duke-advises-barnardine {
  background: linear-gradient(180deg, #1e1410 0%, #120b08 100%),
              radial-gradient(ellipse at 50% 30%, #2e1e14 0%, transparent 60%);
}
.scn-duke-advises-barnardine .cell-wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #120b08 0%, #1e1410 100%); opacity: 0.7; }
.scn-duke-advises-barnardine .cell-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #1e1410 0%, #0d0805 100%); box-shadow: inset 0 6px 15px rgba(0,0,0,0.7); }
.scn-duke-advises-barnardine .lantern {
  position: absolute; top: 12%; left: 15%;
  width: 18px; height: 28px;
  background: radial-gradient(circle at 50% 50%, #d09040 0%, #a06020 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 35px 12px rgba(180,100,40,0.6), 0 0 70px 25px rgba(180,100,40,0.3);
  animation: da-lantern 5s ease-in-out infinite alternate;
}
.scn-duke-advises-barnardine .figure-duke {
  position: absolute; bottom: 35%; left: 40%;
  width: 26px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-duke 6s ease-in-out infinite alternate;
}
.scn-duke-advises-barnardine .figure-barnardine {
  position: absolute; bottom: 35%; left: 55%;
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: da-barnardine 7s ease-in-out infinite alternate;
}
.scn-duke-advises-barnardine .table {
  position: absolute; bottom: 35%; left: 45%;
  width: 50px; height: 20px;
  background: linear-gradient(90deg, #3a2010 0%, #2a1508 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-duke-advises-barnardine .mug {
  position: absolute; bottom: 40%; left: 52%;
  width: 10px; height: 14px;
  background: linear-gradient(180deg, #6a4a2a, #3a2010);
  border-radius: 0 0 20% 20%;
  animation: da-mug 4s ease-in-out infinite;
}
@keyframes da-lantern {
  0%   { box-shadow: 0 0 25px 8px rgba(180,100,40,0.5), 0 0 50px 18px rgba(180,100,40,0.2); transform: rotate(0deg); }
  50%  { box-shadow: 0 0 40px 15px rgba(180,100,40,0.7), 0 0 80px 30px rgba(180,100,40,0.4); transform: rotate(2deg); }
  100% { box-shadow: 0 0 30px 10px rgba(180,100,40,0.55), 0 0 60px 22px rgba(180,100,40,0.25); transform: rotate(-1deg); }
}
@keyframes da-duke {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes da-barnardine {
  0%   { transform: translateY(0) rotate(-2deg); }
  50%  { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes da-mug {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}

/* ===== Scene: ragozine-substitution (calm, dim-interior) ===== */
.scn-ragozine-substitution {
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 40%, #080504 100%),
              radial-gradient(ellipse at 40% 50%, #2a1a14 0%, transparent 70%);
}
.scn-ragozine-substitution .cell-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #0f0a08 0%, #1a1210 100%); opacity: 0.7; }
.scn-ragozine-substitution .cell-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.8); }
.scn-ragozine-substitution .lantern {
  position: absolute; top: 10%; left: 25%;
  width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #c08030 0%, #804020 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(160,80,30,0.5), 0 0 60px 20px rgba(160,80,30,0.2);
  animation: rs-lantern 6s ease-in-out infinite alternate;
}
.scn-ragozine-substitution .bed {
  position: absolute; bottom: 30%; left: 30%;
  width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.6);
}
.scn-ragozine-substitution .corpse {
  position: absolute; bottom: 32%; left: 35%;
  width: 50px; height: 20px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0f08 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-3deg);
  animation: rs-corpse 10s ease-in-out infinite alternate;
}
.scn-ragozine-substitution .pillow {
  position: absolute; bottom: 40%; left: 38%;
  width: 20px; height: 12px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 50% 50% 20% 20%;
  animation: rs-pillow 8s ease-in-out infinite alternate;
}
.scn-ragozine-substitution .shadow {
  position: absolute; bottom: 30%; left: 20%; right: 20%;
  height: 60px;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  filter: blur(10px);
  animation: rs-shadow 12s ease-in-out infinite alternate;
}
@keyframes rs-lantern {
  0%   { box-shadow: 0 0 20px 8px rgba(160,80,30,0.4), 0 0 40px 15px rgba(160,80,30,0.15); transform: rotate(0deg); }
  50%  { box-shadow: 0 0 35px 12px rgba(160,80,30,0.6), 0 0 70px 25px rgba(160,80,30,0.3); transform: rotate(3deg); }
  100% { box-shadow: 0 0 25px 10px rgba(160,80,30,0.5), 0 0 50px 20px rgba(160,80,30,0.2); transform: rotate(-2deg); }
}
@keyframes rs-corpse {
  0%   { transform: rotate(-3deg) translateY(0); }
  50%  { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes rs-pillow {
  0%   { transform: translateY(0) scale(1); }
  50%  { transform: translateY(-2px) scale(1.05); }
  100% { transform: translateY(0) scale(0.95); }
}
@keyframes rs-shadow {
  0%   { opacity: 0.5; transform: scaleY(1); }
  50%  { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.6; transform: scaleY(0.9); }
}

/* ===== Scene: duke-agrees-to-plot (calm, dim-interior) ===== */
.scn-duke-agrees-to-plot {
  background: linear-gradient(180deg, #1e1410 0%, #120b08 100%),
              radial-gradient(ellipse at 60% 50%, #2e1e14 0%, transparent 50%);
}
.scn-duke-agrees-to-plot .cell-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #120b08 0%, #1e1410 100%); opacity: 0.7; }
.scn-duke-agrees-to-plot .cell-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1e1410 0%, #0d0805 100%); box-shadow: inset 0 6px 15px rgba(0,0,0,0.7); }
.scn-duke-agrees-to-plot .lantern {
  position: absolute; top: 15%; left: 20%;
  width: 18px; height: 28px;
  background: radial-gradient(circle at 50% 50%, #d09040 0%, #a06020 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 35px 12px rgba(180,100,40,0.6), 0 0 70px 25px rgba(180,100,40,0.3);
  animation: dp-lantern 5s ease-in-out infinite alternate;
}
.scn-duke-agrees-to-plot .figure-duke {
  position: absolute; bottom: 30%; left: 35%;
  width: 26px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dp-duke 6s ease-in-out infinite alternate;
}
.scn-duke-agrees-to-plot .figure-provost {
  position: absolute; bottom: 30%; left: 50%;
  width: 24px; height: 58px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: dp-provost 8s ease-in-out infinite alternate;
}
.scn-duke-agrees-to-plot .door {
  position: absolute; bottom: 10%; right: 10%;
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1810 0%, #1a0f08 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset -3px 0 10px rgba(0,0,0,0.5);
  animation: dp-door 12s ease-in-out infinite alternate;
}
.scn-duke-agrees-to-plot .shadow {
  position: absolute; bottom: 20%; left: 30%; right: 40%;
  height: 80px;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  filter: blur(12px);
  animation: dp-shadow 15s ease-in-out infinite alternate;
}
@keyframes dp-lantern {
  0%   { box-shadow: 0 0 25px 8px rgba(180,100,40,0.5), 0 0 50px 18px rgba(180,100,40,0.2); transform: rotate(0deg); }
  50%  { box-shadow: 0 0 40px 15px rgba(180,100,40,0.7), 0 0 80px 30px rgba(180,100,40,0.4); transform: rotate(2deg); }
  100% { box-shadow: 0 0 30px 10px rgba(180,100,40,0.55), 0 0 60px 22px rgba(180,100,40,0.25); transform: rotate(-1deg); }
}
@keyframes dp-duke {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dp-provost {
  0%   { transform: translateY(0) rotate(-2deg); }
  50%  { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes dp-door {
  0%   { transform: translateX(0) rotateY(0deg); }
  50%  { transform: translateX(-2px) rotateY(3deg); }
  100% { transform: translateX(0) rotateY(0deg); }
}
@keyframes dp-shadow {
  0%   { opacity: 0.5; transform: scaleY(1); }
  50%  { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.6; transform: scaleY(0.9); }
}

/* Scene 1: elbow-dismissed (calm, bright interior) */
.scn-elbow-dismissed {
  background: linear-gradient(180deg, #f5ecd7 0%, #e8dcc4 50%, #d6c8a8 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 70%);
}
.scn-elbow-dismissed .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e8d0 0%, #dcd0b8 100%);
  animation: ed-wall 20s ease-in-out infinite alternate;
}
.scn-elbow-dismissed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a88a 0%, #9a8a6e 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.08);
  animation: ed-floor 15s ease-in-out infinite alternate;
}
.scn-elbow-dismissed .desk {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b7a5a 0%, #6b5a3a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 8px 15px rgba(0,0,0,0.2);
  animation: ed-desk 12s ease-in-out infinite;
}
.scn-elbow-dismissed .chair {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #6b5a3a 0%, #4a3a2a 100%);
  border-radius: 8px 8px 20% 20%;
  transform-origin: bottom center;
  animation: ed-chair 4s ease-in-out infinite;
}
.scn-elbow-dismissed .figure {
  position: absolute; bottom: 22%; left: 55%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed-figure 8s ease-in-out infinite;
}
.scn-elbow-dismissed .window {
  position: absolute; top: 12%; right: 15%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 30%, #ffe8b0 0%, #c8b880 70%);
  border: 6px solid #6b5a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,232,176,0.5);
  animation: ed-window 6s ease-in-out infinite alternate;
}
.scn-elbow-dismissed .lightray {
  position: absolute; top: 12%; right: 15%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,248,224,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ed-lightray 9s ease-in-out infinite alternate;
}
.scn-elbow-dismissed .shadow {
  position: absolute; bottom: 12%; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  animation: ed-shadow 5s ease-in-out infinite alternate;
}
@keyframes ed-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ed-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes ed-desk { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes ed-chair { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes ed-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes ed-window { 0% { box-shadow: inset 0 0 20px rgba(255,232,176,0.4); } 50% { box-shadow: inset 0 0 40px rgba(255,232,176,0.7); } 100% { box-shadow: inset 0 0 25px rgba(255,232,176,0.5); } }
@keyframes ed-lightray { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.02); } 100% { opacity:0.7; transform: scaleX(0.98); } }
@keyframes ed-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(5px); } 100% { transform: scaleX(0.9) translateX(-5px); } }

/* Scene 2: provost-anguish-claudio (tense, bright interior) */
.scn-provost-anguish-claudio {
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 80% 20%, #8a7a5a 0%, transparent 60%);
}
.scn-provost-anguish-claudio .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a3a4e 0%, #2a2a3e 50%, #3a3a4e 100%);
  animation: pa-wall 8s ease-in-out infinite alternate;
}
.scn-provost-anguish-claudio .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5);
  animation: pa-floor 12s ease-in-out infinite alternate;
}
.scn-provost-anguish-claudio .figure-provost {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-provost 5s ease-in-out infinite;
}
.scn-provost-anguish-claudio .figure-servant {
  position: absolute; bottom: 25%; right: 25%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: pa-servant 7s ease-in-out infinite;
}
.scn-provost-anguish-claudio .table {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: pa-table 10s ease-in-out infinite;
}
.scn-provost-anguish-claudio .lamp {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffc080 0%, #b06030 70%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(255,192,128,0.5), 0 0 80px 20px rgba(255,192,128,0.2);
  animation: pa-lamp 3s ease-in-out infinite alternate;
}
.scn-provost-anguish-claudio .shadow-bars {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.3) 0px, transparent 20px, transparent 30px);
  animation: pa-shadows 15s linear infinite;
}
@keyframes pa-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pa-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes pa-provost { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) rotate(2deg) } 70% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pa-servant { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(5px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes pa-table { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(0.5deg) } }
@keyframes pa-lamp { 0% { box-shadow: 0 0 30px 8px rgba(255,192,128,0.4); opacity:0.9 } 50% { box-shadow: 0 0 60px 15px rgba(255,192,128,0.7); opacity:1 } 100% { box-shadow: 0 0 35px 10px rgba(255,192,128,0.5); opacity:0.95 } }
@keyframes pa-shadows { 0% { opacity:0.5; transform: translateX(0) } 100% { opacity:0.7; transform: translateX(60px) } }

/* Scene 3: isabella-requests-access (calm, bright interior) */
.scn-isabella-requests-access {
  background: linear-gradient(180deg, #f5f0e0 0%, #e8dec8 50%, #d0c8b0 100%),
              radial-gradient(ellipse at 30% 40%, #fff8e8 0%, transparent 70%);
}
.scn-isabella-requests-access .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ece3d0 0%, #d8cfb8 100%);
  animation: ir-wall 25s ease-in-out infinite alternate;
}
.scn-isabella-requests-access .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.05);
  animation: ir-floor 18s ease-in-out infinite alternate;
}
.scn-isabella-requests-access .door {
  position: absolute; bottom: 25%; left: 25%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #8b7a5a 0%, #6b5a3a 100%);
  border-radius: 6px 6px 2px 2px;
  border: 4px solid #5a4a2a;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
  animation: ir-door 20s ease-in-out infinite;
}
.scn-isabella-requests-access .figure-isabella {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ir-isabella 6s ease-in-out infinite;
}
.scn-isabella-requests-access .figure-servant {
  position: absolute; bottom: 28%; right: 20%; width: 32px; height: 80px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ir-servant 8s ease-in-out infinite;
}
.scn-isabella-requests-access .light-aperture {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,240,0.2) 0%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: ir-light 10s ease-in-out infinite alternate;
}
.scn-isabella-requests-access .shadow-threshold {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.1) 0%, transparent 70%);
  animation: ir-shadow 7s ease-in-out infinite alternate;
}
@keyframes ir-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ir-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.003) } 100% { transform: scaleY(1) } }
@keyframes ir-door { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(0.5deg) } }
@keyframes ir-isabella { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(1deg) } 70% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ir-servant { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ir-light { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.03) } 100% { opacity:0.6; transform: scaleX(0.97) } }
@keyframes ir-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.1) translateX(8px) } 100% { transform: scaleX(0.9) translateX(-8px) } }

/* Scene 4: isabella-pleads-for-brother (tense, bright interior) */
.scn-isabella-pleads-for-brother {
  background: linear-gradient(180deg, #c8b898 0%, #a89878 50%, #8a7a5a 100%),
              radial-gradient(ellipse at 60% 30%, #ffe8c0 0%, transparent 50%);
}
.scn-isabella-pleads-for-brother .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b8a888 0%, #a09070 50%, #b8a888 100%);
  animation: ip-wall 10s ease-in-out infinite alternate;
}
.scn-isabella-pleads-for-brother .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.2);
  animation: ip-floor 14s ease-in-out infinite alternate;
}
.scn-isabella-pleads-for-brother .figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ip-left 4s ease-in-out infinite;
}
.scn-isabella-pleads-for-brother .figure-right {
  position: absolute; bottom: 25%; right: 20%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ip-right 6s ease-in-out infinite;
}
.scn-isabella-pleads-for-brother .desk {
  position: absolute; bottom: 18%; left: 50%; width: 140px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: ip-desk 12s ease-in-out infinite;
}
.scn-isabella-pleads-for-brother .candle {
  position: absolute; bottom: 38%; left: 50%; width: 12px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffe8c0 0%, #c8a060 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(255,232,192,0.6), 0 0 60px 16px rgba(255,232,192,0.3);
  animation: ip-candle 3s ease-in-out infinite alternate;
}
.scn-isabella-pleads-for-brother .shadow-cross {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: ip-cross 5s ease-in-out infinite alternate;
}
@keyframes ip-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ip-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.008) } 100% { transform: scaleY(1) } }
@keyframes ip-left { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) rotate(2deg) } 70% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ip-right { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ip-desk { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(0.3deg) } }
@keyframes ip-candle { 0% { box-shadow: 0 0 20px 5px rgba(255,232,192,0.5); opacity:0.9; transform: translateX(-50%) scaleX(1) } 50% { box-shadow: 0 0 40px 12px rgba(255,232,192,0.8); opacity:1; transform: translateX(-50%) scaleX(1.05) } 100% { box-shadow: 0 0 25px 7px rgba(255,232,192,0.6); opacity:0.95; transform: translateX(-50%) scaleX(0.98) } }
@keyframes ip-cross { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.1) translateX(10px) } 100% { transform: scaleX(0.9) translateX(-10px) } }

/* Scene 1: prison-juliet-penitent (warm, dim-interior) */
.scn-prison-juliet-penitent {
  background:
    radial-gradient(ellipse at 50% 10%, #4a2a1a 0%, #1a0e0a 100%),
    linear-gradient(180deg, #2a1a12 0%, #1a0e0a 60%, #0a0604 100%);
}
.scn-prison-juliet-penitent .cell-walls {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a12 0%, #1a0e0a 50%, #2a1a12 100%);
  opacity: 0.6;
  animation: pjp-fade 8s ease-in-out infinite alternate;
}
.scn-prison-juliet-penitent .window {
  position: absolute; top: 12%; left: 65%; width: 40px; height: 60px;
  background: #1a0e0a;
  border: 3px solid #3a2a1a;
  border-radius: 2px;
  box-shadow: inset 0 0 15px rgba(200,150,100,0.3);
}
.scn-prison-juliet-penitent .window-light {
  position: absolute; top: 12%; left: 65%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #e8c080 0%, #b88040 50%, transparent 80%);
  opacity: 0.3;
  animation: pjp-light 5s ease-in-out infinite alternate;
}
.scn-prison-juliet-penitent .candle {
  position: absolute; bottom: 30%; left: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d0a0 0%, #a07040 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: pjp-candle 3s ease-in-out infinite;
}
.scn-prison-juliet-penitent .candle-glow {
  position: absolute; bottom: 34%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd060 0%, #d09040 30%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 0);
  animation: pjp-glow 2s ease-in-out infinite alternate;
}
.scn-prison-juliet-penitent .figure-kneeling {
  position: absolute; bottom: 12%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: pjp-figure 6s ease-in-out infinite;
}
.scn-prison-juliet-penitent .shadow {
  position: absolute; bottom: 8%; left: 30%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: pjp-shadow 6s ease-in-out infinite;
}
@keyframes pjp-fade { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes pjp-light { 0% { opacity: 0.2; transform: scale(0.95); } 50% { opacity: 0.4; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes pjp-candle { 0% { transform: rotate(3deg); } 25% { transform: rotate(6deg); } 50% { transform: rotate(4deg); } 75% { transform: rotate(7deg); } 100% { transform: rotate(3deg); } }
@keyframes pjp-glow { 0% { transform: translate(-50%, 0) scale(0.9); opacity: 0.7; } 100% { transform: translate(-50%, -2px) scale(1.1); opacity: 1; } }
@keyframes pjp-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pjp-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.6; } }

/* Scene 2: angelo-house-soliloquy (dark, dim-interior) */
.scn-angelo-house-soliloquy {
  background:
    radial-gradient(ellipse at 30% 40%, #1a1a2e 0%, #0a0a12 100%),
    linear-gradient(180deg, #1a1a2e 0%, #0a0a12 80%, #050508 100%);
}
.scn-angelo-house-soliloquy .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12121e 0%, #0a0a12 50%, #1a1a2e 100%);
  opacity: 0.5;
  animation: ahs-room 20s ease-in-out infinite alternate;
}
.scn-angelo-house-soliloquy .desk {
  position: absolute; bottom: 20%; left: 25%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a04 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
}
.scn-angelo-house-soliloquy .desk-book {
  position: absolute; bottom: 24%; left: 35%; width: 25px; height: 15px;
  background: #4a3a2a;
  border-radius: 1px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ahs-book 6s ease-in-out infinite alternate;
}
.scn-angelo-house-soliloquy .lamp {
  position: absolute; bottom: 22%; left: 28%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-angelo-house-soliloquy .lamp-glow {
  position: absolute; bottom: 25%; left: 28%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0c060 0%, #c09040 30%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 0);
  animation: ahs-glow 3s ease-in-out infinite alternate;
}
.scn-angelo-house-soliloquy .figure-standing {
  position: absolute; bottom: 10%; left: 45%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: ahs-figure 8s ease-in-out infinite;
}
.scn-angelo-house-soliloquy .figure-shadow {
  position: absolute; bottom: 8%; left: 40%; width: 60px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: ahs-shadow 8s ease-in-out infinite;
}
@keyframes ahs-room { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes ahs-book { 0% { transform: rotate(8deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(8deg); } }
@keyframes ahs-glow { 0% { transform: translate(-50%, 0) scale(0.95); opacity: 0.7; } 100% { transform: translate(-50%, -2px) scale(1.1); opacity: 1; } }
@keyframes ahs-figure { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes ahs-shadow { 0% { transform: scaleX(1); opacity: 0.7; } 50% { transform: scaleX(1.1); opacity: 0.9; } 100% { transform: scaleX(1); opacity: 0.7; } }

/* Scene 3: angelo-isabella-encounter (tense, bright-interior) */
.scn-angelo-isabella-encounter {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #c8b888 30%, #a09070 70%, #706050 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-angelo-isabella-encounter .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d8c8a8 0%, #e8d8b8 50%, #d0c0a0 100%);
  opacity: 0.3;
  animation: aie-hall 3s ease-in-out infinite alternate;
}
.scn-angelo-isabella-encounter .window-1 {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #fffff0 0%, #c8c0a0 100%);
  border: 4px solid #8a7a5a;
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(255,255,240,0.4);
}
.scn-angelo-isabella-encounter .window-2 {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #fffff0 0%, #c8c0a0 100%);
  border: 4px solid #8a7a5a;
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(255,255,240,0.4);
}
.scn-angelo-isabella-encounter .sunbeam-left {
  position: absolute; top: 10%; left: 10%; width: 8px; height: 120px;
  background: linear-gradient(180deg, rgba(255,255,230,0.6) 0%, transparent 80%);
  transform: skewX(-5deg);
  animation: aie-beam 2s ease-in-out infinite alternate;
}
.scn-angelo-isabella-encounter .sunbeam-right {
  position: absolute; top: 10%; right: 10%; width: 8px; height: 120px;
  background: linear-gradient(180deg, rgba(255,255,230,0.6) 0%, transparent 80%);
  transform: skewX(5deg);
  animation: aie-beam 2s ease-in-out infinite alternate-reverse;
}
.scn-angelo-isabella-encounter .crowd-figures {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 60px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 12px, #7a6a5a 12px, #7a6a5a 24px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
  animation: aie-crowd 4s ease-in-out infinite;
}
.scn-angelo-isabella-encounter .figure-angelo {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: aie-figure 1.5s ease-in-out infinite alternate;
}
.scn-angelo-isabella-encounter .figure-isabella {
  position: absolute; bottom: 25%; right: 35%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: aie-figure 1.8s ease-in-out infinite alternate-reverse;
}
@keyframes aie-hall { 0% { opacity: 0.2; } 100% { opacity: 0.5; } }
@keyframes aie-beam { 0% { opacity: 0.5; transform: skewX(-5deg) scaleY(1); } 100% { opacity: 1; transform: skewX(-5deg) scaleY(1.1); } }
@keyframes aie-crowd { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes aie-figure { 0% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(-2deg) translateY(-4px); } }

/* Scene 4: prison-claudio-duke (calm, dim-interior) */
.scn-prison-claudio-duke {
  background:
    radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, #0a0a12 100%),
    linear-gradient(180deg, #1a1a2e 0%, #0a0a12 60%, #050508 100%);
}
.scn-prison-claudio-duke .prison-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #12121e 50%, #1a1a2e 100%);
  opacity: 0.4;
  animation: pcd-wall 12s ease-in-out infinite alternate;
}
.scn-prison-claudio-duke .iron-bars {
  position: absolute; top: 5%; left: 15%; right: 15%; bottom: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 18px, #2a2a3e 18px, #2a2a3e 20px);
  opacity: 0.3;
  animation: pcd-bars 4s ease-in-out infinite alternate;
}
.scn-prison-claudio-duke .window-glow {
  position: absolute; top: 8%; left: 45%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #c0a060 0%, #806040 50%, transparent 80%);
  border-radius: 2px;
  animation: pcd-glow 8s ease-in-out infinite alternate;
}
.scn-prison-claudio-duke .lantern {
  position: absolute; bottom: 30%; left: 25%; width: 12px; height: 25px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 3px;
  box-shadow: 0 0 15px #a07040;
  animation: pcd-lantern 5s ease-in-out infinite;
}
.scn-prison-claudio-duke .lantern-light {
  position: absolute; bottom: 34%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0a060 0%, #a07040 30%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 0);
  animation: pcd-light 3s ease-in-out infinite alternate;
}
.scn-prison-claudio-duke .figure-claudio {
  position: absolute; bottom: 12%; left: 35%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: pcd-figure1 6s ease-in-out infinite;
}
.scn-prison-claudio-duke .figure-duke {
  position: absolute; bottom: 12%; right: 35%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: pcd-figure2 6s ease-in-out infinite;
}
@keyframes pcd-wall { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes pcd-bars { 0% { opacity: 0.2; } 100% { opacity: 0.4; } }
@keyframes pcd-glow { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes pcd-lantern { 0% { transform: rotate(-3deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes pcd-light { 0% { transform: translate(-50%, 0) scale(0.9); opacity: 0.7; } 100% { transform: translate(-50%, -2px) scale(1.1); opacity: 1; } }
@keyframes pcd-figure1 { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes pcd-figure2 { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }

.scn-isabella-mariana-stand { 
  background: linear-gradient(180deg, #1e1a3e 0%, #3a2a5a 30%, #8a6a4a 70%, #c8a060 100%), radial-gradient(ellipse at 50% 0%, #c8a060 0%, transparent 60%);
}
.scn-isabella-mariana-stand .sky-dawn { 
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a4a 0%, #6a4a3a 60%, transparent 100%); animation: im-sky 10s ease-in-out infinite alternate;
}
.scn-isabella-mariana-stand .glow-horizon { 
  position:absolute; bottom:40%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 50% 100%, #d8a050 0%, transparent 70%); filter: blur(8px); animation: im-glow 8s ease-in-out infinite alternate;
}
.scn-isabella-mariana-stand .city-gate { 
  position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:120px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.6); clip-path: polygon(0% 0%, 15% 0%, 15% 50%, 85% 50%, 85% 0%, 100% 0%, 100% 100%, 0% 100%); animation: im-gate 15s ease-in-out infinite;
}
.scn-isabella-mariana-stand .figure-left { 
  position:absolute; bottom:28%; left:35%; width:18px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: im-figure-l 4s ease-in-out infinite;
}
.scn-isabella-mariana-stand .figure-right { 
  position:absolute; bottom:28%; right:35%; width:18px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: im-figure-r 4s ease-in-out infinite 0.5s;
}
.scn-isabella-mariana-stand .ground { 
  position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 0 0 0 0; animation: im-ground 12s ease-in-out infinite alternate;
}
@keyframes im-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes im-glow { 0% { opacity:.5; transform: scaleY(.9); } 50% { opacity:.8; transform: scaleY(1.1); } 100% { opacity:.6; transform: scaleY(.95); } }
@keyframes im-gate { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes im-figure-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes im-figure-r { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(0) translateY(0) rotate(1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes im-ground { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-duke-returns-city-gate { 
  background: linear-gradient(180deg, #6a8ab0 0%, #8ab0d8 40%, #c0d8e8 70%, #e8f0f8 100%), radial-gradient(ellipse at 60% 0%, #f0e8c0 0%, transparent 50%);
}
.scn-duke-returns-city-gate .sky-sunlit { 
  position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a7aa0 0%, #90b8d8 60%, transparent 100%); animation: dr-sky 20s ease-in-out infinite alternate;
}
.scn-duke-returns-city-gate .sun { 
  position:absolute; top:8%; left:60%; width:50px; height:50px; background: radial-gradient(circle, #fce8a0 0%, #f0d060 40%, transparent 70%); border-radius:50%; animation: dr-sun 30s linear infinite;
}
.scn-duke-returns-city-gate .city-gate { 
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:140px; height:120px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 30% 30% 5% 5%; box-shadow: 0 10px 30px rgba(0,0,0,.3); clip-path: polygon(10% 0%, 90% 0%, 90% 100%, 10% 100%, 10% 45%, 0% 45%, 0% 55%, 10% 55%); animation: dr-gate 12s ease-in-out infinite;
}
.scn-duke-returns-city-gate .figure-duke { 
  position:absolute; bottom:27%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-fig-duke 6s ease-in-out infinite;
}
.scn-duke-returns-city-gate .figure-mariana { 
  position:absolute; bottom:30%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-fig-mar 8s ease-in-out infinite 1s;
}
.scn-duke-returns-city-gate .figure-isabella { 
  position:absolute; bottom:28%; left:50%; width:18px; height:42px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-fig-isa 7s ease-in-out infinite 2s;
}
.scn-duke-returns-city-gate .figure-peter { 
  position:absolute; bottom:26%; left:56%; width:20px; height:48px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-fig-pet 5s ease-in-out infinite 0.5s;
}
.scn-duke-returns-city-gate .ground { 
  position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 0 0; animation: dr-ground 15s ease-in-out infinite alternate;
}
@keyframes dr-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes dr-sun { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(10px,5px) scale(1.05); } 100% { transform: translate(0,0) scale(1); } }
@keyframes dr-gate { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes dr-fig-duke { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dr-fig-mar { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dr-fig-isa { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes dr-fig-pet { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(1px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dr-ground { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:.9; transform: scaleY(.98); } 100% { opacity:.8; transform: scaleY(1); } }

.scn-duke-praises-angelo { 
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7a5a 30%, #c0b090 60%, #8a7a5a 100%), radial-gradient(ellipse at 50% 0%, #e8d8c0 0%, transparent 50%);
}
.scn-duke-praises-angelo .bg-wall { 
  position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); animation: dp-wall 20s ease-in-out infinite alternate;
}
.scn-duke-praises-angelo .window-arched { 
  position:absolute; top:10%; left:45%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 40%, #d8c8b0 0%, #8a7a5a 70%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px rgba(232,216,192,.4); animation: dp-window 12s ease-in-out infinite;
}
.scn-duke-praises-angelo .column-left { 
  position:absolute; top:5%; left:20%; width:15px; height:80%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 2px 0 8px rgba(0,0,0,.3); animation: dp-col-l 18s ease-in-out infinite;
}
.scn-duke-praises-angelo .column-right { 
  position:absolute; top:5%; right:20%; width:15px; height:80%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20% 20% 5% 5%; box-shadow: -2px 0 8px rgba(0,0,0,.3); animation: dp-col-r 18s ease-in-out infinite 2s;
}
.scn-duke-praises-angelo .figure-duke { 
  position:absolute; bottom:20%; left:35%; width:22px; height:52px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-fig-d 5s ease-in-out infinite;
}
.scn-duke-praises-angelo .figure-angelo { 
  position:absolute; bottom:20%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-fig-a 6s ease-in-out infinite 1s;
}
.scn-duke-praises-angelo .floor { 
  position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; animation: dp-floor 14s ease-in-out infinite alternate;
}
@keyframes dp-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes dp-window { 0% { opacity:.7; transform: scaleY(.95); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.8; transform: scaleY(.98); } }
@keyframes dp-col-l { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dp-col-r { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dp-fig-d { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(1px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dp-fig-a { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes dp-floor { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }

.scn-isabella-accuses { 
  background: linear-gradient(180deg, #8a9ab8 0%, #b0c0d8 40%, #d8e0f0 70%, #f0f0f8 100%), radial-gradient(ellipse at 50% 0%, #f8f0e0 0%, transparent 60%);
}
.scn-isabella-accuses .bg-sunlit { 
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a7a98 0%, #a0b8d0 60%, transparent 100%); animation: ia-bg 15s ease-in-out infinite alternate;
}
.scn-isabella-accuses .throne { 
  position:absolute; bottom:15%; left:65%; width:60px; height:80px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 6px 6px 20px rgba(0,0,0,.5); animation: ia-throne 10s ease-in-out infinite;
}
.scn-isabella-accuses .figure-duke { 
  position:absolute; bottom:25%; left:65%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ia-fig-d 5s ease-in-out infinite;
}
.scn-isabella-accuses .figure-isabella-kneeling { 
  position:absolute; bottom:15%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: ia-fig-i 4s ease-in-out infinite;
}
.scn-isabella-accuses .shadow-sharp { 
  position:absolute; bottom:15%; left:30%; width:120px; height:80px; background: linear-gradient(135deg, #4a5a6a 0%, transparent 60%); clip-path: polygon(0% 0%, 80% 0%, 60% 100%, 0% 100%); opacity:.3; animation: ia-shadow 9s ease-in-out infinite alternate;
}
.scn-isabella-accuses .ground { 
  position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; animation: ia-ground 12s ease-in-out infinite alternate;
}
@keyframes ia-bg { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ia-throne { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ia-fig-d { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(4deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ia-fig-i { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes ia-shadow { 0% { opacity:.2; transform: skewX(0); } 50% { opacity:.4; transform: skewX(-2deg); } 100% { opacity:.3; transform: skewX(0); } }
@keyframes ia-ground { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }

/* item-prison-keys */
.scn-item-prison-keys {
  background:
    radial-gradient(ellipse at 50% 40%, #c8753a 0%, transparent 60%),
    linear-gradient(180deg, #3d2b1f 0%, #2a1e14 40%, #1f140e 100%);
}
.scn-item-prison-keys .stonewall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30px, #2e1f12 30px, #2e1f12 32px),
              repeating-linear-gradient(90deg, transparent, transparent 30px, #2e1f12 30px, #2e1f12 32px);
  opacity: .3;
}
.scn-item-prison-keys .bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 5px, #1a1a1a 5px, #1a1a1a 7px);
  z-index: 10;
}
.scn-item-prison-keys .torch {
  position: absolute; bottom: 50%; left: 20%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #6b3f1d 0%, #4a2a0e 100%);
  border-radius: 4px 4px 2px 2px;
  transform-origin: bottom center;
  animation: ipk-torch 6s ease-in-out infinite;
}
.scn-item-prison-keys .flame {
  position: absolute; bottom: calc(50% + 60px); left: 20%; width: 18px; height: 30px;
  margin-left: -3px;
  background: radial-gradient(circle, #ffdd77 0%, #ff8c00 40%, #cc4400 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: ipk-flame .4s ease-in-out infinite alternate;
}
.scn-item-prison-keys .keyring {
  position: absolute; top: 30%; left: 60%; width: 16px; height: 16px;
  background: radial-gradient(circle, #c0a060 0%, #806030 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 2px #604020;
  animation: ipk-swing 3s ease-in-out infinite;
  transform-origin: top center;
}
.scn-item-prison-keys .keyring::after {
  content: ''; position: absolute; top: 100%; left: 50%; width: 2px; height: 20px;
  background: #604020; transform: translateX(-50%);
}
.scn-item-prison-keys .jailor {
  position: absolute; bottom: 15%; left: 70%; width: 40px; height: 80px;
  background: radial-gradient(ellipse 60% 70% at 50% 30%, #2a1e14 0%, #0d0906 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ipk-breathe 4s ease-in-out infinite;
}
.scn-item-prison-keys .shadow {
  position: absolute; bottom: 0; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%);
  filter: blur(8px);
  animation: ipk-shadow 8s ease-in-out infinite alternate;
}
@keyframes ipk-torch {
  0%,100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-3deg) scaleY(1.02); }
}
@keyframes ipk-flame {
  0% { transform: scale(1) translateY(0); opacity: .9; }
  50% { transform: scale(1.2, 1.4) translateY(-4px); opacity: 1; }
  100% { transform: scale(.9, 1.1) translateY(2px); opacity: .8; }
}
@keyframes ipk-swing {
  0%,100% { transform: rotate(20deg); }
  25% { transform: rotate(-15deg); }
  50% { transform: rotate(25deg); }
  75% { transform: rotate(-10deg); }
}
@keyframes ipk-breathe {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
}
@keyframes ipk-shadow {
  0% { transform: scaleX(1); opacity: .6; }
  100% { transform: scaleX(1.2); opacity: .4; }
}

/* angelo-penitent */
.scn-angelo-penitent {
  background:
    radial-gradient(ellipse at 50% 10%, #f5e6d0 0%, transparent 50%),
    linear-gradient(180deg, #2a1e34 0%, #1a1122 40%, #0e0814 100%);
}
.scn-angelo-penitent .lightbeam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(245,230,208,.15) 0%, transparent 80%);
  clip-path: polygon(30% 0, 70% 0, 90% 100%, 10% 100%);
  animation: ap-beam 20s ease-in-out infinite alternate;
}
.scn-angelo-penitent .altar {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,.4);
}
.scn-angelo-penitent .altar::after {
  content: ''; position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  width: 10px; height: 20px; background: #6b5b6b; border-radius: 2px;
}
.scn-angelo-penitent .figure {
  position: absolute; bottom: 20%; left: 50%; width: 34px; height: 60px;
  transform: translateX(-50%) scaleX(-1);
  background: radial-gradient(ellipse 60% 70% at 50% 20%, #1a1122 0%, #0e0814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ap-kneel 10s ease-in-out infinite;
}
.scn-angelo-penitent .glass {
  position: absolute; top: 5%; left: 30%; width: 30px; height: 50px;
  background: radial-gradient(circle at 30% 30%, #a080c0 0%, transparent 70%);
  border: 2px solid #6b5b7b; border-radius: 4px;
  animation: ap-glass 6s ease-in-out infinite alternate;
}
.scn-angelo-penitent .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(0deg, #0e0814 0%, #1a1122 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
@keyframes ap-beam {
  0% { opacity: .3; transform: skewX(0deg) translateX(0); }
  50% { opacity: .7; transform: skewX(3deg) translateX(10px); }
  100% { opacity: .4; transform: skewX(-2deg) translateX(-5px); }
}
@keyframes ap-kneel {
  0%,100% { transform: translateX(-50%) scaleX(-1) rotate(0deg); }
  50% { transform: translateX(-50%) scaleX(-1) rotate(-2deg) translateY(2px); }
}
@keyframes ap-glass {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.05); }
  100% { opacity: .3; transform: scale(.95); }
}

/* claudio-revealed */
.scn-claudio-revealed {
  background:
    radial-gradient(ellipse at 30% 50%, #fff5e0 0%, transparent 50%),
    linear-gradient(180deg, #e8dcc8 0%, #c4b49a 40%, #a09078 100%);
}
.scn-claudio-revealed .window {
  position: absolute; top: 10%; left: 18%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #ffe8c8 0%, #d4c0a0 100%);
  border: 6px solid #8a7a62;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,232,200,.3);
}
.scn-claudio-revealed .curtain {
  position: absolute; top: 10%; left: 12%; width: 72px; height: 90px;
  background: linear-gradient(90deg, #b8a888 0%, #d4c4b0 50%, #a09070 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: cr-curtain 8s ease-in-out infinite alternate;
}
.scn-claudio-revealed .friar {
  position: absolute; bottom: 18%; left: 40%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cr-breath 5s ease-in-out infinite;
}
.scn-claudio-revealed .claudio {
  position: absolute; bottom: 18%; left: 48%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  opacity: .8;
  animation: cr-breath 5s ease-in-out infinite reverse;
}
.scn-claudio-revealed .dust {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(255,255,240,.6);
  border-radius: 50%;
  box-shadow: 10px 20px 0 rgba(255,255,240,.4), 30px 50px 0 rgba(255,255,240,.3), 50px 10px 0 rgba(255,255,240,.2);
  animation: cr-drift 30s linear infinite;
}
.scn-claudio-revealed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 16%;
  background: linear-gradient(0deg, #8a7a62 0%, #b8a888 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.15);
}
@keyframes cr-curtain {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.05) translateX(2px); }
  100% { transform: scaleX(.98) translateX(-1px); }
}
@keyframes cr-breath {
  0%,100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
}
@keyframes cr-drift {
  0% { transform: translateX(0) translateY(0); opacity: 1; }
  50% { transform: translateX(60px) translateY(-20px); opacity: .6; }
  100% { transform: translateX(120px) translateY(0); opacity: 0; }
}

/* claudio-unmuffled */
.scn-claudio-unmuffled {
  background:
    radial-gradient(ellipse at 50% 40%, #ffd080 0%, transparent 60%),
    linear-gradient(180deg, #ffe4b0 0%, #ffcc80 30%, #e8a840 100%);
}
.scn-claudio-unmuffled .backlight {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,215,0,.15) 0%, transparent 70%);
  animation: cu-back 10s ease-in-out infinite alternate;
}
.scn-claudio-unmuffled .figure1 {
  position: absolute; bottom: 20%; left: 40%; width: 36px; height: 72px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cu-embrace 4s ease-in-out infinite;
}
.scn-claudio-unmuffled .figure2 {
  position: absolute; bottom: 20%; left: 46%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cu-embrace 4s ease-in-out infinite reverse;
}
.scn-claudio-unmuffled .halo {
  position: absolute; top: 30%; left: 38%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,215,0,.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: cu-glow 3s ease-in-out infinite alternate;
}
.scn-claudio-unmuffled .sparkles {
  position: absolute; top: 10%; left: 20%; width: 100%; height: 100%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,200,.8) 0%, transparent 4px),
              radial-gradient(circle at 60% 50%, rgba(255,255,200,.6) 0%, transparent 3px),
              radial-gradient(circle at 80% 20%, rgba(255,255,200,.4) 0%, transparent 2px);
  animation: cu-spark 2s ease-in-out infinite alternate;
}
@keyframes cu-back {
  0% { opacity: .7; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.03); }
}
@keyframes cu-embrace {
  0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-2px) rotate(2deg) scaleY(1.02); }
  50% { transform: translateX(2px) rotate(-1deg) scaleY(1); }
  75% { transform: translateX(0) rotate(1deg) scaleY(1.01); }
}
@keyframes cu-glow {
  0% { transform: scale(1); opacity: .6; }
  50% { transform: scale(1.15); opacity: .9; }
  100% { transform: scale(.95); opacity: .5; }
}
@keyframes cu-spark {
  0% { opacity: .3; transform: scaleY(1); }
  50% { opacity: .8; transform: scaleY(1.2); }
  100% { opacity: .5; transform: scaleY(.9); }
}

.scn-angelo-resists-temptation {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 50%, #a29078 100%), radial-gradient(ellipse at 80% 20%, #f5e6c8 0%, transparent 60%);
}
.scn-angelo-resists-temptation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d6c8b4 0%, #b8a68c 50%, #9a8870 100%);
  animation: ar-wall 12s ease-in-out infinite alternate;
}
.scn-angelo-resists-temptation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7a64 0%, #6b5a44 100%);
  border-radius: 2% / 4% 4% 0 0;
}
.scn-angelo-resists-temptation .desk {
  position: absolute; bottom: 20%; left: 15%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #5c4a34 0%, #3a2a18 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ar-desk 6s ease-in-out infinite;
}
.scn-angelo-resists-temptation .figure-angelo {
  position: absolute; bottom: 22%; left: 28%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-angelo 3s ease-in-out infinite;
}
.scn-angelo-resists-temptation .figure-isabella {
  position: absolute; bottom: 20%; left: 52%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-isabella 4s ease-in-out infinite;
}
.scn-angelo-resists-temptation .window {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, #c8b898 70%, #a89878 100%);
  border: 6px solid #5c4a34;
  border-radius: 4% / 6%;
  box-shadow: inset 0 0 30px rgba(240,224,192,0.3);
}
.scn-angelo-resists-temptation .light {
  position: absolute; top: 15%; left: 12%; width: 35%; height: 40%;
  background: linear-gradient(135deg, rgba(240,224,192,0.2) 0%, transparent 100%);
  animation: ar-light 5s ease-in-out infinite alternate;
}
.scn-angelo-resists-temptation .candle {
  position: absolute; bottom: 28%; left: 42%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b070 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 16px 6px #ffd080;
  animation: ar-candle 2s ease-in-out infinite alternate;
}
@keyframes ar-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ar-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ar-angelo { 0% { transform: rotate(-1deg) } 25% { transform: rotate(1deg) translateX(1px) } 50% { transform: rotate(0) } 75% { transform: rotate(-1deg) translateX(-1px) } 100% { transform: rotate(0) } }
@keyframes ar-isabella { 0% { transform: rotate(2deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-2px) } 50% { transform: rotate(-2deg) translateY(0) } 75% { transform: rotate(0) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes ar-light { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes ar-candle { 0% { box-shadow: 0 0 12px 4px #ffd080; height: 12px; } 50% { box-shadow: 0 0 20px 8px #ffe0a0; height: 13px; } 100% { box-shadow: 0 0 14px 5px #ffd080; height: 11px; } }

.scn-pleading-isabella {
  background: linear-gradient(180deg, #d6c8b4 0%, #b8a68c 50%, #9a8870 100%), radial-gradient(ellipse at 70% 30%, #f5e6c8 0%, transparent 60%);
}
.scn-pleading-isabella .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 70%, #a29078 100%);
}
.scn-pleading-isabella .figure-isabella {
  position: absolute; bottom: 18%; left: 38%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-isabella 3.5s ease-in-out infinite;
}
.scn-pleading-isabella .figure-angelo {
  position: absolute; bottom: 20%; left: 60%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-angelo 4s ease-in-out infinite;
}
.scn-pleading-isabella .hands {
  position: absolute; bottom: 22%; left: 42%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #c8a088 0%, #a08068 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: pi-hands 2s ease-in-out infinite alternate;
}
.scn-pleading-isabella .table {
  position: absolute; bottom: 16%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #5c4a34 0%, #3a2a18 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
}
.scn-pleading-isabella .light {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, rgba(240,224,192,0.25) 0%, transparent 70%);
  animation: pi-light 6s ease-in-out infinite alternate;
}
.scn-pleading-isabella .shadow {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 20%;
  background: rgba(0,0,0,0.15);
  filter: blur(8px);
  animation: pi-shadow 8s ease-in-out infinite alternate;
}
.scn-pleading-isabella .book {
  position: absolute; bottom: 20%; left: 22%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 1% / 2%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
@keyframes pi-isabella { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pi-angelo { 0% { transform: rotate(0) } 30% { transform: rotate(2deg) translateX(1px) } 60% { transform: rotate(-1deg) } 100% { transform: rotate(0) } }
@keyframes pi-hands { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(8deg) scale(1) } }
@keyframes pi-light { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes pi-shadow { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-10px) scaleY(0.95) } 100% { transform: translateX(0) scaleY(1) } }

.scn-angelo-self-debate {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 60%);
}
.scn-angelo-self-debate .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  animation: as-bg 10s ease-in-out infinite alternate;
}
.scn-angelo-self-debate .window {
  position: absolute; top: 8%; right: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #c8d8e8 0%, #8898b8 60%, #4a5a7a 100%);
  border: 4px solid #3a3a4a;
  border-radius: 4% / 6%;
  box-shadow: inset 0 0 20px rgba(200,216,232,0.3);
  animation: as-window 15s linear infinite alternate;
}
.scn-angelo-self-debate .desk {
  position: absolute; bottom: 12%; left: 12%; width: 76%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
}
.scn-angelo-self-debate .chair {
  position: absolute; bottom: 18%; left: 32%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% / 30%;
  transform-origin: bottom center;
}
.scn-angelo-self-debate .figure-angelo {
  position: absolute; bottom: 20%; left: 36%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-figure 6s ease-in-out infinite;
}
.scn-angelo-self-debate .candle {
  position: absolute; bottom: 15%; left: 28%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #f0c060 0%, #c08020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px #ffb040, 0 0 40px 12px rgba(255,176,64,0.3);
  animation: as-candle 3s ease-in-out infinite alternate;
}
.scn-angelo-self-debate .shadow-on-wall {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: as-shadow 8s ease-in-out infinite alternate;
}
@keyframes as-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes as-window { 0% { opacity: 0.5; transform: scaleY(1) } 50% { opacity: 0.7; transform: scaleY(1.02) } 100% { opacity: 0.6; transform: scaleY(0.98) } }
@keyframes as-figure { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes as-candle { 0% { box-shadow: 0 0 16px 4px #ffb040; height: 16px; } 50% { box-shadow: 0 0 28px 10px #ffc060; height: 18px; } 100% { box-shadow: 0 0 20px 6px #ffb040; height: 15px; } }
@keyframes as-shadow { 0% { transform: scaleY(0.9) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(0.95) } }

.scn-prison-friar-visit {
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 50%, #000a0a 100%), radial-gradient(ellipse at 50% 20%, #2a3a3a 0%, transparent 60%);
}
.scn-prison-friar-visit .wall-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 50%, #0a1a1a 100%);
  animation: pf-wall 15s ease-in-out infinite alternate;
}
.scn-prison-friar-visit .wall-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-right: 2px solid #3a3a3a;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
}
.scn-prison-friar-visit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2% / 4% 4% 0 0;
}
.scn-prison-friar-visit .bars {
  position: absolute; top: 10%; left: 30%; width: 4px; height: 60%;
  background: #5a5a5a;
  box-shadow: 8px 0 #5a5a5a, 16px 0 #5a5a5a, 24px 0 #5a5a5a, 32px 0 #5a5a5a, 40px 0 #5a5a5a, 48px 0 #5a5a5a;
  animation: pf-bars 8s ease-in-out infinite alternate;
}
.scn-prison-friar-visit .figure-friar {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-friar 6s ease-in-out infinite;
}
.scn-prison-friar-visit .figure-prisoner {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-prisoner 7s ease-in-out infinite;
}
.scn-prison-friar-visit .window {
  position: absolute; top: 12%; right: 15%; width: 18%; height: 25%;
  background: radial-gradient(ellipse at 50% 40%, #6a8a9a 0%, #3a4a5a 60%, #1a2a3a 100%);
  border: 4px solid #4a4a4a;
  border-radius: 4% / 6%;
  box-shadow: inset 0 0 12px rgba(106,138,154,0.3);
  animation: pf-window 20s linear infinite alternate;
}
.scn-prison-friar-visit .lantern {
  position: absolute; bottom: 22%; left: 15%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #e0a040 0%, #c08020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px #e0a040, 0 0 40px 16px rgba(224,160,64,0.3);
  animation: pf-lantern 4s ease-in-out infinite alternate;
}
@keyframes pf-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes pf-bars { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes pf-friar { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes pf-prisoner { 0% { transform: rotate(0) } 30% { transform: rotate(2deg) } 60% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes pf-window { 0% { opacity: 0.4; transform: scaleY(1) } 50% { opacity: 0.7; transform: scaleY(1.03) } 100% { opacity: 0.5; transform: scaleY(0.98) } }
@keyframes pf-lantern { 0% { box-shadow: 0 0 16px 4px #e0a040; } 50% { box-shadow: 0 0 28px 10px #f0b050; } 100% { box-shadow: 0 0 20px 6px #e0a040; } }

.scn-isabella-meets-lucio {
  background: linear-gradient(180deg, #fef0d0 0%, #f0d8a0 60%, #d0b080 100%), radial-gradient(ellipse at 70% 40%, rgba(255,240,200,0.6) 0%, transparent 60%);
}
.scn-isabella-meets-lucio .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fae8c8 0%, #e8d0a8 100%);
}
.scn-isabella-meets-lucio .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6a50 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-isabella-meets-lucio .window {
  position: absolute; top: 15%; left: 10%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #b0d8f0 0%, #80b8e0 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 0 8px #c8a878, 0 0 40px rgba(255,240,200,0.3);
  animation: iml-window 12s ease-in-out infinite alternate;
}
.scn-isabella-meets-lucio .light-beam {
  position: absolute; top: 15%; left: 10%; width: 50%; height: 50%;
  background: linear-gradient(135deg, rgba(255,250,230,0.3) 0%, transparent 80%);
  transform: skewX(-20deg);
  animation: iml-beam 8s ease-in-out infinite alternate;
}
.scn-isabella-meets-lucio .figure.isabella {
  position: absolute; bottom: 30%; left: 25%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iml-figure 6s ease-in-out infinite;
}
.scn-isabella-meets-lucio .figure.lucio {
  position: absolute; bottom: 30%; left: 42%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iml-figure 7s ease-in-out infinite reverse;
}
.scn-isabella-meets-lucio .table {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #c8a878 0%, #a08060 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: iml-table 10s ease-in-out infinite;
}
.scn-isabella-meets-lucio .candle {
  position: absolute; bottom: 28%; left: 33%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f0d0a0 0%, #c0a070 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 8px #ffd080, 0 0 40px 16px rgba(255,208,128,0.4);
  animation: iml-candle 3s ease-in-out infinite alternate;
}
@keyframes iml-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes iml-beam { 0% { transform: skewX(-20deg) translateX(-5%); } 50% { transform: skewX(-18deg) translateX(0); } 100% { transform: skewX(-22deg) translateX(3%); } }
@keyframes iml-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes iml-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes iml-candle { 0% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 20px 8px #ffd080; } 50% { transform: scaleY(1.05) scaleX(0.95); opacity: 1; box-shadow: 0 0 30px 12px #ffd080; } 100% { transform: scaleY(0.98) scaleX(1.02); opacity: 0.9; box-shadow: 0 0 20px 8px #ffd080; } }

/* Scene 2 */
.scn-isabella-shocked {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 60%, #a08868 100%), radial-gradient(ellipse at 60% 30%, rgba(255,240,180,0.5) 0%, transparent 50%);
}
.scn-isabella-shocked .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
}
.scn-isabella-shocked .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9a8060 0%, #6a5040 100%);
}
.scn-isabella-shocked .shadow-stripe {
  position: absolute; bottom: 35%; left: 15%; width: 70%; height: 5%;
  background: rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: ish-shadow 4s ease-in-out infinite alternate;
}
.scn-isabella-shocked .figure.isabella {
  position: absolute; bottom: 30%; left: 20%; width: 9%; height: 38%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ish-figure-a 2s ease-in-out infinite;
}
.scn-isabella-shocked .figure.lucio {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 42%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ish-figure-b 2.5s ease-in-out infinite;
}
.scn-isabella-shocked .light-shaft {
  position: absolute; top: 5%; left: 30%; width: 15%; height: 60%;
  background: linear-gradient(180deg, rgba(255,250,230,0.4) 0%, transparent 70%);
  transform: skewX(-15deg);
  animation: ish-shaft 5s ease-in-out infinite alternate;
}
.scn-isabella-shocked .chair {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(8deg);
  animation: ish-chair 3s ease-in-out infinite;
}
@keyframes ish-shadow { 0% { opacity: 0.2; transform: rotate(-5deg) translateX(0); } 50% { opacity: 0.5; transform: rotate(-3deg) translateX(5px); } 100% { opacity: 0.3; transform: rotate(-6deg) translateX(-2px); } }
@keyframes ish-figure-a { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ish-figure-b { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ish-shaft { 0% { opacity: 0.5; transform: skewX(-15deg) scaleX(1); } 50% { opacity: 0.9; transform: skewX(-17deg) scaleX(1.2); } 100% { opacity: 0.6; transform: skewX(-13deg) scaleX(0.9); } }
@keyframes ish-chair { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(6deg) translateY(0); } }

/* Scene 3 */
.scn-isabella-learns-truth {
  background: linear-gradient(135deg, #f5ecd6 0%, #e8d5b8 50%, #d4bca0 100%), radial-gradient(circle at 50% 50%, rgba(240,220,180,0.3) 0%, transparent 70%);
}
.scn-isabella-learns-truth .bg-parchment {
  position: absolute; inset: 15% 10%;
  background: linear-gradient(180deg, #f5ecd6 0%, #e8d5b8 100%);
  border-radius: 4%;
  box-shadow: 0 0 0 4px #c8a878, 0 8px 30px rgba(0,0,0,0.15);
}
.scn-isabella-learns-truth .letter {
  position: absolute; top: 25%; left: 25%; width: 50%; height: 50%;
  background: linear-gradient(135deg, #fff8e8 0%, #f0e0c8 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  animation: ilt-letter 6s ease-in-out infinite;
}
.scn-isabella-learns-truth .hand.left {
  position: absolute; bottom: 30%; left: 18%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #d4b8a0 0%, #b09078 100%);
  border-radius: 50% 40% 40% 50% / 60% 40% 40% 60%;
  transform-origin: 50% 100%;
  animation: ilt-hand 5s ease-in-out infinite;
}
.scn-isabella-learns-truth .hand.right {
  position: absolute; bottom: 30%; right: 18%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #d4b8a0 0%, #b09078 100%);
  border-radius: 40% 50% 50% 40% / 40% 60% 60% 40%;
  transform-origin: 50% 100%;
  animation: ilt-hand 5s ease-in-out infinite reverse;
}
.scn-isabella-learns-truth .seal {
  position: absolute; top: 65%; left: 55%; width: 8%; height: 8%;
  background: radial-gradient(circle, #b04830 0%, #8a2818 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(160,50,30,0.4);
  animation: ilt-seal 3s ease-in-out infinite alternate;
}
.scn-isabella-learns-truth .tear {
  position: absolute; top: 40%; right: 30%; width: 3%; height: 5%;
  background: radial-gradient(circle, #b8d8f0 0%, transparent 70%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: ilt-tear 4s ease-in-out infinite;
}
@keyframes ilt-letter { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes ilt-hand { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ilt-seal { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes ilt-tear { 0% { opacity: 0.2; transform: translateX(0) rotate(15deg); } 50% { opacity: 0.6; transform: translateX(-3px) rotate(10deg); } 100% { opacity: 0.1; transform: translateX(2px) rotate(18deg); } }

/* Scene 4 */
.scn-angelo-severe-act {
  background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 30%, #4a4a4a 70%, #2a2a2a 100%), radial-gradient(ellipse at 40% 30%, rgba(220,220,220,0.1) 0%, transparent 60%);
}
.scn-angelo-severe-act .bg-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7a7a7a 0%, #5a5a5a 100%);
}
.scn-angelo-severe-act .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
}
.scn-angelo-severe-act .desk {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-angelo-severe-act .figure.angelo {
  position: absolute; bottom: 30%; left: 38%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asa-figure 8s ease-in-out infinite;
}
.scn-angelo-severe-act .chain.left {
  position: absolute; bottom: 20%; left: 25%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #b0b0b0 0%, #808080 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: asa-chain 4s ease-in-out infinite alternate;
}
.scn-angelo-severe-act .chain.right {
  position: absolute; bottom: 20%; right: 25%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #b0b0b0 0%, #808080 100%);
  border-radius: 2px;
  animation: asa-chain 4s ease-in-out infinite alternate-reverse;
}
.scn-angelo-severe-act .document {
  position: absolute; bottom: 35%; left: 42%; width: 16%; height: 12%;
  background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  transform: rotate(2deg);
  animation: asa-document 6s ease-in-out infinite;
}
.scn-angelo-severe-act .lamp {
  position: absolute; top: 0; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(circle at 50% 0%, rgba(255,250,230,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: asa-lamp 8s ease-in-out infinite alternate;
}
@keyframes asa-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes asa-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes asa-document { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes asa-lamp { 0% { opacity: 0.4; transform: scaleY(0.95); } 50% { opacity: 0.8; transform: scaleY(1.05); } 100% { opacity: 0.5; transform: scaleY(0.98); } }

/* Scene 1: prison-isabella-claudio — tense, dim interior */
.scn-prison-isabella-claudio {
  background:
    linear-gradient(180deg, #1a1010 0%, #2a1a1a 50%, #0a0a0a 100%),
    radial-gradient(ellipse at 20% 20%, #3a2a1a 0%, transparent 70%);
}
.scn-prison-isabella-claudio .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
}
.scn-prison-isabella-claudio .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1010 100%);
}
.scn-prison-isabella-claudio .bars {
  position: absolute; top: 0; bottom: 20%; left: 25%; right: 25%;
  background: repeating-linear-gradient(
    0deg,
    transparent 0px,
    transparent 12px,
    #3a3a3a 12px,
    #3a3a3a 14px
  );
  filter: blur(1px);
  opacity: 0.7;
  animation: pi1-bars 4s ease-in-out infinite alternate;
}
.scn-prison-isabella-claudio .figure-a {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi1-figure-a 3s ease-in-out infinite;
}
.scn-prison-isabella-claudio .figure-b {
  position: absolute; bottom: 22%; left: 52%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi1-figure-b 3.5s ease-in-out infinite;
}
.scn-prison-isabella-claudio .light {
  position: absolute; top: 12%; left: 18%; width: 30px; height: 20px;
  background: radial-gradient(circle, #c08040 0%, #8a5a2a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(192,128,64,0.4);
  animation: pi1-light 1.8s ease-in-out infinite alternate;
}
@keyframes pi1-bars {
  0% { opacity: 0.7; filter: blur(1px); }
  50% { opacity: 0.9; filter: blur(0.5px); }
  100% { opacity: 0.6; filter: blur(2px); }
}
@keyframes pi1-figure-a {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pi1-figure-b {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pi1-light {
  0% { box-shadow: 0 0 30px 10px rgba(192,128,64,0.3); }
  50% { box-shadow: 0 0 60px 20px rgba(192,128,64,0.6); }
  100% { box-shadow: 0 0 35px 12px rgba(192,128,64,0.4); }
}

/* Scene 2: prison-duke-claudio — calm, dim interior */
.scn-prison-duke-claudio {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%);
}
.scn-prison-duke-claudio .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%);
}
.scn-prison-duke-claudio .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0e0e1a 0%, #1a1a2e 100%);
}
.scn-prison-duke-claudio .lantern {
  position: absolute; top: 20%; left: 20%; width: 16px; height: 24px;
  background: radial-gradient(circle, #d0a060 0%, #a07030 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(208,160,96,0.3);
  animation: pi2-lantern 6s ease-in-out infinite alternate;
}
.scn-prison-duke-claudio .table {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 8px;
  background: #2a2a1a;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-prison-duke-claudio .figure-duke {
  position: absolute; bottom: 22%; left: 42%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi2-duke 8s ease-in-out infinite;
}
.scn-prison-duke-claudio .figure-claudio {
  position: absolute; bottom: 20%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi2-claudio 9s ease-in-out infinite;
}
.scn-prison-duke-claudio .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: pi2-shadow 10s ease-in-out infinite alternate;
}
@keyframes pi2-lantern {
  0% { box-shadow: 0 0 50px 15px rgba(208,160,96,0.2); }
  50% { box-shadow: 0 0 70px 25px rgba(208,160,96,0.4); }
  100% { box-shadow: 0 0 55px 18px rgba(208,160,96,0.3); }
}
@keyframes pi2-duke {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pi2-claudio {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pi2-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* Scene 3: prison-duke-isabella — calm, dim interior */
.scn-prison-duke-isabella {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 30% 80%, #3a3a4e 0%, transparent 70%);
}
.scn-prison-duke-isabella .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%);
}
.scn-prison-duke-isabella .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0e0e1a 0%, #1a1a2e 100%);
}
.scn-prison-duke-isabella .window {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 50px;
  border: 4px solid #3a3a4e;
  background: #2a2a3e;
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: pi3-window 12s ease-in-out infinite alternate;
}
.scn-prison-duke-isabella .figure-duke {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi3-duke 8s ease-in-out infinite;
}
.scn-prison-duke-isabella .figure-isabella {
  position: absolute; bottom: 24%; left: 50%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi3-isabella 9s ease-in-out infinite;
}
.scn-prison-duke-isabella .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 50px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: pi3-shadow 10s ease-in-out infinite alternate;
}
@keyframes pi3-window {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes pi3-duke {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pi3-isabella {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pi3-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

/* Scene 4: street-pompey-arrest — funny, overcast */
.scn-street-pompey-arrest {
  background:
    linear-gradient(180deg, #9a9a9a 0%, #c0c0c0 40%, #e0e0e0 70%, #b0b0b0 100%),
    radial-gradient(ellipse at 50% 0%, #d0d0d0 0%, transparent 70%);
}
.scn-street-pompey-arrest .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #9a9a9a 0%, #d0d0d0 100%);
}
.scn-street-pompey-arrest .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #7a7a7a 0%, #9a9a9a 100%);
}
.scn-street-pompey-arrest .building-left {
  position: absolute; bottom: 30%; left: 0; width: 30%; height: 50%;
  background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 100%);
  border-radius: 0 10% 0 0;
  box-shadow: inset -10px 0 15px rgba(0,0,0,0.2);
}
.scn-street-pompey-arrest .building-right {
  position: absolute; bottom: 30%; right: 0; width: 25%; height: 45%;
  background: linear-gradient(180deg, #7a7a7a 0%, #5a5a5a 100%);
  border-radius: 10% 0 0 0;
  box-shadow: inset 10px 0 15px rgba(0,0,0,0.2);
}
.scn-street-pompey-arrest .figure-pompey {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp1-pompey 2s ease-in-out infinite;
}
.scn-street-pompey-arrest .figure-constable {
  position: absolute; bottom: 30%; left: 55%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #5a5a5a 0%, #4a4a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp1-constable 2.2s ease-in-out infinite;
  /* constable hat hint: use a small div later? but we have no extra. use shape: maybe::after? ignore. */
}
.scn-street-pompey-arrest .stall {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #b0a070 0%, #8a7a50 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sp1-stall 5s ease-in-out infinite;
}
.scn-street-pompey-arrest .cloud {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 20px;
  background: rgba(200,200,200,0.7);
  border-radius: 50%;
  filter: blur(8px);
  animation: sp1-cloud 30s linear infinite;
}
@keyframes sp1-pompey {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes sp1-constable {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes sp1-stall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes sp1-cloud {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(120vw); }
}

/* angelo-confesses-knowledge */
.scn-angelo-confesses-knowledge {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c29a 40%, #c8a87a 100%),
              radial-gradient(ellipse at 30% 20%, #ffe8b0 0%, transparent 60%);
}
.scn-angelo-confesses-knowledge .window {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(135deg, #fff5d0 0%, #f0d9a0 60%, transparent 61%);
  border: 4px solid #8b6f4a; border-radius: 4px;
  animation: ack-window-pulse 3s ease-in-out infinite alternate;
}
.scn-angelo-confesses-knowledge .bench {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #6a4a2e 0%, #3d291a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 8px 12px rgba(0,0,0,.5);
}
.scn-angelo-confesses-knowledge .figure-judge {
  position: absolute; bottom: 25%; left: 40%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ack-judge-sway 2s ease-in-out infinite alternate;
}
.scn-angelo-confesses-knowledge .figure-supplicant {
  position: absolute; bottom: 18%; left: 55%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e10 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: ack-supplicant-sway 1.8s ease-in-out infinite alternate;
}
.scn-angelo-confesses-knowledge .shadow-1 {
  position: absolute; bottom: 25%; left: 20%; width: 40%; height: 25%;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: ack-shadow-flicker 2.5s ease-in-out infinite alternate;
}
.scn-angelo-confesses-knowledge .light-beam {
  position: absolute; top: 8%; left: 25%; width: 8%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,0.4) 0%, transparent 100%);
  transform: rotate(10deg); filter: blur(4px);
  animation: ack-beam-sway 4s ease-in-out infinite alternate;
}
.scn-angelo-confesses-knowledge .cross {
  position: absolute; top: 8%; left: 50%; width: 6%; height: 16%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 2px; transform: translateX(-50%);
  box-shadow: 0 0 8px rgba(0,0,0,.3);
  animation: ack-cross-glow 3s ease-in-out infinite alternate;
}

@keyframes ack-window-pulse {
  0% { opacity: 0.85; box-shadow: 0 0 10px 4px #f0d9a0; }
  50% { opacity: 1; box-shadow: 0 0 20px 8px #ffe8b0; }
  100% { opacity: 0.9; box-shadow: 0 0 12px 5px #e0c090; }
}
@keyframes ack-judge-sway {
  0% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(1deg) scale(1); }
}
@keyframes ack-supplicant-sway {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(1px); }
}
@keyframes ack-shadow-flicker {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}
@keyframes ack-beam-sway {
  0% { transform: rotate(8deg); }
  50% { transform: rotate(12deg); }
  100% { transform: rotate(10deg); }
}
@keyframes ack-cross-glow {
  0% { box-shadow: 0 0 6px 2px rgba(0,0,0,.2); }
  50% { box-shadow: 0 0 14px 6px rgba(200,160,120,.4); }
  100% { box-shadow: 0 0 8px 3px rgba(0,0,0,.2); }
}

/* mariana-vows-truth */
.scn-mariana-vows-truth {
  background: linear-gradient(180deg, #cce0f0 0%, #b0c8d8 40%, #8aacb8 100%),
              radial-gradient(ellipse at 70% 30%, #f0e8d0 0%, transparent 70%);
}
.scn-mariana-vows-truth .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0d8e8 0%, #d8e4f0 100%);
  animation: mvt-sky 12s ease-in-out infinite alternate;
}
.scn-mariana-vows-truth .garden-wall {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
}
.scn-mariana-vows-truth .arch {
  position: absolute; bottom: 20%; left: 50%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  transform: translateX(-50%);
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.4);
}
.scn-mariana-vows-truth .figure-woman {
  position: absolute; bottom: 20%; left: 40%; width: 8%; height: 36%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: mvt-woman-raise 3s ease-in-out infinite;
}
.scn-mariana-vows-truth .figure-man {
  position: absolute; bottom: 20%; left: 55%; width: 9%; height: 34%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: mvt-man-turn 4s ease-in-out infinite alternate;
}
.scn-mariana-vows-truth .vines {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 20% 30%, #4a7a4a 0%, transparent 70%);
  filter: blur(3px);
  animation: mvt-vines-sway 8s ease-in-out infinite alternate;
}
.scn-mariana-vows-truth .sunburst {
  position: absolute; top: 5%; left: 60%; width: 25%; height: 25%;
  background: radial-gradient(circle, #fff8e0 0%, #f0d8a0 40%, transparent 70%);
  animation: mvt-sunburst-rotate 20s linear infinite;
}

@keyframes mvt-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes mvt-woman-raise {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-2deg); }
  50% { transform: translateY(-6px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mvt-man-turn {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(0.98); }
}
@keyframes mvt-vines-sway {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes mvt-sunburst-rotate {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}

/* duke-allows-justice */
.scn-duke-allows-justice {
  background: linear-gradient(180deg, #d8e0e8 0%, #b8c4d0 40%, #a0aeb8 100%),
              radial-gradient(ellipse at 50% 80%, #f0e8d0 0%, transparent 60%);
}
.scn-duke-allows-justice .backdrop {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8d0d8 0%, #a8b4c0 100%);
  border-bottom: 4px solid #8a96a0;
  animation: daj-backdrop 15s ease-in-out infinite alternate;
}
.scn-duke-allows-justice .throne {
  position: absolute; bottom: 20%; left: 50%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 10% 10% 4% 4%;
  transform: translateX(-50%);
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
}
.scn-duke-allows-justice .figure-duke {
  position: absolute; bottom: 22%; left: 50%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: translateX(-50%);
  animation: daj-duke-sit 12s ease-in-out infinite alternate;
}
.scn-duke-allows-justice .figure-scribe {
  position: absolute; bottom: 15%; left: 35%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: daj-scribe-bow 6s ease-in-out infinite alternate;
}
.scn-duke-allows-justice .scales {
  position: absolute; bottom: 50%; left: 45%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #c8b080 0%, #a08a60 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 8px rgba(0,0,0,.3);
  animation: daj-scales-balance 8s ease-in-out infinite alternate;
}
.scn-duke-allows-justice .glow {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, #fff8e0 0%, #f0e0b0 40%, transparent 70%);
  animation: daj-glow-pulse 10s ease-in-out infinite alternate;
}
.scn-duke-allows-justice .pattern {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: repeating-linear-gradient(45deg, #a0aeb8 0px, #a0aeb8 2px, #b8c4d0 2px, #b8c4d0 4px);
  opacity: 0.3;
}

@keyframes daj-backdrop { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes daj-duke-sit { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes daj-scribe-bow {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes daj-scales-balance {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(3deg); }
}
@keyframes daj-glow-pulse {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .7; transform: scale(1); }
}

/* lucio-says-another-friar */
.scn-lucio-says-another-friar {
  background: linear-gradient(180deg, #f8e8a0 0%, #f0d080 40%, #e0b860 100%),
              radial-gradient(ellipse at 80% 20%, #fff8c0 0%, transparent 60%);
}
.scn-lucio-says-another-friar .sky-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f8f0c0 0%, #f0e0a0 100%);
  animation: lsf-sky 8s ease-in-out infinite alternate;
}
.scn-lucio-says-another-friar .door {
  position: absolute; bottom: 15%; left: 10%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.4);
  animation: lsf-door-swing 4s ease-in-out infinite alternate;
}
.scn-lucio-says-another-friar .figure-run {
  position: absolute; bottom: 20%; left: 25%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #d04040 0%, #a03030 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lsf-run 1.6s ease-in-out infinite;
}
.scn-lucio-says-another-friar .figure-point {
  position: absolute; bottom: 20%; left: 55%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #3a8a3a 0%, #2a6a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lsf-point 2.4s ease-in-out infinite alternate;
}
.scn-lucio-says-another-friar .hat {
  position: absolute; top: 15%; left: 50%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 0 0;
  animation: lsf-hat-fly 3s ease-in-out infinite;
}
.scn-lucio-says-another-friar .comic-strip {
  position: absolute; top: 10%; left: 5%; width: 40%; height: 8%;
  background: linear-gradient(90deg, #ff4060 0%, #ff4060 15%, transparent 15%);
  background-size: 200% 100%;
  animation: lsf-strip 2s steps(4) infinite;
}
@keyframes lsf-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lsf-door-swing { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } 100% { transform: scaleX(1) } }
@keyframes lsf-run {
  0% { transform: translateY(0) rotate(-5deg) scale(1); }
  25% { transform: translateY(-6px) rotate(0deg) scale(1.05); }
  50% { transform: translateY(0) rotate(5deg) scale(1); }
  75% { transform: translateY(-4px) rotate(0deg) scale(1.03); }
  100% { transform: translateY(0) rotate(-3deg) scale(1); }
}
@keyframes lsf-point {
  0% { transform: rotate(-10deg) translateY(-2px); }
  50% { transform: rotate(5deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(1px); }
}
@keyframes lsf-hat-fly {
  0% { transform: translateX(0) rotate(0deg); top: 15%; }
  25% { transform: translateX(20px) rotate(-10deg); top: 10%; }
  50% { transform: translateX(40px) rotate(0deg); top: 15%; }
  75% { transform: translateX(20px) rotate(10deg); top: 8%; }
  100% { transform: translateX(0) rotate(0deg); top: 15%; }
}
@keyframes lsf-strip {
  0% { background-position: 0% 0; }
  100% { background-position: 100% 0; }
}

.scn-duke-justifies-hiding {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2a1a0a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, #0a0500 70%);
}
.scn-duke-justifies-hiding .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0500 0%, transparent 30%, #0a0500 70%);
  animation: dj-shadow 8s ease-in-out infinite alternate;
}
.scn-duke-justifies-hiding .wall {
  position: absolute; inset: 10% 5% 20% 5%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-duke-justifies-hiding .figure-father {
  position: absolute; bottom: 25%; left: 30%;
  width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dj-father 4s ease-in-out infinite;
}
.scn-duke-justifies-hiding .rod {
  position: absolute; bottom: 55%; left: 34%;
  width: 8px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: dj-rod 4s ease-in-out infinite;
}
.scn-duke-justifies-hiding .child-figure {
  position: absolute; bottom: 25%; left: 55%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dj-child 5s ease-in-out infinite;
}
.scn-duke-justifies-hiding .candle {
  position: absolute; bottom: 40%; left: 15%;
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #b08040 0%, #6a4a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3);
  animation: dj-candle 3s ease-in-out infinite alternate;
}
.scn-duke-justifies-hiding .light-pool {
  position: absolute; bottom: 10%; left: 40%;
  width: 120px; height: 60px;
  background: radial-gradient(ellipse, rgba(192,128,64,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: dj-pool 5s ease-in-out infinite alternate;
}

@keyframes dj-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes dj-father { 0%,100% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-2px) rotate(1deg) scale(1.01); } 50% { transform: translateY(0) rotate(-1deg) scale(1); } 75% { transform: translateY(-1px) rotate(2deg) scale(1.01); } }
@keyframes dj-rod { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-25deg); } }
@keyframes dj-child { 0%,100% { transform: translateX(0) scale(1); } 25% { transform: translateX(-3px) scale(0.98); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(2px) scale(0.99); } }
@keyframes dj-candle { 0% { box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,0.3); opacity: 0.9; } 50% { box-shadow: 0 0 26px 8px #ffd060, 0 0 50px 15px rgba(255,208,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #c08040, 0 0 36px 10px rgba(192,128,64,0.35); opacity: 0.85; } }
@keyframes dj-pool { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.35; transform: scale(0.95); } }

.scn-duke-fears-tyranny {
  background:
    linear-gradient(180deg, #1a0a10 0%, #2a1018 50%, #14050a 100%),
    radial-gradient(ellipse at 50% 30%, #3a1520 0%, #0a0205 70%);
}
.scn-duke-fears-tyranny .bg-throne {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0205 0%, #1a0a10 50%, #0a0205 100%);
  animation: df-bg 10s ease-in-out infinite alternate;
}
.scn-duke-fears-tyranny .throne {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 140px;
  background: linear-gradient(180deg, #2a1018 0%, #1a0a10 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 5% 5%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.8);
}
.scn-duke-fears-tyranny .duke {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #0a050a 0%, #050205 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-duke 6s ease-in-out infinite;
}
.scn-duke-fears-tyranny .chains {
  position: absolute; bottom: 15%; left: 35%;
  width: 60px; height: 8px;
  background: repeating-linear-gradient(90deg, #5a3a3a 0px, #5a3a3a 6px, transparent 6px, transparent 10px);
  border-radius: 4px;
  transform: rotate(-10deg);
  animation: df-chains 4s ease-in-out infinite;
}
.scn-duke-fears-tyranny .shadow-hand {
  position: absolute; bottom: 45%; left: 60%;
  width: 70px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #1a0a10 0%, transparent 70%);
  filter: blur(4px);
  animation: df-hand 8s ease-in-out infinite alternate;
}
.scn-duke-fears-tyranny .light-shaft {
  position: absolute; top: 0; left: 30%;
  width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(180,200,220,0.08) 0%, rgba(180,200,220,0.03) 100%);
  filter: blur(6px);
  animation: df-shaft 12s ease-in-out infinite alternate;
}

@keyframes df-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes df-duke { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 20% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 40% { transform: translateX(-50%) translateY(0) rotate(1deg); } 60% { transform: translateX(-50%) translateY(-1px) rotate(-0.5deg); } 80% { transform: translateX(-50%) translateY(0) rotate(0.5deg); } }
@keyframes df-chains { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } }
@keyframes df-hand { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(10px) scale(1.1); opacity: 0.6; } 100% { transform: translateX(-5px) scale(1); opacity: 0.4; } }
@keyframes df-shaft { 0% { opacity: 0.1; transform: skewX(-2deg); } 50% { opacity: 0.2; transform: skewX(2deg); } 100% { opacity: 0.08; transform: skewX(-1deg); } }

.scn-duke-see-seemers {
  background:
    linear-gradient(180deg, #2a221a 0%, #3a3025 40%, #2a2018 100%),
    radial-gradient(ellipse at 50% 80%, #3a3025 0%, #1a1410 70%);
}
.scn-duke-see-seemers .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1410 0%, #2a221a 50%, #1a1410 100%);
  animation: ds-bg 9s ease-in-out infinite alternate;
}
.scn-duke-see-seemers .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 20px;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2e1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-duke-see-seemers .bread {
  position: absolute; bottom: 30%; left: 40%;
  width: 30px; height: 20px;
  background: radial-gradient(circle, #8a6a30 0%, #5a4a20 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-duke-see-seemers .stone {
  position: absolute; bottom: 30%; left: 55%;
  width: 28px; height: 20px;
  background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 70%);
  border-radius: 40% 40% 30% 30%;
}
.scn-duke-see-seemers .figure-duke {
  position: absolute; bottom: 30%; left: 20%;
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-figure-left 5s ease-in-out infinite;
}
.scn-duke-see-seemers .figure-angelo {
  position: absolute; bottom: 30%; right: 20%;
  width: 45px; height: 95px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-figure-right 5.5s ease-in-out infinite;
}
.scn-duke-see-seemers .candle-soft {
  position: absolute; bottom: 40%; left: 48%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #c09050 0%, #7a5a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 6px rgba(192,144,80,0.3);
  animation: ds-candle 4s ease-in-out infinite alternate;
}

@keyframes ds-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ds-figure-left { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-0.5deg); } }
@keyframes ds-figure-right { 0%,100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(2deg); } 40% { transform: translateY(0) rotate(-1deg); } 60% { transform: translateY(-1px) rotate(1.5deg); } 80% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes ds-candle { 0% { box-shadow: 0 0 12px 4px rgba(192,144,80,0.2); opacity: 0.85; } 50% { box-shadow: 0 0 24px 8px rgba(255,200,100,0.4); opacity: 1; } 100% { box-shadow: 0 0 14px 5px rgba(192,144,80,0.25); opacity: 0.9; } }

.scn-nunnery-conversation {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #e0d4b8 40%, #d0c4a8 100%),
    radial-gradient(ellipse at 50% 100%, #e0d4b8 0%, #b8a890 70%);
}
.scn-nunnery-conversation .bg-bright {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #faf4e0 0%, #e0d4b8 60%, #d0c0a0 100%);
  animation: nc-bg 12s ease-in-out infinite alternate;
}
.scn-nunnery-conversation .window-arch {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 180px;
  background: linear-gradient(180deg, #e0d8c0 0%, #d0c4a8 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 10% 10%;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.2);
}
.scn-nunnery-conversation .window-arch::before {
  content: ''; position: absolute; top: 5%; left: 10%; width: 80%; height: 85%;
  background: linear-gradient(180deg, #b0c8e0 0%, #90a8c0 100%);
  border-radius: 50% 50% 5% 5% / 70% 70% 5% 5%;
  opacity: 0.6;
}
.scn-nunnery-conversation .sunlight-ray {
  position: absolute; top: 5%; left: 30%;
  width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,220,0.15) 0%, rgba(255,255,220,0.05) 100%);
  filter: blur(10px);
  transform: skewX(-10deg);
  animation: nc-ray 15s ease-in-out infinite alternate;
}
.scn-nunnery-conversation .figure-isabella {
  position: absolute; bottom: 25%; left: 30%;
  width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nc-isabella 6s ease-in-out infinite;
}
.scn-nunnery-conversation .figure-isabella::before {
  content: ''; position: absolute; top: -10%; left: -20%;
  width: 70px; height: 30px;
  background: radial-gradient(ellipse, #3a3a3a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  opacity: 0.4;
}
.scn-nunnery-conversation .figure-francisca {
  position: absolute; bottom: 25%; right: 30%;
  width: 45px; height: 105px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nc-francisca 6.5s ease-in-out infinite;
}
.scn-nunnery-conversation .cross-stand {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 80px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
}
.scn-nunnery-conversation .cross-stand::before {
  content: ''; position: absolute; top: 20%; left: -15px;
  width: 36px; height: 6px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
}
.scn-nunnery-conversation .cross-stand::after {
  content: ''; position: absolute; top: 40%; left: -2px;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #d0b080 0%, #8a6a40 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(208,176,128,0.3);
  animation: nc-cross-glow 4s ease-in-out infinite alternate;
}
.scn-nunnery-conversation .prayer-beads {
  position: absolute; bottom: 30%; right: 42%;
  width: 30px; height: 30px;
  background: radial-gradient(circle at 30% 40%, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: nc-beads 5s ease-in-out infinite;
}
.scn-nunnery-conversation .prayer-beads::after {
  content: ''; position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 4px; height: 20px;
  background: #5a4a2a;
  border-radius: 2px;
}

@keyframes nc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes nc-ray { 0% { transform: skewX(-10deg) translateX(0); opacity: 0.3; } 50% { transform: skewX(-8deg) translateX(10px); opacity: 0.5; } 100% { transform: skewX(-12deg) translateX(-5px); opacity: 0.4; } }
@keyframes nc-isabella { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-0.5deg); } }
@keyframes nc-francisca { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 90% { transform: translateY(-1px) rotate(1deg); } }
@keyframes nc-cross-glow { 0% { opacity: 0.5; box-shadow: 0 0 6px 2px rgba(208,176,128,0.2); } 50% { opacity: 1; box-shadow: 0 0 14px 5px rgba(208,176,128,0.5); } 100% { opacity: 0.6; box-shadow: 0 0 8px 3px rgba(208,176,128,0.3); } }
@keyframes nc-beads { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(3deg); } }

/* claudio-fate-revealed – dark mood, sunlit */
.scn-claudio-fate-revealed {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #c2a68a 30%, #4a3828 70%, #1e1a12 100%),
    radial-gradient(ellipse at 30% 20%, #ffdd99 0%, transparent 50%);
}
.scn-claudio-fate-revealed .outside-glare { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffe6b3 0%, #d4b78c 40%, transparent 100%); animation: cfr-glare 6s ease-in-out infinite alternate; }
.scn-claudio-fate-revealed .prison-wall { position:absolute; top:25%; left:10%; right:10%; bottom:10%; background: linear-gradient(135deg, #3a2a1a 0%, #2a1e12 50%, #1a120a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 0 2px #4a3a2a; }
.scn-claudio-fate-revealed .window-bars { position:absolute; top:20%; left:35%; right:35%; bottom:60%; background: repeating-linear-gradient(0deg, #2a1e12 0px 4px, transparent 4px 12px); border: 3px solid #4a3a2a; border-radius: 6px; animation: cfr-bars 12s ease-in-out infinite; }
.scn-claudio-fate-revealed .sunbeam { position:absolute; top:18%; left:38%; width:24%; height:60%; background: linear-gradient(180deg, rgba(255,230,179,0.6) 0%, rgba(255,200,130,0.1) 60%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: cfr-beam 4s ease-in-out infinite alternate; }
.scn-claudio-fate-revealed .figure-chains { position:absolute; bottom:22%; left:45%; width:28px; height:48px; background: linear-gradient(180deg, #1a1a22 0%, #0a0e12 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cfr-figure 5s ease-in-out infinite; }
.scn-claudio-fate-revealed .figure-chains::before { content:''; position:absolute; top:10%; left:-8px; width:6px; height:20px; background: #4a3a2a; border-radius: 3px; box-shadow: 8px 0 0 #4a3a2a; }
.scn-claudio-fate-revealed .floor-shadow { position:absolute; bottom:10%; left:20%; right:20%; height:12%; background: radial-gradient(ellipse at 50% 50%, #1a1a12 0%, transparent 70%); animation: cfr-shadow 8s ease-in-out infinite alternate; }
.scn-claudio-fate-revealed .dust-motes { position:absolute; top:15%; left:35%; width:8px; height:8px; background: radial-gradient(circle, #ffdd99 0%, transparent 100%); border-radius:50%; filter: blur(1px); animation: cfr-dust 15s linear infinite; }
.scn-claudio-fate-revealed .dust-motes + .dust-motes { left:50%; animation-delay: -5s; width:5px; height:5px; }
@keyframes cfr-glare { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cfr-bars { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-0.5deg); } 75% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }
@keyframes cfr-beam { 0% { opacity:0.5; transform: scaleX(0.95); } 50% { opacity:1; transform: scaleX(1.05); } 100% { opacity:0.6; transform: scaleX(1); } }
@keyframes cfr-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes cfr-shadow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes cfr-dust { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-30px) scale(1.2); opacity:0.3; } 100% { transform: translateY(-60px) scale(0.8); opacity:0; } }

/* proclamation-mourned – dark mood, sunlit */
.scn-proclamation-mourned {
  background:
    linear-gradient(180deg, #fae0b0 0%, #d4a870 40%, #5a4a30 70%, #2a2218 100%),
    radial-gradient(ellipse at 60% 30%, #ffdd77 0%, transparent 60%);
}
.scn-proclamation-mourned .sky-arch { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffeabe 0%, #ecc48a 50%, transparent 100%); animation: pm-sky 8s ease-in-out infinite alternate; }
.scn-proclamation-mourned .sun-disk { position:absolute; top:8%; left:15%; width:40px; height:40px; background: radial-gradient(circle, #ffdd77 0%, #ffaa44 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 50px rgba(255,170,68,0.7); animation: pm-sun 12s ease-in-out infinite; }
.scn-proclamation-mourned .herald-rostrum { position:absolute; bottom:28%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%); border-radius: 8px 8px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-proclamation-mourned .herald-figure { position:absolute; bottom:36%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #2a1a10 0%, #120a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-herald 3s ease-in-out infinite; }
.scn-proclamation-mourned .herald-figure::before { content:''; position:absolute; top:5%; left:8px; width:14px; height:18px; background: #5a3a22; border-radius: 50% 50% 0 0; }
.scn-proclamation-mourned .crowd-shadow { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, rgba(30,22,14,0.8) 0%, rgba(10,8,6,0.9) 100%); border-radius: 40% 40% 0 0; animation: pm-crowd 6s ease-in-out infinite alternate; }
.scn-proclamation-mourned .gallows-post { position:absolute; bottom:22%; right:20%; width:6px; height:50px; background: #2a1a10; border-radius: 2px; box-shadow: 0 0 8px rgba(0,0,0,0.5); transform-origin: bottom center; animation: pm-gallows 10s ease-in-out infinite; }
.scn-proclamation-mourned .gallows-post::after { content:''; position:absolute; top:-6px; left:-12px; width:30px; height:6px; background: #2a1a10; border-radius: 2px; }
.scn-proclamation-mourned .parchment-scroll { position:absolute; bottom:40%; left:38%; width:24%; height:12%; background: linear-gradient(180deg, #e0c08a 0%, #b8905a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: pm-scroll 4s ease-in-out infinite; }
.scn-proclamation-mourned .ground-plane { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 30% 70% 0 0; }
@keyframes pm-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pm-sun { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 40px rgba(255,170,68,0.5); } 30% { transform: translateX(10px) scale(1.05); box-shadow: 0 0 60px rgba(255,170,68,0.8); } 60% { transform: translateX(-5px) scale(0.95); box-shadow: 0 0 30px rgba(255,170,68,0.3); } 100% { transform: translateX(0) scale(1); box-shadow: 0 0 40px rgba(255,170,68,0.6); } }
@keyframes pm-herald { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pm-crowd { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.03) translateY(-2px); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes pm-gallows { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg) scaleY(1.02); } 100% { transform: rotate(0deg); } }
@keyframes pm-scroll { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(2deg) scale(1.05); } 100% { transform: rotate(6deg) scale(0.98); } }

/* pompey-news – funny mood, sunlit */
.scn-pompey-news {
  background:
    linear-gradient(180deg, #b8e0f5 0%, #f0d890 40%, #e8c47a 70%, #c8a05a 100%),
    radial-gradient(ellipse at 30% 20%, #ffee88 0%, transparent 60%);
}
.scn-pompey-news .river-water { position:absolute; bottom:10%; left:0; right:0; height:45%; background: linear-gradient(180deg, #5ab8d4 0%, #2888a0 60%, #1a5a70 100%); border-radius: 60% 40% 0 0; animation: pn-water 5s ease-in-out infinite alternate; }
.scn-pompey-news .riverbank { position:absolute; bottom:50%; left:5%; right:5%; height:12%; background: linear-gradient(180deg, #a08050 0%, #7a5a30 100%); border-radius: 40% 60% 60% 40%; }
.scn-pompey-news .fisherman { position:absolute; bottom:52%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pn-fisher 3s ease-in-out infinite; }
.scn-pompey-news .fisherman::after { content:''; position:absolute; top:5%; left:12px; width:12px; height:8px; background: #6a8a7a; border-radius: 50%; }
.scn-pompey-news .fish-jump { position:absolute; bottom:40%; left:55%; width:16px; height:8px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 50% 50% 0 0; animation: pn-fish 2s ease-in-out infinite; }
.scn-pompey-news .fish-jump::before { content:''; position:absolute; top:-4px; left:4px; width:6px; height:6px; background: #e0c080; border-radius: 50%; }
.scn-pompey-news .woman-pregnant { position:absolute; bottom:50%; left:60%; width:30px; height:52px; background: linear-gradient(180deg, #d0a878 0%, #b88858 100%); border-radius: 50% 50% 60% 60% / 50% 50% 60% 60%; animation: pn-woman 4s ease-in-out infinite; }
.scn-pompey-news .woman-pregnant::before { content:''; position:absolute; top:10%; left:5px; width:20px; height:18px; background: #e8c8a0; border-radius: 50%; }
.scn-pompey-news .tree-crown { position:absolute; top:10%; left:65%; width:40px; height:40px; background: radial-gradient(circle at 40% 40%, #6aaa4a 0%, #3a7a2a 60%, #1a4a1a 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: pn-tree 8s ease-in-out infinite; }
.scn-pompey-news .cloud-puff { position:absolute; top:6%; left:10%; width:50px; height:20px; background: linear-gradient(180deg, rgba(255,255,240,0.7) 0%, rgba(240,240,220,0.3) 100%); border-radius: 50%; filter: blur(3px); animation: pn-cloud 20s linear infinite; }
.scn-pompey-news .sun-sparkles { position:absolute; top:12%; left:70%; width:10px; height:10px; background: radial-gradient(circle, #ffee88 0%, transparent 100%); border-radius:50%; animation: pn-sparkle 3s ease-in-out infinite alternate; }
.scn-pompey-news .sun-sparkles + .sun-sparkles { left:80%; animation-delay: -1s; width:7px; height:7px; }
@keyframes pn-water { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(0.98); } }
@keyframes pn-fisher { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pn-fish { 0% { transform: translateY(0) scale(1); opacity:0.8; } 25% { transform: translateY(-15px) scale(1.1) rotate(20deg); opacity:1; } 50% { transform: translateY(-30px) scale(0.9) rotate(-10deg); opacity:0.6; } 75% { transform: translateY(-15px) scale(1.05) rotate(10deg); opacity:1; } 100% { transform: translateY(0) scale(1) rotate(0deg); opacity:0.8; } }
@keyframes pn-woman { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes pn-tree { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes pn-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(80vw); } }
@keyframes pn-sparkle { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(1); } }

/* mistress-overdone-despair – tense mood, sunlit */
.scn-mistress-overdone-despair {
  background:
    linear-gradient(180deg, #f0d4a0 0%, #c8945a 40%, #6a4a2a 70%, #2a1a0e 100%),
    radial-gradient(ellipse at 40% 20%, #ffe088 0%, transparent 55%);
}
.scn-mistress-overdone-despair .sky-dusty { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f8d8a0 0%, #d0a870 50%, transparent 100%); animation: mod-sky 6s ease-in-out infinite alternate; }
.scn-mistress-overdone-despair .house-wrecked { position:absolute; bottom:28%; left:15%; right:50%; height:40%; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a22 50%, #3a2212 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 6px 14px rgba(0,0,0,0.5); animation: mod-house 4s ease-in-out infinite; }
.scn-mistress-overdone-despair .house-wrecked::after { content:''; position:absolute; top:20%; left:30%; right:10%; bottom:10%; background: linear-gradient(135deg, #5a3a22 0%, #3a2212 100%); border-radius: 4px; }
.scn-mistress-overdone-despair .falling-brick { position:absolute; bottom:55%; left:30%; width:12px; height:6px; background: #a06030; border-radius: 2px; animation: mod-brick 1.5s ease-in-out infinite; }
.scn-mistress-overdone-despair .falling-brick + .falling-brick { left:45%; animation-delay: -0.5s; width:10px; height:8px; }
.scn-mistress-overdone-despair .mistress-figure { position:absolute; bottom:20%; left:35%; width:32px; height:60px; background: linear-gradient(180deg, #d0a080 0%, #b08060 50%, #8a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mod-figure 3s ease-in-out infinite; }
.scn-mistress-overdone-despair .mistress-figure::before { content:''; position:absolute; top:12%; left:2px; right:2px; height:20px; background: #e8c8a0; border-radius: 50% 50% 0 0; }
.scn-mistress-overdone-despair .arms-reaching { position:absolute; bottom:50%; left:33%; width:50px; height:12px; background: linear-gradient(180deg, #c09878 0%, #a07858 100%); border-radius: 20px; transform-origin: right center; animation: mod-arms 2s ease-in-out infinite alternate; }
.scn-mistress-overdone-despair .debris-pile { position:absolute; bottom:8%; left:10%; right:60%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 30% 40% 0 0; animation: mod-debris 5s ease-in-out infinite; }
.scn-mistress-overdone-despair .cart-wood { position:absolute; bottom:5%; left:55%; width:40px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; transform: rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: mod-cart 8s ease-in-out infinite; }
.scn-mistress-overdone-despair .cart-wood::before { content:''; position:absolute; top:-10px; left:5px; width:8px; height:10px; background: #4a2a1a; border-radius: 2px; }
.scn-mistress-overdone-despair .sun-ray { position:absolute; top:5%; left:20%; width:20%; height:70%; background: linear-gradient(180deg, rgba(255,220,140,0.4) 0%, transparent 80%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: mod-ray 4s ease-in-out infinite alternate; }
@keyframes mod-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mod-house { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(1px) rotate(0.5deg); } 50% { transform: translateY(-1px) rotate(-0.5deg); } 75% { transform: translateY(0) rotate(0.2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mod-brick { 0% { transform: translateY(-30px) rotate(0deg); opacity:0; } 10% { opacity:1; } 50% { transform: translateY(30px) rotate(180deg); } 100% { transform: translateY(80px) rotate(360deg); opacity:0; } }
@keyframes mod-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mod-arms { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(15deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mod-debris { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes mod-cart { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(12deg) translateX(-1px); } }
@keyframes mod-ray { 0% { opacity:0.3; transform: scaleX(0.9); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(1); } }

.scn-elbow-brings-prisoners { background: 
  linear-gradient(180deg, #f5e6c8 0%, #d4a76a 60%, #b8854a 100%),
  radial-gradient(ellipse at 50% 30%, #f0dbb0 0%, #c4955a 80%);
}
.scn-elbow-brings-prisoners .bg-wall { position:absolute; top:0; left:0; right:0; bottom:35%; background: linear-gradient(180deg, #e8d5b0 0%, #d4b896 100%); border-bottom:4px solid #8b6b41; }
.scn-elbow-brings-prisoners .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a0764a 0%, #7a5a34 100%); }
.scn-elbow-brings-prisoners .figure-elbow { position:absolute; bottom:20%; left:12%; width:42px; height:76px; background: linear-gradient(180deg, #3a2a15 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:eb-elbow 3.5s ease-in-out infinite; box-shadow:-4px 0 8px rgba(0,0,0,.2); }
.scn-elbow-brings-prisoners .figure-froth { position:absolute; bottom:20%; left:36%; width:32px; height:58px; background: linear-gradient(180deg, #5a4530 0%, #3a2510 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:eb-prisoner 5s ease-in-out infinite; }
.scn-elbow-brings-prisoners .figure-pompey { position:absolute; bottom:20%; left:56%; width:32px; height:58px; background: linear-gradient(180deg, #5a4530 0%, #3a2510 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:eb-prisoner 5s ease-in-out infinite -2.5s; }
.scn-elbow-brings-prisoners .rope { position:absolute; bottom:34%; left:20%; width:45%; height:3px; background:#8b6b41; border-radius:2px; animation:eb-rope 6s ease-in-out infinite; }
.scn-elbow-brings-prisoners .staff { position:absolute; bottom:25%; left:17%; width:4px; height:44px; background: linear-gradient(180deg, #6b4a2a 0%, #4a3018 100%); border-radius:2px; transform:rotate(8deg); animation:eb-staff 4s ease-in-out infinite; }
.scn-elbow-brings-prisoners .desk { position:absolute; bottom:25%; left:72%; width:70px; height:26px; background: linear-gradient(180deg, #6b4a2a 0%, #4a3018 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.3); animation:eb-desk 7s ease-in-out infinite; }
@keyframes eb-elbow { 0% { transform:translateX(0) rotate(-3deg) scaleY(1); } 35% { transform:translateX(4px) rotate(2deg) scaleY(1.02); } 70% { transform:translateX(-2px) rotate(-1deg) scaleY(0.98); } 100% { transform:translateX(0) rotate(-3deg) scaleY(1); } }
@keyframes eb-prisoner { 0% { transform:translateY(0) rotate(0deg); } 40% { transform:translateY(-5px) rotate(2deg); } 70% { transform:translateY(-2px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes eb-rope { 0% { opacity:1; transform:scaleX(1); } 35% { opacity:0.5; transform:scaleX(0.92); } 70% { opacity:0.8; transform:scaleX(1.05); } 100% { opacity:1; transform:scaleX(1); } }
@keyframes eb-staff { 0% { transform:rotate(6deg) scaleY(1); } 50% { transform:rotate(10deg) scaleY(1.03); } 100% { transform:rotate(6deg) scaleY(1); } }
@keyframes eb-desk { 0% { transform:translateY(0); } 30% { transform:translateY(-3px); } 70% { transform:translateY(-1px); } 100% { transform:translateY(0); } }

.scn-pompey-tapster-testimony { background:
  linear-gradient(180deg, #f0e0c0 0%, #d4a76a 50%, #c08a4a 100%),
  radial-gradient(ellipse at 30% 40%, #f5e8c8 0%, #c4955a 80%);
}
.scn-pompey-tapster-testimony .bg-wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #e0c8a0 0%, #ccb28a 100%); border-bottom:3px solid #7a5a34; }
.scn-pompey-tapster-testimony .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a0784a 0%, #6a4a28 100%); }
.scn-pompey-tapster-testimony .figure-elbow { position:absolute; bottom:20%; left:12%; width:40px; height:72px; background: linear-gradient(180deg, #3a2a15 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pt-elbow 4s ease-in-out infinite; }
.scn-pompey-tapster-testimony .figure-pompey { position:absolute; bottom:18%; left:50%; width:38px; height:66px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pt-pompey 5s ease-in-out infinite; }
.scn-pompey-tapster-testimony .tankard { position:absolute; bottom:35%; left:52%; width:16px; height:20px; background: linear-gradient(180deg, #8b6b41 0%, #6b4a2a 100%); border-radius:4px 4px 8px 8px; transform-origin:bottom center; animation:pt-tankard 3.5s ease-in-out infinite; }
.scn-pompey-tapster-testimony .table { position:absolute; bottom:28%; left:32%; width:50%; height:18px; background: linear-gradient(180deg, #7a5a34 0%, #5a3a1a 100%); border-radius:4px; box-shadow:0 6px 14px rgba(0,0,0,.3); animation:pt-table 6s ease-in-out infinite; }
.scn-pompey-tapster-testimony .foam { position:absolute; bottom:53%; left:52.5%; width:12px; height:8px; background:#f0e8d0; border-radius:50%; filter:blur(2px); opacity:0.7; animation:pt-foam 2s ease-in-out infinite alternate; }
@keyframes pt-elbow { 0% { transform:translateX(0) rotate(-2deg); } 40% { transform:translateX(6px) rotate(3deg); } 80% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes pt-pompey { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-4px) rotate(2deg); } 60% { transform:translateY(-1px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes pt-tankard { 0% { transform:rotate(-4deg) scaleY(1); } 50% { transform:rotate(4deg) scaleY(1.05); } 100% { transform:rotate(-4deg) scaleY(1); } }
@keyframes pt-table { 0% { transform:translateY(0); } 45% { transform:translateY(-3px); } 90% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes pt-foam { 0% { transform:scale(1); opacity:0.5; } 100% { transform:scale(1.4); opacity:0.8; } }

.scn-elbow-wife-dish-story { background:
  linear-gradient(180deg, #f5e6c8 0%, #d4a76a 55%, #b8854a 100%),
  radial-gradient(ellipse at 60% 45%, #f0dbb0 0%, #c4955a 80%);
}
.scn-elbow-wife-dish-story .bg-wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #e8d5b0 0%, #d4b896 100%); border-bottom:3px solid #8b6b41; }
.scn-elbow-wife-dish-story .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a0764a 0%, #7a5a34 100%); }
.scn-elbow-wife-dish-story .figure-elbow { position:absolute; bottom:20%; left:10%; width:42px; height:74px; background: linear-gradient(180deg, #3a2a15 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ew-elbow 4.5s ease-in-out infinite; }
.scn-elbow-wife-dish-story .figure-wife { position:absolute; bottom:24%; right:15%; width:36px; height:60px; background: linear-gradient(180deg, #5a4530 0%, #3a2510 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ew-wife 5s ease-in-out infinite; opacity:0.8; }
.scn-elbow-wife-dish-story .dish { position:absolute; bottom:32%; left:42%; width:40px; height:14px; background: linear-gradient(180deg, #c8a878 0%, #a88858 100%); border-radius:50%; box-shadow:inset 0 -2px 4px rgba(0,0,0,.2), 0 4px 8px rgba(0,0,0,.2); animation:ew-dish 6s ease-in-out infinite; }
.scn-elbow-wife-dish-story .table { position:absolute; bottom:28%; left:28%; width:55%; height:20px; background: linear-gradient(180deg, #7a5a34 0%, #5a3a1a 100%); border-radius:4px; box-shadow:0 6px 14px rgba(0,0,0,.3); animation:ew-table 7s ease-in-out infinite; }
.scn-elbow-wife-dish-story .prunes-glow { position:absolute; bottom:34%; left:46%; width:8px; height:8px; background:#c8553d; border-radius:50%; box-shadow:0 0 12px 4px rgba(200,85,61,.4); animation:ew-glow 3s ease-in-out infinite alternate; }
@keyframes ew-elbow { 0% { transform:translateX(0) rotate(-3deg); } 35% { transform:translateX(8px) rotate(4deg); } 70% { transform:translateX(-3px) rotate(-2deg); } 100% { transform:translateX(0) rotate(-3deg); } }
@keyframes ew-wife { 0% { transform:translateY(0) rotate(0deg); } 40% { transform:translateY(-3px) rotate(2deg); } 80% { transform:translateY(-1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ew-dish { 0% { transform:translateY(0) scaleX(1); } 30% { transform:translateY(-4px) scaleX(1.05); } 70% { transform:translateY(-1px) scaleX(0.98); } 100% { transform:translateY(0) scaleX(1); } }
@keyframes ew-table { 0% { transform:translateY(0); } 40% { transform:translateY(-3px); } 80% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes ew-glow { 0% { box-shadow:0 0 8px 2px rgba(200,85,61,.3); opacity:0.7; } 100% { box-shadow:0 0 20px 8px rgba(200,85,61,.6); opacity:1; } }

.scn-prunes-dish-testimony { background:
  linear-gradient(180deg, #f0dbb0 0%, #d4a76a 50%, #c08a4a 100%),
  radial-gradient(ellipse at 40% 35%, #f5e8c8 0%, #b8854a 80%);
}
.scn-prunes-dish-testimony .bg-wall { position:absolute; top:0; left:0; right:0; bottom:32%; background: linear-gradient(180deg, #e0c8a0 0%, #ccb28a 100%); border-bottom:4px solid #8b6b41; }
.scn-prunes-dish-testimony .bg-floor { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #a0784a 0%, #6a4a28 100%); }
.scn-prunes-dish-testimony .figure-mistress { position:absolute; bottom:22%; left:18%; width:44px; height:64px; background: linear-gradient(180deg, #5a4530 0%, #3a2510 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pd-mistress 4s ease-in-out infinite; }
.scn-prunes-dish-testimony .figure-elbow { position:absolute; bottom:18%; left:58%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a15 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pd-elbow 4.5s ease-in-out infinite; }
.scn-prunes-dish-testimony .dish { position:absolute; bottom:30%; left:35%; width:50px; height:16px; background: linear-gradient(180deg, #c8a878 0%, #a88858 100%); border-radius:50%; box-shadow:inset 0 -2px 4px rgba(0,0,0,.2), 0 4px 10px rgba(0,0,0,.25); animation:pd-dish 6s ease-in-out infinite; }
.scn-prunes-dish-testimony .prune-a { position:absolute; bottom:34%; left:37%; width:10px; height:10px; background: radial-gradient(circle at 35% 35%, #c8553d 0%, #a0461a 100%); border-radius:50%; animation:pd-prune 3s ease-in-out infinite; }
.scn-prunes-dish-testimony .prune-b { position:absolute; bottom:34%; left:42%; width:10px; height:10px; background: radial-gradient(circle at 35% 35%, #c8553d 0%, #a0461a 100%); border-radius:50%; animation:pd-prune 3s ease-in-out infinite -1.5s; }
.scn-prunes-dish-testimony .table { position:absolute; bottom:26%; left:22%; width:60%; height:18px; background: linear-gradient(180deg, #7a5a34 0%, #5a3a1a 100%); border-radius:4px; box-shadow:0 6px 14px rgba(0,0,0,.3); animation:pd-table 7s ease-in-out infinite; }
@keyframes pd-mistress { 0% { transform:translateY(0) rotate(0deg); } 35% { transform:translateY(-6px) rotate(3deg); } 70% { transform:translateY(-2px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes pd-elbow { 0% { transform:translateX(0) rotate(-2deg); } 40% { transform:translateX(5px) rotate(3deg); } 80% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes pd-dish { 0% { transform:translateY(0) scaleX(1); } 35% { transform:translateY(-5px) scaleX(1.04); } 70% { transform:translateY(-1px) scaleX(0.98); } 100% { transform:translateY(0) scaleX(1); } }
@keyframes pd-prune { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-3px) scale(1.1); } 100% { transform:translateY(0) scale(1); } }
@keyframes pd-table { 0% { transform:translateY(0); } 45% { transform:translateY(-3px); } 90% { transform:translateY(-1px); } 100% { transform:translateY(0); } }

.scn-duke-privacy-leave { background: linear-gradient(180deg, #e8d4a0, #c9b880), radial-gradient(circle at 30% 60%, #fff8e0 0%, transparent 70%); }
.scn-duke-privacy-leave .dpl-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4bf90 0%, #b09a70 100%); }
.scn-duke-privacy-leave .dpl-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6e40 0%, #6a5230 100%); }
.scn-duke-privacy-leave .dpl-door { position:absolute; right:10%; bottom:30%; width:60px; height:100px; background: linear-gradient(180deg, #6a4a2a, #3a2815); border-radius:4px 4px 0 0; box-shadow:inset 0 2px 6px rgba(0,0,0,.3); animation: dpl-door 8s ease-in-out infinite alternate; }
.scn-duke-privacy-leave .dpl-figure { position:absolute; bottom:30%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #2a2a4a, #1a1a3a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: dpl-figure 6s ease-in-out infinite; }
.scn-duke-privacy-leave .dpl-hand { position:absolute; bottom:55%; left:35%; width:14px; height:20px; background: #3a2a4a; border-radius:30% 60% 30% 60%; transform-origin:left top; animation: dpl-hand 4s ease-in-out infinite; }
.scn-duke-privacy-leave .dpl-candle { position:absolute; bottom:35%; left:55%; width:6px; height:18px; background: linear-gradient(180deg, #f0e0c0, #c0a070); border-radius:2px; box-shadow:0 0 4px rgba(255,200,100,.6); }
.scn-duke-privacy-leave .dpl-glow { position:absolute; bottom:32%; left:55%; width:30px; height:30px; background: radial-gradient(circle, #ffd060 0%, transparent 70%); border-radius:50%; animation: dpl-glow 3s ease-in-out infinite alternate; }
@keyframes dpl-door { 0% { transform:rotateY(0deg) } 50% { transform:rotateY(5deg) } 100% { transform:rotateY(0deg) } }
@keyframes dpl-figure { 0%,100% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(2px) rotate(1deg) } 50% { transform:translateX(4px) rotate(-1deg) } 75% { transform:translateX(6px) rotate(1deg) } }
@keyframes dpl-hand { 0%,100% { transform:translate(0,0) rotate(0deg) } 50% { transform:translate(4px,-2px) rotate(15deg) } }
@keyframes dpl-glow { 0% { box-shadow:0 0 8px 2px #ffd060; opacity:.8 } 50% { box-shadow:0 0 20px 10px #ffd060; opacity:1 } 100% { box-shadow:0 0 12px 4px #ffd060; opacity:.85 } }

.scn-escales-withdraw { background: linear-gradient(90deg, #4a3a2a 0%, #a08060 50%, #4a3a2a 100%), radial-gradient(circle at 50% 40%, #fff8e0, transparent 80%); }
.scn-escales-withdraw .esw-corridor-l { position:absolute; left:0; top:0; bottom:25%; width:20%; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); box-shadow:inset 0 0 20px rgba(0,0,0,.5); }
.scn-escales-withdraw .esw-corridor-r { position:absolute; right:0; top:0; bottom:25%; width:20%; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); box-shadow:inset 0 0 20px rgba(0,0,0,.5); }
.scn-escales-withdraw .esw-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a5230, #4a3820); }
.scn-escales-withdraw .esw-figure1 { position:absolute; bottom:23%; left:35%; width:20px; height:60px; background: linear-gradient(180deg, #2a2a4a, #1a1a3a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: esw-walk 5s ease-in-out infinite; }
.scn-escales-withdraw .esw-figure2 { position:absolute; bottom:23%; left:48%; width:18px; height:55px; background: linear-gradient(180deg, #3a3a5a, #2a2a4a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: esw-walk 5s ease-in-out infinite 0.3s; }
.scn-escales-withdraw .esw-lamp { position:absolute; top:10%; left:42%; width:12px; height:20px; background: linear-gradient(180deg, #d0b080, #806040); border-radius:4px; box-shadow:0 0 20px 6px #ffd060; animation: esw-lamp 4s ease-in-out infinite alternate; }
.scn-escales-withdraw .esw-shadow { position:absolute; bottom:0; left:30%; right:30%; height:8px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(4px); animation: esw-shadow 5s ease-in-out infinite; }
@keyframes esw-walk { 0% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(3px) rotate(1deg) } 50% { transform:translateX(6px) rotate(-1deg) } 75% { transform:translateX(9px) rotate(1deg) } 100% { transform:translateX(12px) rotate(0) } }
@keyframes esw-lamp { 0% { box-shadow:0 0 15px 4px #ffd060; opacity:.9 } 50% { box-shadow:0 0 25px 10px #ffd060; opacity:1 } 100% { box-shadow:0 0 18px 6px #ffd060; opacity:.85 } }
@keyframes esw-shadow { 0%,100% { transform:scaleX(1) } 50% { transform:scaleX(0.8) } }

.scn-street-banter-opening { background: linear-gradient(180deg, #7ec8e3 0%, #f9e79f 50%, #f4d03f 100%), radial-gradient(circle at 70% 20%, #fffde0, transparent 60%); }
.scn-street-banter-opening .sbo-sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #85d0f0, #b8e0f0); }
.scn-street-banter-opening .sbo-building { position:absolute; bottom:25%; left:15%; width:40%; height:65%; background: linear-gradient(180deg, #d4a060, #b08040); border-radius:8% 8% 0 0; box-shadow:inset 0 -4px 8px rgba(0,0,0,.2); }
.scn-street-banter-opening .sbo-ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b89868, #907850); }
.scn-street-banter-opening .sbo-figure1 { position:absolute; bottom:23%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a4a, #1a1a3a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sbo-jig 3s ease-in-out infinite; }
.scn-street-banter-opening .sbo-figure2 { position:absolute; bottom:23%; left:45%; width:22px; height:58px; background: linear-gradient(180deg, #4a3a5a, #2a2a4a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sbo-jig 3.5s ease-in-out infinite 0.4s; }
.scn-street-banter-opening .sbo-sign { position:absolute; top:10%; left:50%; width:30px; height:20px; background: #b08040; border-radius:4px; box-shadow:inset 0 0 4px rgba(0,0,0,.3); transform-origin:top center; animation: sbo-sign 4s ease-in-out infinite; }
.scn-street-banter-opening .sbo-cloud { position:absolute; top:15%; left:70%; width:80px; height:20px; background: rgba(255,255,255,.7); border-radius:50%; filter:blur(6px); animation: sbo-cloud 30s linear infinite; }
@keyframes sbo-jig { 0%,100% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(4px) rotate(2deg) } 50% { transform:translateX(8px) rotate(-2deg) } 75% { transform:translateX(12px) rotate(2deg) } }
@keyframes sbo-sign { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-5deg) } }
@keyframes sbo-cloud { 0% { transform:translateX(-60px) } 100% { transform:translateX(120vw) } }

.scn-commandaments-banter { background: linear-gradient(180deg, #3498db 0%, #f7dc6f 100%), radial-gradient(circle at 30% 30%, #fff8d0, transparent 60%); }
.scn-commandaments-banter .cbb-sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #6db3e0, #a0d0f0); }
.scn-commandaments-banter .cbb-wall { position:absolute; bottom:20%; right:10%; width:35%; height:70%; background: linear-gradient(180deg, #8a7a6a, #5a4a3a); border-radius:8% 8% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,.4); }
.scn-commandaments-banter .cbb-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a6a5a, #4a3a2a); }
.scn-commandaments-banter .cbb-soldier1 { position:absolute; bottom:18%; left:20%; width:22px; height:65px; background: linear-gradient(180deg, #2a2a4a 0%, #4a3a4a 40%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cbb-march 4s ease-in-out infinite; }
.scn-commandaments-banter .cbb-soldier2 { position:absolute; bottom:18%; left:36%; width:20px; height:60px; background: linear-gradient(180deg, #3a3a5a 0%, #5a4a5a 40%, #6a5a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cbb-march 4.5s ease-in-out infinite 0.5s; }
.scn-commandaments-banter .cbb-banner { position:absolute; top:5%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #c8553d, #a0461a); border-radius:2px; transform-origin:top center; animation: cbb-flag 3s ease-in-out infinite; }
.scn-commandaments-banter .cbb-barrel { position:absolute; bottom:20%; left:55%; width:30px; height:40px; background: linear-gradient(90deg, #6a5230, #4a3820); border-radius:30% 30% 20% 20%; box-shadow:inset 0 0 8px rgba(0,0,0,.4); animation: cbb-barrel 6s linear infinite; }
@keyframes cbb-march { 0%,100% { transform:translateX(0) rotate(-1deg) scaleY(1) } 25% { transform:translateX(4px) rotate(1deg) scaleY(0.95) } 50% { transform:translateX(8px) rotate(-1deg) scaleY(1) } 75% { transform:translateX(12px) rotate(1deg) scaleY(0.95) } }
@keyframes cbb-flag { 0% { transform:rotate(-8deg) } 50% { transform:rotate(8deg) } 100% { transform:rotate(-8deg) } }
@keyframes cbb-barrel { 0% { transform:translateX(0) } 50% { transform:translateX(6px) } 100% { transform:translateX(0) } }

/* grace-debate – sunlit, funny debate interior */
.scn-grace-debate {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4a373 50%, #b5835a 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e7 0%, transparent 60%);
}
.scn-grace-debate .gd-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 60%, transparent 100%);
  animation: gd-sky 12s ease-in-out infinite alternate;
}
.scn-grace-debate .gd-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #f0d9b5 0%, #d4a373 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-grace-debate .gd-window {
  position: absolute; top: 12%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, #fffce8 0%, #e0f7ff 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 40px 10px rgba(255,240,200,0.6);
}
.scn-grace-debate .gd-figure-l {
  position: absolute; bottom: 18%; left: 22%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gd-figure-l 4s ease-in-out infinite;
}
.scn-grace-debate .gd-figure-r {
  position: absolute; bottom: 20%; right: 20%; width: 11%; height: 48%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gd-figure-r 3.5s ease-in-out infinite;
}
.scn-grace-debate .gd-table {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #8b6e4e 0%, #5a4030 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-grace-debate .gd-book {
  position: absolute; bottom: 22%; left: 45%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #b87333 0%, #8b5a2b 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: gd-book 6s ease-in-out infinite;
}
.scn-grace-debate .gd-dust1,
.scn-grace-debate .gd-dust2 {
  position: absolute; width: 2%; height: 2%;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: gd-dust 8s ease-in-out infinite;
}
.scn-grace-debate .gd-dust1 { top: 30%; left: 40%; animation-delay: 0s; }
.scn-grace-debate .gd-dust2 { top: 35%; left: 55%; animation-delay: 3s; }

@keyframes gd-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes gd-figure-l {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes gd-figure-r {
  0% { transform: translateY(0) rotate(3deg); }
  50% { transform: translateY(-3px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes gd-book {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(8px,-6px) rotate(12deg); }
  100% { transform: translate(0,0) rotate(-4deg); }
}
@keyframes gd-dust {
  0% { transform: translate(0,0) scale(1); opacity:0.5; }
  50% { transform: translate(15px,-12px) scale(1.3); opacity:1; }
  100% { transform: translate(30px,-24px) scale(0.7); opacity:0; }
}

/* velvet-list-insult – sunlit tailor shop, two figures + fabric */
.scn-velvet-list-insult {
  background: linear-gradient(180deg, #f5dcb5 0%, #d4a373 50%, #b5835a 100%),
              radial-gradient(ellipse at 60% 10%, #fff8e7 0%, transparent 50%);
}
.scn-velvet-list-insult .vl-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d5b5 0%, #c8a882 100%);
}
.scn-velvet-list-insult .vl-window {
  position: absolute; top: 15%; left: 60%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 30px 5px rgba(255,240,200,0.5);
}
.scn-velvet-list-insult .vl-figure-tall {
  position: absolute; bottom: 18%; left: 25%; width: 10%; 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: vl-tall 4.5s ease-in-out infinite;
}
.scn-velvet-list-insult .vl-figure-short {
  position: absolute; bottom: 20%; right: 25%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vl-short 3.8s ease-in-out infinite;
}
.scn-velvet-list-insult .vl-fabric {
  position: absolute; bottom: 35%; left: 35%; width: 25%; height: 20%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #8b3a12 100%);
  border-radius: 20% 40% 20% 40%;
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: vl-fabric 7s ease-in-out infinite alternate;
}
.scn-velvet-list-insult .vl-scissors {
  position: absolute; bottom: 30%; left: 55%; width: 6%; height: 10%;
  background: linear-gradient(90deg, #888 0%, #ddd 50%, #888 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: vl-scissors 2.5s ease-in-out infinite;
}
.scn-velvet-list-insult .vl-ruler {
  position: absolute; bottom: 45%; left: 15%; width: 12%; height: 2%;
  background: linear-gradient(90deg, #b08d57 0%, #d4b88a 100%);
  border-radius: 20%;
  transform: rotate(-20deg);
  animation: vl-ruler 5s ease-in-out infinite alternate;
}
@keyframes vl-tall {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes vl-short {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-5px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes vl-fabric {
  0% { transform: translateX(0) skewX(0deg); }
  50% { transform: translateX(6px) skewX(-5deg); }
  100% { transform: translateX(0) skewX(3deg); }
}
@keyframes vl-scissors {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(0.9); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes vl-ruler {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(5px); }
  100% { transform: rotate(-22deg) translateX(0); }
}

/* mistress-overdone-entrance – sunlit street, flamboyant figure entering */
.scn-mistress-overdone-entrance {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4a373 50%, #b5835a 100%),
              linear-gradient(100deg, #fff8e7 20%, transparent 50%);
}
.scn-mistress-overdone-entrance .mo-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 60%, transparent 100%);
  animation: mo-sky 14s ease-in-out infinite alternate;
}
.scn-mistress-overdone-entrance .mo-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(90deg, #d4a373 0%, #c8a882 50%, #b8906b 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-mistress-overdone-entrance .mo-door {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: mo-door 4s ease-in-out infinite alternate;
}
.scn-mistress-overdone-entrance .mo-figure {
  position: absolute; bottom: 12%; left: 35%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mo-figure 5s ease-in-out infinite;
}
.scn-mistress-overdone-entrance .mo-fan {
  position: absolute; bottom: 55%; left: 30%; width: 10%; height: 12%;
  background: radial-gradient(circle at 50% 0%, #e0b88a 0%, #c89060 100%);
  border-radius: 50% 0% 50% 0%;
  transform-origin: bottom center;
  animation: mo-fan 2s ease-in-out infinite alternate;
}
.scn-mistress-overdone-entrance .mo-lantern {
  position: absolute; top: 10%; left: 48%; width: 6%; height: 10%;
  background: radial-gradient(circle, #ffd680 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px #c08040, 0 0 48px 12px rgba(192,128,64,0.4);
  animation: mo-lantern 3s ease-in-out infinite alternate;
}
.scn-mistress-overdone-entrance .mo-step {
  position: absolute; bottom: 10%; left: 38%; width: 24%; height: 5%;
  background: linear-gradient(180deg, #8b6e4e 0%, #5a4030 100%);
  border-radius: 6%;
}
.scn-mistress-overdone-entrance .mo-dust {
  position: absolute; bottom: 20%; left: 45%; width: 3%; height: 3%;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: mo-dust 6s ease-in-out infinite;
}
@keyframes mo-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mo-door { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(15deg); } }
@keyframes mo-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(2deg); }
  60% { transform: translateX(15px) rotate(-1deg); }
  100% { transform: translateX(22px) rotate(0deg); }
}
@keyframes mo-fan {
  0% { transform: rotate(-20deg) scaleX(1); }
  100% { transform: rotate(20deg) scaleX(-1); }
}
@keyframes mo-lantern {
  0% { transform: rotate(-5deg); box-shadow: 0 0 18px 4px #b08040; }
  50% { transform: rotate(5deg); box-shadow: 0 0 30px 8px #ffd680; }
  100% { transform: rotate(-3deg); box-shadow: 0 0 20px 5px #b08040; }
}
@keyframes mo-dust {
  0% { transform: translate(0,0) scale(1); opacity:0.4; }
  50% { transform: translate(10px,-10px) scale(1.5); opacity:1; }
  100% { transform: translate(20px,-20px) scale(0.5); opacity:0; }
}

/* claudio-arrest-news – sunlit street, tense arrest scene */
.scn-claudio-arrest-news {
  background: linear-gradient(180deg, #e8d5b5 0%, #c8a882 50%, #b8906b 100%),
              radial-gradient(ellipse at 40% 30%, #fff8e7 0%, transparent 50%),
              radial-gradient(ellipse at 80% 70%, #5e1a1d 0%, transparent 30%);
}
.scn-claudio-arrest-news .ca-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 50%, rgba(255,240,200,0.4) 100%);
  animation: ca-sky 8s ease-in-out infinite alternate;
}
.scn-claudio-arrest-news .ca-gate {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-claudio-arrest-news .ca-guard {
  position: absolute; bottom: 15%; left: 20%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-guard 3s ease-in-out infinite;
}
.scn-claudio-arrest-news .ca-prisoner {
  position: absolute; bottom: 16%; left: 33%; width: 9%; height: 42%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-prisoner 2.8s ease-in-out infinite;
}
.scn-claudio-arrest-news .ca-mistress {
  position: absolute; bottom: 18%; right: 15%; width: 12%; height: 48%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ca-mistress 4s ease-in-out infinite;
}
.scn-claudio-arrest-news .ca-shadow1,
.scn-claudio-arrest-news .ca-shadow2 {
  position: absolute; bottom: 5%; height: 4%;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ca-shadow 3.5s ease-in-out infinite alternate;
}
.scn-claudio-arrest-news .ca-shadow1 { left: 18%; width: 14%; animation-delay: 0s; }
.scn-claudio-arrest-news .ca-shadow2 { left: 32%; width: 12%; animation-delay: 1.5s; }
@keyframes ca-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ca-guard {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ca-prisoner {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(-6px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes ca-mistress {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-4px) rotate(5deg); }
  70% { transform: translateY(2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ca-shadow {
  0% { opacity:0.2; transform: scaleX(1); }
  50% { opacity:0.5; transform: scaleX(1.2); }
  100% { opacity:0.3; transform: scaleX(1); }
}

/* duke-soliloquy-greatness - tense dusk */
.scn-duke-soliloquy-greatness {
  background: linear-gradient(180deg, #4a2a4a 0%, #d4836a 30%, #c86348 60%, #3a1a2a 100%),
              radial-gradient(ellipse at 30% 80%, #e8a070 0%, transparent 50%);
}
.scn-duke-soliloquy-greatness .sky-dusk {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a3a3a 0%, transparent 100%);
  animation: tgs-sky 14s ease-in-out infinite alternate;
}
.scn-duke-soliloquy-greatness .hills-dark {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: tgs-hills 10s ease-in-out infinite alternate;
}
.scn-duke-soliloquy-greatness .figure-body {
  position: absolute; bottom: 38%; left: 42%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: tgs-body 6s ease-in-out infinite alternate;
}
.scn-duke-soliloquy-greatness .figure-head {
  position: absolute; bottom: 67%; left: 43.5%; width: 14px; height: 16px;
  background: #1a1a1a;
  border-radius: 50%;
  transform-origin: center bottom;
  animation: tgs-head 6s ease-in-out infinite alternate;
}
.scn-duke-soliloquy-greatness .castle-silhouette {
  position: absolute; bottom: 40%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a0a0a 0%, #050505 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
  animation: tgs-castle 20s ease-in-out infinite;
}
.scn-duke-soliloquy-greatness .eye {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffdd88 0%, #bb8844 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #cc8844, 0 0 24px 8px rgba(204,136,68,0.4);
  animation: tgs-eye 2s ease-in-out infinite;
}
.scn-duke-soliloquy-greatness .eye-a { top: 8%; left: 15%; }
.scn-duke-soliloquy-greatness .eye-b { top: 12%; left: 70%; animation-delay: 0.5s; }
.scn-duke-soliloquy-greatness .eye-c { top: 20%; left: 40%; animation-delay: 1s; }
.scn-duke-soliloquy-greatness .eye-d { top: 4%; left: 55%; animation-delay: 1.5s; }

@keyframes tgs-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tgs-hills {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(1px) scale(0.99); }
}
@keyframes tgs-body {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes tgs-head {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes tgs-castle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes tgs-eye {
  0% { transform: scale(1); opacity: 0.8; }
  30% { transform: scale(0.3); opacity: 0.2; }
  50% { transform: scale(1); opacity: 1; }
  80% { transform: scale(0.8); opacity: 0.7; }
  100% { transform: scale(1); opacity: 0.8; }
}

/* mariana-consent-precontract - calm dark */
.scn-mariana-consent-precontract {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b2838 40%, #2c3e50 100%),
              radial-gradient(ellipse at 50% 20%, #3a5a7a 0%, transparent 60%);
}
.scn-mariana-consent-precontract .wall-night {
  position: absolute; inset: 20% 10% 10% 10%;
  background: linear-gradient(180deg, #1a2938 0%, #0d1620 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-mariana-consent-precontract .window-arch {
  position: absolute; top: 25%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a4a6a 0%, #1a3a5a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-mariana-consent-precontract .moonbeam {
  position: absolute; top: 20%; left: calc(50% - 15px); width: 30px; height: 60%;
  background: linear-gradient(180deg, rgba(180,210,240,0.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: mcp-beam 8s ease-in-out infinite alternate;
}
.scn-mariana-consent-precontract .figure-left {
  position: absolute; bottom: 15%; left: 30%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #0a121a 0%, #05080c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: mcp-fig-left 10s ease-in-out infinite alternate;
}
.scn-mariana-consent-precontract .figure-right {
  position: absolute; bottom: 15%; right: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #0a121a 0%, #05080c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: mcp-fig-right 10s ease-in-out infinite alternate;
}
.scn-mariana-consent-precontract .curtain {
  position: absolute; top: 20%; width: 30px; height: 80%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 0 20% 20% 0;
  filter: blur(2px);
}
.scn-mariana-consent-precontract .curtain-l {
  left: 15%;
  animation: mcp-curl 25s ease-in-out infinite alternate;
}
.scn-mariana-consent-precontract .curtain-r {
  right: 15%;
  animation: mcp-curr 25s ease-in-out infinite alternate;
}
.scn-mariana-consent-precontract .star {
  position: absolute; top: 10%; left: 70%; width: 4px; height: 4px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,220,255,0.5);
  animation: mcp-star 4s ease-in-out infinite alternate;
}
@keyframes mcp-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}
@keyframes mcp-fig-left {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg); }
}
@keyframes mcp-fig-right {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(1deg); }
}
@keyframes mcp-curl {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(-3px); }
}
@keyframes mcp-curr {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(3px); }
}
@keyframes mcp-star {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(0.9); }
}

/* prison-head-arrangement - tense dim interior */
.scn-prison-head-arrangement {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 30%, #0a0505 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-prison-head-arrangement .dungeon-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0808 0%, #1a0f0f 50%, #0e0808 100%);
  border-radius: 10% 10% 0 0;
}
.scn-prison-head-arrangement .floor-stones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-prison-head-arrangement .chopping-block {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: pha-block 9s ease-in-out infinite alternate;
}
.scn-prison-head-arrangement .axe-blade {
  position: absolute; bottom: 32%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: left center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pha-axe 4s ease-in-out infinite alternate;
}
.scn-prison-head-arrangement .figure-executioner {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  transform-origin: bottom center;
  animation: pha-exec 6s ease-in-out infinite;
}
.scn-prison-head-arrangement .figure-prisoner {
  position: absolute; bottom: 16%; right: 30%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a0a0a 0%, #050000 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pha-prison 8s ease-in-out infinite;
}
.scn-prison-head-arrangement .torch-tall {
  position: absolute; bottom: 40%; left: 10%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px #ff8844;
}
.scn-prison-head-arrangement .torch-glow {
  position: absolute; bottom: 50%; left: 8%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffaa44 0%, rgba(255,170,68,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pha-torch 2s ease-in-out infinite alternate;
}
@keyframes pha-block {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes pha-axe {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(1px); }
}
@keyframes pha-exec {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes pha-prison {
  0% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-3px) translateX(5px); }
  100% { transform: translateY(0) translateX(0); }
}
@keyframes pha-torch {
  0% { opacity: 0.7; transform: scale(1); box-shadow: 0 0 20px #ff8844; }
  50% { opacity: 1; transform: scale(1.2); box-shadow: 0 0 30px #ffaa44; }
  100% { opacity: 0.8; transform: scale(0.9); box-shadow: 0 0 15px #ff6633; }
}

/* executioner-recruitment - tense dim interior (close-up) */
.scn-executioner-recruitment {
  background: linear-gradient(180deg, #0f0707 0%, #1a0a0a 40%, #050000 100%),
              radial-gradient(ellipse at 50% 60%, #2a1510 0%, transparent 60%);
}
.scn-executioner-recruitment .cell-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0c0404 0%, #1a0808 50%, #0c0404 100%);
  border-radius: 8% 8% 0 0;
}
.scn-executioner-recruitment .light-shaft {
  position: absolute; top: 5%; left: 40%; width: 30px; height: 45%;
  background: linear-gradient(180deg, rgba(255,200,150,0.1) 0%, transparent 100%);
  filter: blur(10px);
  animation: exr-light 10s ease-in-out infinite alternate;
}
.scn-executioner-recruitment .hand-axe {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0808 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  box-shadow: 0 4px 6px rgba(0,0,0,0.8);
  animation: exr-handaxe 5s ease-in-out infinite alternate;
}
.scn-executioner-recruitment .chains-link {
  position: absolute; bottom: 35%; right: 35%; width: 15px; height: 30px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 4px #666;
  animation: exr-chains 3s ease-in-out infinite alternate;
}
.scn-executioner-recruitment .hand-bound {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: exr-handbound 4s ease-in-out infinite;
}
.scn-executioner-recruitment .sparkle {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffdd88 0%, #cc8844 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #cc8844;
  animation: exr-spark 2s ease-in-out infinite;
}
.scn-executioner-recruitment .spark1 { top: 15%; left: 20%; }
.scn-executioner-recruitment .spark2 { top: 25%; left: 65%; animation-delay: 1s; }
.scn-executioner-recruitment .shadow-cast {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: exr-shadow 12s ease-in-out infinite;
}
@keyframes exr-light {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.3; transform: scaleX(0.9); }
}
@keyframes exr-handaxe {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes exr-chains {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(-3deg) translateX(-1px); }
}
@keyframes exr-handbound {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(0.95) rotate(5deg); }
  100% { transform: scale(1) rotate(-2deg); }
}
@keyframes exr-spark {
  0% { transform: scale(0.2); opacity: 0; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.3); opacity: 0; }
}
@keyframes exr-shadow {
  0%, 100% { opacity: 0.6; transform: translateX(0); }
  50% { opacity: 0.8; transform: translateX(5px); }
}

.scn-lucio-advises-appeal {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #f2c685 0%, #e89b5e 40%, #c5733a 80%), radial-gradient(ellipse at 20% 30%, #fad6a0 0%, transparent 60%);
}
.scn-lucio-advises-appeal .lua-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f7d9a8 0%, transparent 100%); animation: lua-sky 10s ease-in-out infinite alternate; }
.scn-lucio-advises-appeal .lua-sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff5d0 0%, #f0c060 50%, transparent 70%); border-radius:50%; animation: lua-sun 6s ease-in-out infinite alternate; }
.scn-lucio-advises-appeal .lua-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a5a2a 0%, #4a2a10 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-lucio-advises-appeal .lua-figure-a { position:absolute; bottom:28%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lua-fig-a 3s ease-in-out infinite; }
.scn-lucio-advises-appeal .lua-figure-b { position:absolute; bottom:28%; left:55%; width:25px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lua-fig-b 3.5s ease-in-out infinite; }
.scn-lucio-advises-appeal .lua-ray { position:absolute; top:0; left:50%; width:200px; height:100%; background: linear-gradient(135deg, rgba(255,220,150,0.3) 0%, transparent 50%); transform: rotate(15deg); animation: lua-ray 4s ease-in-out infinite alternate; }
.scn-lucio-advises-appeal .lua-dust1, .scn-lucio-advises-appeal .lua-dust2 { position:absolute; width:4px; height:4px; background: rgba(255,200,100,0.6); border-radius:50%; }
.scn-lucio-advises-appeal .lua-dust1 { top:40%; left:20%; animation: lua-dust 8s linear infinite; }
.scn-lucio-advises-appeal .lua-dust2 { top:60%; left:80%; animation: lua-dust 10s linear infinite 1s; }

@keyframes lua-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lua-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes lua-fig-a { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(10px, -2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes lua-fig-b { 0% { transform: translate(0,0) rotate(2deg) } 50% { transform: translate(-10px, -2px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes lua-ray { 0% { opacity:0.2; transform: rotate(10deg) scaleY(1); } 50% { opacity:0.5; transform: rotate(15deg) scaleY(1.2); } 100% { opacity:0.2; transform: rotate(10deg) scaleY(1); } }
@keyframes lua-dust { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:0.8; } 80% { opacity:0.8; } 100% { transform: translate(50px, -30px); opacity:0; } }

/* scene 2 */
.scn-lucio-promises-help {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #fce4b3 0%, #f2c96a 40%, #d99e48 70%), radial-gradient(ellipse at 80% 100%, #fdd885 0%, transparent 60%);
}
.scn-lucio-promises-help .lup-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fdeac0 0%, transparent 100%); animation: lup-sky 15s ease-in-out infinite alternate; }
.scn-lucio-promises-help .lup-sun { position:absolute; bottom:30%; left:75%; width:50px; height:50px; background: radial-gradient(circle, #fff7e0 0%, #f4c430 60%, transparent 80%); border-radius:50%; animation: lup-sun 8s ease-in-out infinite alternate; }
.scn-lucio-promises-help .lup-hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #b5864a 0%, #7a5928 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,.2); animation: lup-hills 12s ease-in-out infinite alternate; }
.scn-lucio-promises-help .lup-path { position:absolute; bottom:0; left:30%; right:30%; height:35%; background: linear-gradient(180deg, #c89a5a 0%, #8a5a2a 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: lup-path 10s ease-in-out infinite alternate; }
.scn-lucio-promises-help .lup-tree1, .scn-lucio-promises-help .lup-tree2 { position:absolute; bottom:35%; width:30px; height:50px; background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-lucio-promises-help .lup-tree1 { left:20%; animation: lup-tree 6s ease-in-out infinite; transform-origin: bottom center; }
.scn-lucio-promises-help .lup-tree2 { right:20%; animation: lup-tree 7s ease-in-out infinite 0.5s; }
.scn-lucio-promises-help .lup-figure1, .scn-lucio-promises-help .lup-figure2 { position:absolute; bottom:10%; width:12px; height:35px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lup-walk 6s ease-in-out infinite; }
.scn-lucio-promises-help .lup-figure1 { left:40%; }
.scn-lucio-promises-help .lup-figure2 { left:50%; animation-delay: 0.5s; }

@keyframes lup-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lup-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.9) } }
@keyframes lup-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lup-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes lup-tree { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }
@keyframes lup-walk { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(-2deg) } 50% { transform: translateX(20px) rotate(0deg) } 75% { transform: translateX(30px) rotate(2deg) } }

/* scene 3 */
.scn-monastery-duke-confession {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #3a2a1a 80%), radial-gradient(ellipse at 50% 30%, #4a4a3a 0%, transparent 70%);
}
.scn-monastery-duke-confession .mdc-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); }
.scn-monastery-duke-confession .mdc-arch { position:absolute; top:0; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-monastery-duke-confession .mdc-pillar-l, .scn-monastery-duke-confession .mdc-pillar-r { position:absolute; top:0; width:15%; height:100%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 5px 0 10px rgba(0,0,0,.4); animation: mdc-pillar 12s ease-in-out infinite alternate; }
.scn-monastery-duke-confession .mdc-pillar-l { left:0; }
.scn-monastery-duke-confession .mdc-pillar-r { right:0; animation-delay: 3s; }
.scn-monastery-duke-confession .mdc-window { position:absolute; top:15%; left:45%; width:60px; height:80px; background: radial-gradient(ellipse, #d4b06a 0%, #a08040 60%, transparent 80%); border-radius: 5px; box-shadow: 0 0 30px 10px rgba(180,140,80,0.3); animation: mdc-glow 4s ease-in-out infinite alternate; }
.scn-monastery-duke-confession .mdc-candle { position:absolute; bottom:40%; left:35%; width:4px; height:10px; background: linear-gradient(180deg, #d4b06a 0%, #a08040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 10px 5px rgba(200,160,80,0.4); animation: mdc-flame 2s ease-in-out infinite; }
.scn-monastery-duke-confession .mdc-friar, .scn-monastery-duke-confession .mdc-duke { position:absolute; bottom:20%; width:25px; height:60px; background: linear-gradient(180deg, #1a1210 0%, #0a0805 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; animation: mdc-bow 10s ease-in-out infinite; }
.scn-monastery-duke-confession .mdc-friar { left:35%; }
.scn-monastery-duke-confession .mdc-duke { left:55%; animation-delay: 2s; }
.scn-monastery-duke-confession .mdc-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 0 0; animation: mdc-floor 8s ease-in-out infinite alternate; }

@keyframes mdc-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes mdc-glow { 0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(180,140,80,0.2); } 50% { opacity:0.8; box-shadow: 0 0 40px 15px rgba(180,140,80,0.4); } 100% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(180,140,80,0.2); } }
@keyframes mdc-flame { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.2) translateY(-2px) } }
@keyframes mdc-bow { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) } }
@keyframes mdc-floor { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }

/* scene 4 */
.scn-duke-explains-departure {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 80%), radial-gradient(ellipse at 50% 20%, #4a4a5a 0%, transparent 70%);
}
.scn-duke-explains-departure .ded-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-duke-explains-departure .ded-light { position:absolute; top:0; left:45%; width:80px; height:100%; background: linear-gradient(180deg, rgba(200,180,130,0.3) 0%, transparent 80%); border-radius: 0 0 20px 20px; animation: ded-light 6s ease-in-out infinite alternate; }
.scn-duke-explains-departure .ded-column { position:absolute; top:0; left:30%; width:10px; height:100%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); box-shadow: 2px 0 10px rgba(0,0,0,.5); animation: ded-sway 8s ease-in-out infinite; }
.scn-duke-explains-departure .ded-duke, .scn-duke-explains-departure .ded-friar { position:absolute; bottom:20%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ded-speak 6s ease-in-out infinite; }
.scn-duke-explains-departure .ded-duke { left:45%; }
.scn-duke-explains-departure .ded-friar { left:52%; animation-delay: 1s; }
.scn-duke-explains-departure .ded-book { position:absolute; bottom:10%; left:48%; width:20px; height:5px; background: #4a3a2a; border-radius: 2px; animation: ded-book 3s ease-in-out infinite; }
.scn-duke-explains-departure .ded-shadow { position:absolute; bottom:0; left:30%; right:30%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); border-radius: 50% 50% 0 0; animation: ded-shadow 5s ease-in-out infinite alternate; }

@keyframes ded-light { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.05); } 100% { opacity:0.3; transform: scaleX(1); } }
@keyframes ded-sway { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes ded-speak { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ded-book { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes ded-shadow { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.8 } }

.scn-friar-peter-defends { background: radial-gradient(ellipse at 20% 30%, #fceabb 0%, transparent 60%), linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); }
.scn-friar-peter-defends .sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #b0d4ff 0%, transparent 100%); animation: fp-sky 12s infinite alternate; }
.scn-friar-peter-defends .arch { position:absolute; top:20%; left:15%; right:15%; bottom:10%; background: linear-gradient(180deg, #5c4033 0%, #3e2f23 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-friar-peter-defends .beam { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(110deg, rgba(255,255,200,.4) 0%, transparent 70%); transform: skewX(-15deg); animation: fp-beam 20s ease-in-out infinite; }
.scn-friar-peter-defends .friar { position:absolute; bottom:12%; left:50%; width:30px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1f14 0%, #1a1209 100%); border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%; animation: fp-breathe 6s ease-in-out infinite; }
.scn-friar-peter-defends .staff { position:absolute; bottom:16%; left:46%; width:4px; height:50px; background: #4a3620; border-radius:2px; animation: fp-staff-sway 6s ease-in-out infinite; }
.scn-friar-peter-defends .leaf { position:absolute; width:12px; height:6px; background: radial-gradient(ellipse at 50% 50%, #8b9a46 0%, #5a6b2e 100%); border-radius: 50% 0 50% 0; animation: fp-leaf-fall 15s linear infinite; }
.scn-friar-peter-defends .leaf-a { top:10%; left:5%; animation-delay: 0s; }
.scn-friar-peter-defends .leaf-b { top:20%; right:8%; animation-delay: -7s; }
@keyframes fp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fp-beam { 0% { transform: skewX(-15deg) translateX(-5%); opacity:.5 } 50% { transform: skewX(-15deg) translateX(2%); opacity:.7 } 100% { transform: skewX(-15deg) translateX(-5%); opacity:.5 } }
@keyframes fp-breathe { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes fp-staff-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes fp-leaf-fall { 0% { transform: translateY(0) translateX(0) rotate(0deg); opacity:.8 } 50% { transform: translateY(25px) translateX(15px) rotate(180deg); opacity:.5 } 100% { transform: translateY(50px) translateX(30px) rotate(360deg); opacity:.8 } }

.scn-duke-stages-trial { background: radial-gradient(ellipse at 80% 20%, #f5d78c 0%, transparent 50%), linear-gradient(180deg, #d4b886 0%, #8c6b4a 100%); }
.scn-duke-stages-trial .wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(140,107,74,.3) 0%, transparent 70%); }
.scn-duke-stages-trial .window { position:absolute; top:5%; right:10%; width:60px; height:40px; background: radial-gradient(ellipse at center, #ffeab0 0%, transparent 70%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.2); animation: duke-window-glow 8s ease-in-out infinite alternate; }
.scn-duke-stages-trial .beam { position:absolute; top:10%; right:5%; width:30%; height:80%; background: linear-gradient(190deg, rgba(255,255,200,.3) 0%, transparent 70%); transform: skewY(-15deg); animation: duke-beam 20s linear infinite; }
.scn-duke-stages-trial .throne { position:absolute; bottom:30%; left:40%; width:100px; height:80px; background: linear-gradient(180deg, #6b4226 0%, #3e2211 100%); border-radius: 10% 10% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: duke-throne 12s ease-in-out infinite; }
.scn-duke-stages-trial .duke { position:absolute; bottom:34%; left:44%; width:24px; height:50px; background: linear-gradient(180deg, #2a1e15 0%, #140a05 100%); border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%; transform: skewX(-5deg); animation: duke-breathe 7s ease-in-out infinite; }
.scn-duke-stages-trial .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a0825a 0%, #6b4c32 100%); transform: perspective(200px) rotateX(5deg); animation: duke-floor 15s linear infinite; }
.scn-duke-stages-trial .banner { position:absolute; top:15%; left:5%; width:4px; height:60px; background: linear-gradient(180deg, #b8864e 0%, #8c5c2a 100%); border-radius:2px; animation: duke-banner-sway 10s ease-in-out infinite; }
@keyframes duke-window-glow { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes duke-beam { 0% { transform: skewY(-15deg) translateX(0); opacity:.3 } 50% { transform: skewY(-15deg) translateX(5%); opacity:.5 } 100% { transform: skewY(-15deg) translateX(0); opacity:.3 } }
@keyframes duke-throne { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes duke-breathe { 0% { transform: skewX(-5deg) scale(1) } 50% { transform: skewX(-5deg) scale(1.02) } 100% { transform: skewX(-5deg) scale(1) } }
@keyframes duke-floor { 0% { background-position: 0 0 } 100% { background-position: 0 10px } }
@keyframes duke-banner-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

.scn-mariana-reveals-identity { background: radial-gradient(ellipse at 70% 20%, #ffffff 0%, #e0c070 30%, transparent 70%), linear-gradient(180deg, #d4c8a0 0%, #5a4a2e 100%); }
.scn-mariana-reveals-identity .sunburst { position:absolute; top:10%; right:10%; width:80px; height:80px; background: radial-gradient(circle, #ffffff 10%, #ffeeb0 40%, transparent 70%); border-radius:50%; animation: mr-sun-pulse 3s ease-in-out infinite alternate; }
.scn-mariana-reveals-identity .shadow-figure { position:absolute; bottom:10%; left:30%; width:50px; height:100px; background: #1a140e; border-radius: 50% 50% 30% 30% / 55% 55% 20% 20%; animation: mr-figure-tremble .8s ease-in-out infinite; }
.scn-mariana-reveals-identity .hood { position:absolute; top:30%; left:28%; width:30px; height:40px; background: #2a1f14; border-radius: 60% 60% 30% 30% / 80% 80% 30% 30%; transform-origin: top left; animation: mr-hood-lift 2s ease-in-out infinite alternate; }
.scn-mariana-reveals-identity .hand.pulling { position:absolute; top:25%; left:24%; width:12px; height:8px; background: #1a140e; border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: rotate(-20deg); box-shadow: 3px 0 0 0 #1a140e, 6px 2px 0 0 #1a140e; animation: mr-hand-pull 1.5s ease-in-out infinite alternate; }
.scn-mariana-reveals-identity .veil { position:absolute; top:22%; left:26%; width:20px; height:25px; background: linear-gradient(135deg, #702243 0%, #b87878 100%); border-radius: 0 40% 40% 0; opacity:.8; animation: mr-veil-flutter 2s ease-in-out infinite alternate; }
.scn-mariana-reveals-identity .ray { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(110deg, rgba(255,255,220,.5) 0%, transparent 80%); transform: skewX(-20deg); animation: mr-ray-shift 5s ease-in-out infinite alternate; }
.scn-mariana-reveals-identity .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(20,15,5,.8) 0%, transparent 100%); animation: mr-ground-vibrate .6s ease-in-out infinite alternate; }
@keyframes mr-sun-pulse { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes mr-figure-tremble { 0% { transform: translateX(0) } 25% { transform: translateX(1px) } 75% { transform: translateX(-1px) } 100% { transform: translateX(0) } }
@keyframes mr-hood-lift { 0% { transform: rotate(0deg) translateY(0) } 100% { transform: rotate(-8deg) translateY(-5px) } }
@keyframes mr-hand-pull { 0% { transform: rotate(-20deg) scale(1) } 100% { transform: rotate(-25deg) scale(.95) } }
@keyframes mr-veil-flutter { 0% { transform: rotate(0deg) scale(1) } 100% { transform: rotate(5deg) scale(1.02) } }
@keyframes mr-ray-shift { 0% { opacity:.5; transform: skewX(-20deg) translateX(0) } 100% { opacity:.8; transform: skewX(-20deg) translateX(10px) } }
@keyframes mr-ground-vibrate { 0% { opacity:.5 } 100% { opacity:.7 } }

.scn-mariana-accuses-angelo { background: radial-gradient(ellipse at 80% 10%, #ffffff 0%, #f5e0a0 30%, transparent 60%), linear-gradient(180deg, #e8d4a6 0%, #a08050 100%); }
.scn-mariana-accuses-angelo .wall { position:absolute; inset:0; background: linear-gradient(0deg, rgba(160,128,80,.2) 0%, transparent 80%); }
.scn-mariana-accuses-angelo .window { position:absolute; top:5%; right:5%; width:50px; height:30px; background: radial-gradient(circle at 50% 50%, #ffffff 0%, #ffe6a0 70%); border-radius: 40%; animation: ma-window-glow 4s ease-in-out infinite alternate; }
.scn-mariana-accuses-angelo .beam { position:absolute; top:0; right:0; width:35%; height:100%; background: linear-gradient(195deg, rgba(255,255,240,.4) 0%, transparent 70%); transform: skewX(-10deg); animation: ma-beam-shift 6s ease-in-out infinite alternate; }
.scn-mariana-accuses-angelo .figure { position:absolute; bottom:15%; left:20%; width:35px; height:80px; background: linear-gradient(180deg, #1a120a 0%, #0c0804 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(5deg); animation: ma-figure-tension 2s ease-in-out infinite alternate; }
.scn-mariana-accuses-angelo .arm { position:absolute; bottom:30%; left:28%; width:30px; height:8px; background: #1a120a; border-radius: 50%; transform: rotate(-30deg); animation: ma-arm-point 2s ease-in-out infinite alternate; }
.scn-mariana-accuses-angelo .pointing-hand { position:absolute; bottom:31%; left:36%; width:12px; height:12px; background: #1a120a; border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; transform: rotate(10deg); box-shadow: 3px -2px 0 0 #1a120a; animation: ma-point-tremble .6s ease-in-out infinite alternate; }
.scn-mariana-accuses-angelo .shadow { position:absolute; top:40%; right:15%; width:25px; height:40px; background: rgba(10,8,5,.5); border-radius: 40% 60% 50% 50% / 70% 70% 30% 30%; transform: rotate(-20deg); animation: ma-shadow-shift 3s ease-in-out infinite alternate; }
@keyframes ma-window-glow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ma-beam-shift { 0% { transform: skewX(-10deg) translateX(0); opacity:.3 } 100% { transform: skewX(-10deg) translateX(8px); opacity:.5 } }
@keyframes ma-figure-tension { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.02) } 100% { transform: rotate(5deg) scale(1) } }
@keyframes ma-arm-point { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-32deg) } 100% { transform: rotate(-30deg) } }
@keyframes ma-point-tremble { 0% { transform: translate(0,0) } 25% { transform: translate(1px,-1px) } 75% { transform: translate(-1px,1px) } 100% { transform: translate(0,0) } }
@keyframes ma-shadow-shift { 0% { transform: rotate(-20deg) translateX(0); opacity:.5 } 100% { transform: rotate(-20deg) translateX(5px); opacity:.7 } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-duke-sentences-angelo {
  background: linear-gradient(180deg, #f7e9d0 0%, #c9b89a 40%, #a68b6d 100%),
              radial-gradient(ellipse at 70% 20%, rgba(255,230,180,0.4) 0%, transparent 50%);
}
.scn-duke-sentences-angelo .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,240,210,0.3) 0%, transparent 70%); }
.scn-duke-sentences-angelo .column-left,
.scn-duke-sentences-angelo .column-right { position:absolute; top:0; bottom:0; width:8%; background: linear-gradient(180deg, #b09878 0%, #8a7355 100%); box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); animation: dsa-column 6s ease-in-out infinite alternate; }
.scn-duke-sentences-angelo .column-left { left:10%; }
.scn-duke-sentences-angelo .column-right { right:10%; }
.scn-duke-sentences-angelo .figure-duke { position:absolute; bottom:25%; left:35%; width:24px; height:55px; background: linear-gradient(180deg, #3a2e22 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dsa-duke 2.5s ease-in-out infinite; }
.scn-duke-sentences-angelo .figure-isabella { position:absolute; bottom:25%; left:52%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dsa-isabella 3s ease-in-out infinite; }
.scn-duke-sentences-angelo .sunbeam { position:absolute; top:10%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,220,150,0.35) 0%, rgba(255,220,150,0) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: dsa-beam 2.4s ease-in-out infinite alternate; }
.scn-duke-sentences-angelo .dust1,
.scn-duke-sentences-angelo .dust2 { position:absolute; width:4px; height:4px; background: rgba(255,200,130,0.6); border-radius:50%; filter: blur(2px); }
.scn-duke-sentences-angelo .dust1 { top:30%; left:40%; animation: dsa-dust 4s linear infinite; }
.scn-duke-sentences-angelo .dust2 { top:50%; left:55%; animation: dsa-dust2 5s linear infinite reverse; }
@keyframes dsa-column { 0% { opacity:0.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.85; transform:scaleY(0.98); } }
@keyframes dsa-duke { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1.5deg); } 50% { transform: translateX(0) rotate(-0.5deg); } 75% { transform: translateX(-1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes dsa-isabella { 0% { transform: translateY(0) rotate(0.5deg); } 33% { transform: translateY(-2px) rotate(-0.5deg); } 66% { transform: translateY(1px) rotate(0.8deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes dsa-beam { 0% { opacity:0.5; transform:skewX(-5deg); } 50% { opacity:0.9; transform:skewX(0deg); } 100% { opacity:0.6; transform:skewX(5deg); } }
@keyframes dsa-dust { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 25% { transform: translate(15px,-10px) scale(1.2); opacity:0.8; } 50% { transform: translate(30px,-20px) scale(0.8); opacity:0.4; } 75% { transform: translate(45px,-30px) scale(1.1); opacity:0.7; } 100% { transform: translate(60px,-40px) scale(0.9); opacity:0.5; } }
@keyframes dsa-dust2 { 0% { transform: translate(0,0) scale(0.8); opacity:0.5; } 25% { transform: translate(-10px,-15px) scale(1); opacity:0.7; } 50% { transform: translate(-20px,-30px) scale(0.7); opacity:0.3; } 75% { transform: translate(-30px,-45px) scale(1.1); opacity:0.6; } 100% { transform: translate(-40px,-60px) scale(0.9); opacity:0.4; } }

.scn-claudio-revealed {
  background: linear-gradient(180deg, #eadbc7 0%, #cbb6a0 50%, #a88f78 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,235,200,0.3) 0%, transparent 60%);
}
.scn-claudio-revealed .wall { position:absolute; inset:0 20% 0 20%; background: linear-gradient(180deg, #e0cfba 0%, #c4ae94 100%); border-left:2px solid rgba(0,0,0,0.1); border-right:2px solid rgba(0,0,0,0.1); }
.scn-claudio-revealed .window { position:absolute; top:15%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #b0d0e8 0%, #8bb4d0 100%); border:6px solid #7a5e44; border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 40px rgba(255,230,180,0.3); animation: clr-window 20s ease-in-out infinite alternate; }
.scn-claudio-revealed .table { position:absolute; bottom:28%; left:45%; width:12%; height:4%; background: linear-gradient(180deg, #a0805a 0%, #7a6040 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-claudio-revealed .figure-duke { position:absolute; bottom:23%; left:35%; width:22px; height:52px; background: linear-gradient(180deg, #3a2e22 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: clr-figure 8s ease-in-out infinite; }
.scn-claudio-revealed .figure-provost { position:absolute; bottom:23%; right:32%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: clr-figure2 9s ease-in-out infinite; }
.scn-claudio-revealed .sunpatch { position:absolute; bottom:20%; left:30%; width:15%; height:30%; background: radial-gradient(ellipse, rgba(255,230,180,0.25) 0%, transparent 70%); animation: clr-patch 15s ease-in-out infinite alternate; }
.scn-claudio-revealed .shadow { position:absolute; bottom:0; left:25%; width:50%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 100%); filter: blur(6px); }
@keyframes clr-window { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes clr-figure { 0% { transform: translateY(0) rotate(-0.5deg); } 33% { transform: translateY(-1px) rotate(0.5deg); } 66% { transform: translateY(1px) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes clr-figure2 { 0% { transform: translateY(0) rotate(0.3deg); } 25% { transform: translateY(-2px) rotate(-0.5deg); } 50% { transform: translateY(0) rotate(0.2deg); } 75% { transform: translateY(1px) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(0.3deg); } }
@keyframes clr-patch { 0% { opacity:0.3; transform:scale(0.9); } 50% { opacity:0.6; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(0.95); } }

.scn-final-justice {
  background: linear-gradient(180deg, #f2e6d0 0%, #d4c0a8 40%, #b09880 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,240,210,0.3) 0%, transparent 70%);
}
.scn-final-justice .bg-arch { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #cbb6a0 0%, #a88f78 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.2); }
.scn-final-justice .figure-duke { position:absolute; bottom:25%; left:25%; width:24px; height:55px; background: linear-gradient(180deg, #3a2e22 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fij-duke 7s ease-in-out infinite; }
.scn-final-justice .figure-claudio { position:absolute; bottom:25%; left:40%; width:22px; height:52px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fij-figure 8s ease-in-out infinite; }
.scn-final-justice .figure-mariana { position:absolute; bottom:25%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fij-figure2 9s ease-in-out infinite; }
.scn-final-justice .figure-angelo { position:absolute; bottom:25%; left:68%; width:24px; height:55px; background: linear-gradient(180deg, #3a2e22 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fij-angelo 6.5s ease-in-out infinite; }
.scn-final-justice .ray1,
.scn-final-justice .ray2 { position:absolute; top:0; width:8%; height:100%; background: linear-gradient(180deg, rgba(255,235,180,0.15) 0%, transparent 70%); filter: blur(4px); }
.scn-final-justice .ray1 { left:30%; animation: fij-ray 20s ease-in-out infinite alternate; }
.scn-final-justice .ray2 { right:30%; animation: fij-ray2 25s ease-in-out infinite alternate; }
@keyframes fij-duke { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0.5deg); } 50% { transform: translateY(0) rotate(-0.5deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fij-figure { 0% { transform: translateY(0) rotate(0.3deg); } 33% { transform: translateY(-1px) rotate(-0.3deg); } 66% { transform: translateY(1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0.3deg); } }
@keyframes fij-figure2 { 0% { transform: translateY(0) rotate(-0.4deg); } 30% { transform: translateY(-1px) rotate(0.4deg); } 60% { transform: translateY(1px) rotate(-0.2deg); } 100% { transform: translateY(0) rotate(-0.4deg); } }
@keyframes fij-angelo { 0% { transform: translateY(0) rotate(0.5deg); } 20% { transform: translateY(-2px) rotate(-1deg); } 40% { transform: translateY(0) rotate(0.2deg); } 60% { transform: translateY(1px) rotate(-0.5deg); } 80% { transform: translateY(-1px) rotate(0.8deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes fij-ray { 0% { opacity:0.3; transform:skewX(3deg); } 50% { opacity:0.6; transform:skewX(-2deg); } 100% { opacity:0.4; transform:skewX(5deg); } }
@keyframes fij-ray2 { 0% { opacity:0.2; transform:skewX(-4deg); } 50% { opacity:0.5; transform:skewX(2deg); } 100% { opacity:0.3; transform:skewX(-1deg); } }

.scn-angelo-severity-feared {
  background: linear-gradient(180deg, #1a1410 0%, #2c2018 40%, #1a1210 100%),
              radial-gradient(ellipse at 30% 20%, #4a3428 0%, transparent 70%);
}
.scn-angelo-severity-feared .wall-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.6) 0%, transparent 60%); animation: as-wall 14s ease-in-out infinite alternate; }
.scn-angelo-severity-feared .wood-beam { position:absolute; top:10%; left:5%; right:5%; height:12px; background: linear-gradient(90deg, #3a2a1e 0%, #4a3a2a 50%, #3a2a1e 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-angelo-severity-feared .armor-stand { position:absolute; bottom:20%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:10% 10% 10% 10% / 20% 20% 10% 10%; box-shadow: inset 0 0 12px #1a0a00, 0 4px 8px rgba(0,0,0,.7); transform: rotate(-2deg); animation: as-armor 18s ease-in-out infinite; }
.scn-angelo-severity-feared .chains { position:absolute; bottom:25%; left:28%; width:24px; height:40px; background: radial-gradient(circle at 50% 0%, #6a5a4a 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: as-chain 6s ease-in-out infinite; }
.scn-angelo-severity-feared .light-shaft { position:absolute; top:0; left:55%; width:80px; height:100%; background: linear-gradient(180deg, rgba(200,160,100,.15) 0%, transparent 100%); transform: skewX(-15deg); filter: blur(10px); animation: as-light 8s ease-in-out infinite alternate; }
.scn-angelo-severity-feared .figure-kneel { position:absolute; bottom:12%; left:50%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a10 0%, #0a0a05 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: as-kneel 4s ease-in-out infinite; }
.scn-angelo-severity-feared .floor-tile { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(45deg, #2a1a10 0px, #2a1a10 20px, #3a2a1a 20px, #3a2a1a 40px); opacity:0.5; }
@keyframes as-wall { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes as-armor { 0%,100% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) translateY(-2px) } }
@keyframes as-chain { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(8deg) translateX(2px) } }
@keyframes as-light { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }
@keyframes as-kneel { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg) } }

.scn-isabella-sought {
  background: linear-gradient(180deg, #1a1614 0%, #2c201c 40%, #1a1210 100%),
              radial-gradient(ellipse at 60% 30%, #4a3228 0%, transparent 60%);
}
.scn-isabella-sought .corridor-wall { position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,.7) 0%, transparent 20%, transparent 80%, rgba(0,0,0,.7) 100%); animation: is-wall 12s ease-in-out infinite alternate; }
.scn-isabella-sought .door-iron { position:absolute; bottom:20%; left:40%; width:60px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 0 10px #000, 0 4px 8px rgba(0,0,0,.8); }
.scn-isabella-sought .door-grate { position:absolute; bottom:30%; left:41%; width:50px; height:50px; background: repeating-linear-gradient(0deg, #1a1008 0px, #1a1008 4px, transparent 4px, transparent 8px); border:2px solid #2a1a0e; }
.scn-isabella-sought .figure-walk { position:absolute; bottom:15%; left:10%; width:16px; height:32px; background: linear-gradient(180deg, #1a1a10 0%, #0a0a05 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: is-walk 4s ease-in-out infinite; }
.scn-isabella-sought .torch-flare { position:absolute; bottom:50%; left:15%; width:20px; height:30px; background: radial-gradient(circle at 50% 100%, #d08040 0%, transparent 70%); filter: blur(3px); animation: is-flare 3s ease-in-out infinite alternate; }
.scn-isabella-sought .shadow-stretch { position:absolute; bottom:0; left:5%; width:40px; height:60px; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); transform: skewX(-20deg); animation: is-shadow 5s ease-in-out infinite; }
@keyframes is-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes is-walk { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(1deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(1deg) } }
@keyframes is-flare { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.3) translateY(-2px); opacity:1 } 100% { transform: scale(0.9); opacity:.5 } }
@keyframes is-shadow { 0%,100% { transform: skewX(-20deg) scale(1) } 50% { transform: skewX(-15deg) scale(1.1) } }

.scn-duke-friar-conspiracy {
  background: linear-gradient(180deg, #2a2220 0%, #3a2e2a 40%, #2a1e1a 100%),
              radial-gradient(ellipse at 40% 30%, #5a4438 0%, transparent 60%);
}
.scn-duke-friar-conspiracy .cell-wall { position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 15%, transparent 85%, rgba(0,0,0,.4) 100%); animation: df-wall 18s ease-in-out infinite alternate; }
.scn-duke-friar-conspiracy .straw-bed { position:absolute; bottom:15%; left:10%; width:70px; height:25px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-duke-friar-conspiracy .wooden-desk { position:absolute; bottom:22%; left:40%; width:50px; height:20px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-duke-friar-conspiracy .candle-flame { position:absolute; bottom:35%; left:44%; width:10px; height:14px; background: radial-gradient(circle at 50% 80%, #f0c080 0%, #c08040 60%, transparent 100%); filter: blur(2px); animation: df-candle 3s ease-in-out infinite alternate; }
.scn-duke-friar-conspiracy .book-stack { position:absolute; bottom:18%; left:38%; width:30px; height:15px; background: linear-gradient(0deg, #5a4a3a 0%, #7a6a5a 100%); border-radius:2px; box-shadow: 0 2px 3px rgba(0,0,0,.5); }
.scn-duke-friar-conspiracy .figure-duke { position:absolute; bottom:14%; left:60%; width:18px; height:36px; background: linear-gradient(180deg, #2a1e1a 0%, #1a100c 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: df-duke 6s ease-in-out infinite; }
.scn-duke-friar-conspiracy .figure-friar { position:absolute; bottom:14%; left:35%; width:20px; height:38px; background: linear-gradient(180deg, #3a2e2a 0%, #2a1e1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(3deg); animation: df-friar 6s ease-in-out infinite 3s; }
.scn-duke-friar-conspiracy .window-slit { position:absolute; top:15%; right:10%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #1a100c 100%); border:2px solid #2a1e1a; box-shadow: inset 0 0 8px rgba(255,180,80,.1); animation: df-window 20s ease-in-out infinite alternate; }
@keyframes df-wall { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes df-candle { 0% { transform: scale(1) translateY(0); opacity:.8 } 50% { transform: scale(1.2) translateY(-2px); opacity:1 } 100% { transform: scale(0.9) translateY(1px); opacity:.7 } }
@keyframes df-duke { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes df-friar { 0%,100% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } }
@keyframes df-window { 0% { background: linear-gradient(180deg, #4a3a2a 0%, #1a100c 100%); } 50% { background: linear-gradient(180deg, #5a4a3a 0%, #2a1e1a 100%); } 100% { background: linear-gradient(180deg, #4a3a2a 0%, #1a100c 100%); } }

.scn-duke-explains-policy {
  background: linear-gradient(180deg, #2a2420 0%, #3a3028 40%, #2a1e18 100%),
              radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, transparent 60%);
}
.scn-duke-explains-policy .hall-wall { position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, transparent 20%, transparent 80%, rgba(0,0,0,.5) 100%); animation: dp-wall 20s ease-in-out infinite alternate; }
.scn-duke-explains-policy .pillar-left { position:absolute; bottom:0; left:15%; width:20px; height:100%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 40%, #4a3a2a 100%); box-shadow: 0 0 10px rgba(0,0,0,.6); border-radius:4px 4px 0 0; }
.scn-duke-explains-policy .pillar-right { position:absolute; bottom:0; right:15%; width:20px; height:100%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 40%, #4a3a2a 100%); box-shadow: 0 0 10px rgba(0,0,0,.6); border-radius:4px 4px 0 0; }
.scn-duke-explains-policy .figure-duke { position:absolute; bottom:15%; left:42%; width:18px; height:36px; background: linear-gradient(180deg, #2a1e1a 0%, #1a100c 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-3deg); animation: dp-duke 8s ease-in-out infinite; }
.scn-duke-explains-policy .figure-friar { position:absolute; bottom:15%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #3a2e2a 0%, #2a1e1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(2deg); animation: dp-friar 8s ease-in-out infinite 4s; }
.scn-duke-explains-policy .floor-checker { position:absolute; bottom:0; left:0; right:0; height:18%; background: repeating-conic-gradient(#2a1e18 0% 25%, #3a2a22 0% 50%) 0 0 / 40px 40px; opacity:0.4; animation: dp-floor 30s linear infinite; }
.scn-duke-explains-policy .lamp-glow { position:absolute; top:10%; left:50%; width:60px; height:60px; background: radial-gradient(circle at 50% 50%, rgba(200,160,100,.2) 0%, transparent 70%); transform: translate(-50%, 0); animation: dp-lamp 6s ease-in-out infinite alternate; }
@keyframes dp-wall { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes dp-duke { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } }
@keyframes dp-friar { 0%,100% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-3px) } }
@keyframes dp-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes dp-lamp { 0% { opacity:.6; transform: translate(-50%, 0) scale(1) } 50% { opacity:1; transform: translate(-50%, -5px) scale(1.2) } 100% { opacity:.7; transform: translate(-50%, 2px) scale(0.9) } }

.scn-isabella-lucio-meeting {
  background: linear-gradient(180deg, #f9f3e2 0%, #e6d5b8 100%), radial-gradient(ellipse at 50% 100%, rgba(255,235,200,0.4) 0%, transparent 60%);
}
.scn-isabella-lucio-meeting .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c4a882 0%, #a88e6e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-isabella-lucio-meeting .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #ede4d0 0%, #d9cbb0 100%);
}
.scn-isabella-lucio-meeting .window {
  position: absolute; top: 18%; left: 55%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 40%, #fff8e0 0%, #b0d0e0 80%);
  border: 6px solid #6b5a44;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.6), 0 0 30px rgba(255,230,150,0.3);
  animation: ilm-window 8s ease-in-out infinite alternate;
}
.scn-isabella-lucio-meeting .lightbeam {
  position: absolute; top: 18%; left: 55%; width: 80px; height: 100px;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0.1) 100%);
  filter: blur(12px);
  transform: skewX(-8deg);
  animation: ilm-beam 12s ease-in-out infinite alternate;
}
.scn-isabella-lucio-meeting .furniture {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(0deg, #5a3e28 0%, #7a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-isabella-lucio-meeting .figure {
  position: absolute; bottom: 20%; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
}
.scn-isabella-lucio-meeting .figure.isabella {
  left: 20%; width: 36px;
  animation: ilm-figure-a 5s ease-in-out infinite alternate;
}
.scn-isabella-lucio-meeting .figure.lucio {
  left: 55%; width: 44px;
  animation: ilm-figure-b 6s ease-in-out infinite alternate;
}
.scn-isabella-lucio-meeting .cross {
  position: absolute; bottom: 32%; left: 48%; width: 4px; height: 30px;
  background: #2a1a0a;
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: ilm-cross 4s ease-in-out infinite;
}
@keyframes ilm-window {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes ilm-beam {
  0% { opacity: 0.4; transform: skewX(-8deg) scaleY(1); }
  50% { opacity: 0.7; transform: skewX(-6deg) scaleY(1.05); }
  100% { opacity: 0.3; transform: skewX(-10deg) scaleY(0.95); }
}
@keyframes ilm-figure-a {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes ilm-figure-b {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes ilm-cross {
  0% { opacity: 0.3; transform: rotate(15deg) scale(1); }
  50% { opacity: 0.7; transform: rotate(12deg) scale(1.1); }
  100% { opacity: 0.4; transform: rotate(18deg) scale(0.9); }
}

.scn-item-nun-habit {
  background: linear-gradient(180deg, #f2eada 0%, #dccdb0 100%), radial-gradient(ellipse at 50% 20%, rgba(255,245,200,0.3) 0%, transparent 70%);
}
.scn-item-nun-habit .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #c6b79a 0%, #d4c5a8 50%, #c6b79a 100%);
}
.scn-item-nun-habit .hook {
  position: absolute; top: 12%; left: 50%; width: 6px; height: 20px;
  background: #5a4030;
  transform: translateX(-50%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-item-nun-habit .habit {
  position: absolute; top: 24%; left: 50%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%);
  border-radius: 10px 10px 30% 30% / 20px 20px 50% 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: inh-habit 7s ease-in-out infinite alternate;
}
.scn-item-nun-habit .wimple {
  position: absolute; top: 14%; left: 50%; width: 50px; height: 40px;
  background: #f0e8d8;
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.1);
  animation: inh-wimple 5s ease-in-out infinite alternate;
}
.scn-item-nun-habit .cord {
  position: absolute; top: 55%; left: 48%; width: 20px; height: 4px;
  background: #8a7050;
  border-radius: 2px;
  transform: rotate(-10deg) translateY(-50%);
  box-shadow: 0 0 2px rgba(0,0,0,0.2);
  animation: inh-cord 4s ease-in-out infinite alternate;
}
.scn-item-nun-habit .light {
  position: absolute; top: 15%; left: 40%; width: 120px; height: 150px;
  background: radial-gradient(ellipse, rgba(255,240,180,0.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: inh-light 9s ease-in-out infinite alternate;
}
.scn-item-nun-habit .shadow {
  position: absolute; bottom: 8%; left: 30%; width: 100px; height: 30px;
  background: rgba(0,0,0,0.15);
  filter: blur(8px);
  border-radius: 50%;
  animation: inh-shadow 6s ease-in-out infinite alternate;
}
@keyframes inh-habit {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes inh-wimple {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.02) rotate(1deg); }
  100% { transform: translateX(-50%) scale(0.98) rotate(-1deg); }
}
@keyframes inh-cord {
  0% { opacity: 0.5; transform: rotate(-10deg) translateY(-50%) scaleX(1); }
  50% { opacity: 1; transform: rotate(-8deg) translateY(-45%) scaleX(1.1); }
  100% { opacity: 0.6; transform: rotate(-12deg) translateY(-55%) scaleX(0.9); }
}
@keyframes inh-light {
  0% { opacity: 0.4; transform: translate(0, 0); }
  50% { opacity: 0.7; transform: translate(5px, -3px); }
  100% { opacity: 0.5; transform: translate(-3px, 2px); }
}
@keyframes inh-shadow {
  0% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.1); opacity: 0.3; }
  100% { transform: scale(0.9); opacity: 0.15; }
}

.scn-isabella-learns-truth {
  background: linear-gradient(180deg, #e8ddd0 0%, #c9bca8 100%), radial-gradient(ellipse at 50% 20%, rgba(180,200,220,0.3) 0%, transparent 60%);
}
.scn-isabella-learns-truth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a8967c 0%, #8a7a62 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-isabella-learns-truth .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #dbc8b0 0%, #b8a48c 100%);
}
.scn-isabella-learns-truth .window {
  position: absolute; top: 15%; left: 60%; width: 70px; height: 90px;
  background: radial-gradient(circle at 50% 30%, #fff0c0 0%, #90b0c0 80%);
  border: 5px solid #5a4a34;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,245,180,0.5), 0 0 40px rgba(200,220,240,0.2);
  animation: ilt-window 6s ease-in-out infinite alternate;
}
.scn-isabella-learns-truth .chair {
  position: absolute; bottom: 18%; width: 30px; height: 50px;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-isabella-learns-truth .chair.isabella {
  left: 25%;
  animation: ilt-chair-a 4s ease-in-out infinite alternate;
}
.scn-isabella-learns-truth .chair.lucio {
  left: 55%;
  animation: ilt-chair-b 4.5s ease-in-out infinite alternate;
}
.scn-isabella-learns-truth .ledge {
  position: absolute; bottom: 25%; left: 45%; width: 50px; height: 8px;
  background: #5a4a34;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ilt-ledge 5s ease-in-out infinite alternate;
}
.scn-isabella-learns-truth .silhouette {
  position: absolute; bottom: 20%; height: 90px;
  background: #1a1410;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
}
.scn-isabella-learns-truth .silhouette.isabella {
  left: 22%; width: 32px;
  animation: ilt-sil-a 4s ease-in-out infinite alternate;
}
.scn-isabella-learns-truth .silhouette.lucio {
  left: 58%; width: 40px;
  animation: ilt-sil-b 5s ease-in-out infinite alternate;
}
@keyframes ilt-window {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.03); }
  100% { opacity: 0.6; transform: scale(0.97); }
}
@keyframes ilt-chair-a {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-3px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(-6deg); }
}
@keyframes ilt-chair-b {
  0% { transform: translateY(0) rotate(5deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(6deg); }
}
@keyframes ilt-ledge {
  0% { opacity: 0.4; transform: translateY(0) scaleX(1); }
  50% { opacity: 0.7; transform: translateY(-2px) scaleX(1.05); }
  100% { opacity: 0.5; transform: translateY(0) scaleX(0.95); }
}
@keyframes ilt-sil-a {
  0% { transform: translateY(0) rotate(-2deg) scaleY(1); }
  50% { transform: translateY(-5px) rotate(0deg) scaleY(1.03); }
  100% { transform: translateY(-2px) rotate(2deg) scaleY(0.98); }
}
@keyframes ilt-sil-b {
  0% { transform: translateY(0) rotate(1deg) scaleY(1); }
  50% { transform: translateY(-4px) rotate(-1deg) scaleY(1.04); }
  100% { transform: translateY(-1px) rotate(2deg) scaleY(0.97); }
}

.scn-isabella-resolves {
  background: linear-gradient(180deg, #ece4d0 0%, #d0c0a8 100%), radial-gradient(ellipse at 30% 60%, rgba(255,220,160,0.3) 0%, transparent 60%);
}
.scn-isabella-resolves .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a088 0%, #9a8468 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-isabella-resolves .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #e4d4bc 0%, #c4b49c 100%);
}
.scn-isabella-resolves .door {
  position: absolute; bottom: 5%; left: 45%; width: 60px; height: 180px;
  background: linear-gradient(180deg, #5a4a34 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 4px 0 15px rgba(0,0,0,0.3);
  animation: irv-door 6s ease-in-out infinite alternate;
}
.scn-isabella-resolves .handle {
  position: absolute; bottom: 50%; left: 50%; width: 8px; height: 20px;
  background: #b09070;
  border-radius: 4px;
  transform: translate(-10px, -50%);
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: irv-handle 3s ease-in-out infinite alternate;
}
.scn-isabella-resolves .lightstrip {
  position: absolute; bottom: 15%; left: 46%; width: 55px; height: 130px;
  background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, rgba(255,240,200,0.1) 100%);
  filter: blur(10px);
  transform: skewX(3deg);
  animation: irv-strip 5s ease-in-out infinite alternate;
}
.scn-isabella-resolves .figure {
  position: absolute; bottom: 18%; left: 52%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a1a12 0%, #120a06 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%;
  transform: translateX(-50%);
  animation: irv-figure 4s ease-in-out infinite alternate;
}
.scn-isabella-resolves .shadowcast {
  position: absolute; bottom: 8%; left: 48%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.15);
  filter: blur(12px);
  border-radius: 50%;
  animation: irv-shadow 5s ease-in-out infinite alternate;
}
@keyframes irv-door {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.02) translateX(-2px); }
  100% { transform: scaleX(0.98) translateX(2px); }
}
@keyframes irv-handle {
  0% { transform: translate(-10px, -50%) rotate(0deg); }
  50% { transform: translate(-10px, -50%) rotate(-5deg); }
  100% { transform: translate(-10px, -50%) rotate(3deg); }
}
@keyframes irv-strip {
  0% { opacity: 0.6; transform: skewX(3deg) scaleY(1); }
  50% { opacity: 0.9; transform: skewX(1deg) scaleY(1.05); }
  100% { opacity: 0.4; transform: skewX(5deg) scaleY(0.95); }
}
@keyframes irv-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-5px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
}
@keyframes irv-shadow {
  0% { transform: scale(1) translateX(0); opacity: 0.15; }
  50% { transform: scale(1.2) translateX(-3px); opacity: 0.25; }
  100% { transform: scale(0.9) translateX(3px); opacity: 0.1; }
}

.scn-claudio-isabella-confrontation {
  background:
    radial-gradient(ellipse at 60% 50%, rgba(180,120,80,0.3) 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
}
.scn-claudio-isabella-confrontation .cell-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2018 0%, #1a1410 50%, #2a2018 100%);
  animation: sc1-wall 20s ease-in-out infinite alternate;
}
.scn-claudio-isabella-confrontation .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 0 0 10% 10%;
}
.scn-claudio-isabella-confrontation .window-grate {
  position: absolute; top: 10%; left: 65%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: sc1-grate 15s ease-in-out infinite;
}
.scn-claudio-isabella-confrontation .candle-glow {
  position: absolute; bottom: 40%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffc080 0%, #a06030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,192,128,0.4), 0 0 80px 30px rgba(255,192,128,0.15);
  animation: sc1-candle 4s ease-in-out infinite alternate;
}
.scn-claudio-isabella-confrontation .figure-a {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figA 6s ease-in-out infinite;
}
.scn-claudio-isabella-confrontation .figure-b {
  position: absolute; bottom: 25%; right: 25%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1010 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figB 7s ease-in-out infinite;
}
.scn-claudio-isabella-confrontation .shadow-bar {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.4) 50%, transparent);
  animation: sc1-shadow 12s ease-in-out infinite alternate;
}

@keyframes sc1-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sc1-grate { 0% { transform:translateY(0); } 50% { transform:translateY(2px); } 100% { transform:translateY(0); } }
@keyframes sc1-candle { 0% { opacity:0.6; transform:scale(0.95) translateY(0); } 50% { opacity:1; transform:scale(1.05) translateY(-1px); } 100% { opacity:0.7; transform:scale(0.98) translateY(0); } }
@keyframes sc1-figA { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(-2deg); } }
@keyframes sc1-figB { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(2deg); } }
@keyframes sc1-shadow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-claudio-wavers {
  background:
    radial-gradient(ellipse at 40% 50%, rgba(100,130,180,0.2) 0%, transparent 60%),
    linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
}
.scn-claudio-wavers .cell-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #141820 0%, #101218 50%, #141820 100%);
  animation: sc2-wall 12s ease-in-out infinite alternate;
}
.scn-claudio-wavers .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #182028 0%, #0a0e14 100%);
  border-radius: 0 0 8% 8%;
}
.scn-claudio-wavers .lamp-flicker {
  position: absolute; bottom: 35%; left: 50%; width: 24px; height: 36px;
  margin-left: -12px;
  background: radial-gradient(circle, #70b0f0 0%, #305080 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(112,176,240,0.3), 0 0 100px 40px rgba(112,176,240,0.1);
  animation: sc2-lamp 1.5s ease-in-out infinite alternate;
}
.scn-claudio-wavers .figure-claudio {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-claudio 3s ease-in-out infinite;
}
.scn-claudio-wavers .figure-isabella {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121c 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-isabella 4s ease-in-out infinite;
}
.scn-claudio-wavers .chain-link {
  position: absolute; bottom: 10%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 3px;
  animation: sc2-chain 2s ease-in-out infinite;
}
.scn-claudio-wavers .grate-shadow {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.6) 50%, transparent);
  opacity: 0.6;
  animation: sc2-grate-shadow 8s ease-in-out infinite alternate;
}

@keyframes sc2-wall { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes sc2-lamp { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(0.95); } }
@keyframes sc2-claudio { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(3px) rotate(-3deg); } }
@keyframes sc2-isabella { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-3px) rotate(2deg); } }
@keyframes sc2-chain { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(4px) rotate(3deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes sc2-grate-shadow { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-duke-intervenes {
  background:
    radial-gradient(ellipse at 50% 40%, rgba(200,160,100,0.2) 0%, transparent 60%),
    linear-gradient(180deg, #2a2018 0%, #181410 100%);
}
.scn-duke-intervenes .cell-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2218 0%, #1a1410 50%, #2a2218 100%);
  animation: sc3-wall 18s ease-in-out infinite alternate;
}
.scn-duke-intervenes .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #201a14 0%, #120e0a 100%);
  border-radius: 0 0 12% 12%;
}
.scn-duke-intervenes .door-arch {
  position: absolute; top: 5%; left: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: sc3-door 25s ease-in-out infinite;
}
.scn-duke-intervenes .figure-duke {
  position: absolute; bottom: 22%; left: 25%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #1a1816 0%, #0a0808 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-duke 5s ease-in-out infinite;
}
.scn-duke-intervenes .figure-isabella {
  position: absolute; bottom: 22%; right: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-isabella 6s ease-in-out infinite;
}
.scn-duke-intervenes .candle-glow-soft {
  position: absolute; bottom: 38%; left: 55%; width: 18px; height: 24px;
  background: radial-gradient(circle, #ffd0a0 0%, #a07040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,160,0.3), 0 0 60px 20px rgba(255,208,160,0.1);
  animation: sc3-candle 7s ease-in-out infinite alternate;
}
.scn-duke-intervenes .hat-shadow {
  position: absolute; top: 15%; left: 23%; width: 30px; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.5), transparent);
  animation: sc3-hat 4s ease-in-out infinite;
}

@keyframes sc3-wall { 0% { opacity:0.75; } 50% { opacity:0.95; } 100% { opacity:0.8; } }
@keyframes sc3-door { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }
@keyframes sc3-duke { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(1deg); } }
@keyframes sc3-isabella { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(-1deg); } }
@keyframes sc3-candle { 0% { opacity:0.7; transform:scale(0.98); } 50% { opacity:1; transform:scale(1.03); } 100% { opacity:0.8; transform:scale(0.99); } }
@keyframes sc3-hat { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-duke-unfolds-plot {
  background:
    radial-gradient(ellipse at 50% 40%, rgba(200,160,120,0.25) 0%, transparent 60%),
    linear-gradient(180deg, #2a2218 0%, #181410 100%);
}
.scn-duke-unfolds-plot .cell-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2018 0%, #1a1410 50%, #2a2018 100%);
  animation: sc4-wall 15s ease-in-out infinite alternate;
}
.scn-duke-unfolds-plot .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #201a16 0%, #120e0a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-duke-unfolds-plot .table-scroll {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sc4-table 20s ease-in-out infinite;
}
.scn-duke-unfolds-plot .figure-duke {
  position: absolute; bottom: 22%; left: 20%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #1a1816 0%, #0a0808 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-duke 5s ease-in-out infinite;
}
.scn-duke-unfolds-plot .figure-isabella {
  position: absolute; bottom: 22%; right: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-isabella 6s ease-in-out infinite;
}
.scn-duke-unfolds-plot .candle-glow-low {
  position: absolute; bottom: 35%; left: 48%; width: 20px; height: 28px;
  background: radial-gradient(circle, #ffc080 0%, #a06030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 35px 12px rgba(255,192,128,0.3), 0 0 70px 25px rgba(255,192,128,0.1);
  animation: sc4-candle 10s ease-in-out infinite alternate;
}
.scn-duke-unfolds-plot .ink-pot {
  position: absolute; bottom: 14%; left: 55%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  animation: sc4-ink 8s ease-in-out infinite;
}

@keyframes sc4-wall { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes sc4-table { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes sc4-duke { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(1deg); } }
@keyframes sc4-isabella { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(-1deg); } }
@keyframes sc4-candle { 0% { opacity:0.6; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.7; transform:scale(0.98); } }
@keyframes sc4-ink { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(2px) rotate(6deg); } 100% { transform:translateY(0) rotate(-3deg); } }

/* Scene 1: sluice-claudio-fate (dim interior, tense) */
.scn-sluice-claudio-fate {
  background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3a 50%, #1e2230 100%),
              radial-gradient(ellipse at 30% 80%, #3a3e4a 0%, transparent 60%);
}
.scn-sluice-claudio-fate .room-bg {
  position:absolute; inset:0; background:linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%);
  animation: sc-room 10s ease-in-out infinite alternate;
}
.scn-sluice-claudio-fate .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background:linear-gradient(180deg, #3a3e4a 0%, #1e2230 100%);
  border-radius:0 0 10% 10%;
  box-shadow:inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-sluice-claudio-fate .window-glow {
  position:absolute; top:8%; left:35%; width:30%; height:40%;
  background:radial-gradient(ellipse at 50% 50%, rgba(180,200,220,0.3) 0%, transparent 70%);
  animation: sc-window 5s ease-in-out infinite alternate;
}
.scn-sluice-claudio-fate .bars {
  position:absolute; top:5%; left:40%; width:20%; height:50%;
  background:repeating-linear-gradient(0deg, #5a5e6a 0px, #5a5e6a 4px, transparent 4px, transparent 8px);
  box-shadow:inset 0 0 20px rgba(0,0,0,0.6);
  animation: sc-bars 8s ease-in-out infinite alternate;
}
.scn-sluice-claudio-fate .figure-claudio {
  position:absolute; bottom:18%; left:50%; width:12%; height:25%;
  background:linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: sc-figure 4s ease-in-out infinite;
}
.scn-sluice-claudio-fate .candle {
  position:absolute; bottom:20%; left:65%; width:2%; height:8%;
  background:linear-gradient(180deg, #c8a060 0%, #8a6a40 100%);
  border-radius:2px;
  box-shadow:0 0 20px 10px rgba(200,160,96,0.3);
  animation: sc-candle 3s ease-in-out infinite alternate;
}
.scn-sluice-claudio-fate .shadow {
  position:absolute; bottom:18%; left:45%; width:20%; height:10%;
  background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter:blur(8px);
  animation: sc-shadow 6s ease-in-out infinite alternate;
}
@keyframes sc-room { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes sc-window { 0% { opacity:.3; transform:scale(.9) } 50% { opacity:.5; transform:scale(1.05) } 100% { opacity:.35; transform:scale(.95) } }
@keyframes sc-bars { 0% { transform:translateX(0) } 50% { transform:translateX(2px) } 100% { transform:translateX(-1px) } }
@keyframes sc-figure { 0%,100% { transform:translateX(-50%) translateY(0) } 25% { transform:translateX(-45%) translateY(-2px) } 50% { transform:translateX(-50%) translateY(-4px) rotate(2deg) } 75% { transform:translateX(-55%) translateY(-1px) } }
@keyframes sc-candle { 0% { transform:scaleY(1); opacity:.8 } 50% { transform:scaleY(1.05); opacity:1 } 100% { transform:scaleY(.95); opacity:.9 } }
@keyframes sc-shadow { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.5; transform:scale(1.1) } 100% { opacity:.35; transform:scale(.95) } }

/* Scene 2: isabella-pleads-angelo (bright interior, tense) */
.scn-isabella-pleads-angelo {
  background: linear-gradient(180deg, #e8e4d8 0%, #c8c0b0 50%, #a8a090 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 70%);
}
.scn-isabella-pleads-angelo .wall {
  position:absolute; inset:0; background:linear-gradient(180deg, #f0ece0 0%, #d0c8b8 100%);
  animation: ip-wall 12s ease-in-out infinite alternate;
}
.scn-isabella-pleads-angelo .floor-tiles {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background:repeating-conic-gradient(#b8b0a0 0% 25%, #a09888 0% 50%) 0 0 / 40px 40px;
  filter:saturate(0.6);
  animation: ip-floor 20s linear infinite;
}
.scn-isabella-pleads-angelo .window-light {
  position:absolute; top:5%; left:60%; width:25%; height:40%;
  background:radial-gradient(ellipse at 50% 50%, rgba(255,235,200,0.5) 0%, transparent 70%);
  animation: ip-light 5s ease-in-out infinite alternate;
}
.scn-isabella-pleads-angelo .desk {
  position:absolute; bottom:22%; left:40%; width:30%; height:10%;
  background:linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius:4px 4px 2px 2px;
  box-shadow:0 4px 12px rgba(0,0,0,0.3);
  animation: ip-desk 8s ease-in-out infinite alternate;
}
.scn-isabella-pleads-angelo .figure-angelo {
  position:absolute; bottom:20%; left:45%; width:10%; height:30%;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: ip-angelo 6s ease-in-out infinite;
}
.scn-isabella-pleads-angelo .figure-isabella {
  position:absolute; bottom:15%; left:30%; width:8%; height:28%;
  background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: ip-isabella 5s ease-in-out infinite;
}
.scn-isabella-pleads-angelo .papers {
  position:absolute; bottom:27%; left:55%; width:5%; height:3%;
  background:linear-gradient(180deg, #e0d8c8 0%, #c0b8a8 100%);
  border-radius:2px;
  box-shadow:0 2px 4px rgba(0,0,0,0.2);
  animation: ip-papers 10s ease-in-out infinite alternate;
}
@keyframes ip-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ip-floor { 0% { background-position:(0,0) } 100% { background-position:40px 40px } }
@keyframes ip-light { 0% { opacity:.4; transform:scale(.9) } 50% { opacity:.7; transform:scale(1.05) } 100% { opacity:.5; transform:scale(.95) } }
@keyframes ip-desk { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes ip-angelo { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0) } 25% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform:translateX(-50%) translateY(-5px) rotate(-1deg) } 75% { transform:translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes ip-isabella { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0) } 30% { transform:translateX(-50%) translateY(-4px) rotate(2deg) } 60% { transform:translateX(-50%) translateY(-2px) rotate(-2deg) } }
@keyframes ip-papers { 0% { opacity:.7; transform:rotate(-2deg) } 50% { opacity:1; transform:rotate(2deg) } 100% { opacity:.8; transform:rotate(-1deg) } }

/* Scene 3: isabella-implores (bright interior, tense) */
.scn-isabella-implores {
  background: linear-gradient(90deg, #d8d0c0 0%, #c8beb0 50%, #b8aea0 100%),
              radial-gradient(ellipse at 30% 40%, #fff0d0 0%, transparent 60%);
}
.scn-isabella-implores .room-panel {
  position:absolute; inset:0; background:linear-gradient(180deg, #e8e0d0 0%, #c8beb0 100%);
  animation: ii-panel 14s ease-in-out infinite alternate;
}
.scn-isabella-implores .column {
  position:absolute; top:5%; left:25%; width:6%; height:80%;
  background:linear-gradient(90deg, #a09888 0%, #b8aea0 30%, #a09888 70%);
  border-radius:4px;
  box-shadow:4px 0 12px rgba(0,0,0,0.2);
  animation: ii-column 10s ease-in-out infinite alternate;
}
.scn-isabella-implores .lamp {
  position:absolute; top:10%; left:35%; width:4%; height:12%;
  background:linear-gradient(180deg, #c8a060 0%, #8a6a40 100%);
  border-radius:20% 20% 10% 10%;
  box-shadow:0 0 30px 15px rgba(200,160,96,0.4);
  animation: ii-lamp 4s ease-in-out infinite alternate;
}
.scn-isabella-implores .figure-angelo2 {
  position:absolute; bottom:20%; left:45%; width:10%; height:30%;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: ii-angelo 6s ease-in-out infinite;
}
.scn-isabella-implores .figure-isabella2 {
  position:absolute; bottom:15%; left:30%; width:8%; height:28%;
  background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: ii-isabella 5s ease-in-out infinite;
}
.scn-isabella-implores .figure-lucio {
  position:absolute; bottom:18%; left:60%; width:7%; height:26%;
  background:linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  opacity:0.7;
  animation: ii-lucio 7s ease-in-out infinite;
}
.scn-isabella-implores .floor-shadow {
  position:absolute; bottom:15%; left:20%; width:60%; height:5%;
  background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter:blur(10px);
  animation: ii-shadow 8s ease-in-out infinite alternate;
}
@keyframes ii-panel { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes ii-column { 0%,100% { transform:translateX(0) } 50% { transform:translateX(2px) } }
@keyframes ii-lamp { 0% { opacity:.8; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.05) } 100% { opacity:.85; transform:scaleY(.98) } }
@keyframes ii-angelo { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0) } 25% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform:translateX(-50%) translateY(-5px) rotate(-1deg) } 75% { transform:translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes ii-isabella { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0) } 30% { transform:translateX(-50%) translateY(-4px) rotate(2deg) } 60% { transform:translateX(-50%) translateY(-2px) rotate(-2deg) } }
@keyframes ii-lucio { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0); opacity:.6 } 25% { transform:translateX(-50%) translateY(-2px) rotate(-1deg); opacity:.8 } 50% { transform:translateX(-50%) translateY(-4px) rotate(1deg); opacity:.7 } 75% { transform:translateX(-50%) translateY(-1px) rotate(-1deg); opacity:.9 } }
@keyframes ii-shadow { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.5; transform:scale(1.05) } 100% { opacity:.35; transform:scale(.98) } }

/* Scene 4: isabella-rebukes (bright interior, tense) */
.scn-isabella-rebukes {
  background: linear-gradient(180deg, #f0ece0 0%, #d8d0c0 50%, #c0b8a8 100%),
              radial-gradient(ellipse at 50% 10%, #fff8e8 0%, transparent 80%);
}
.scn-isabella-rebukes .backdrop {
  position:absolute; inset:0; background:linear-gradient(180deg, #e8e0d0 0%, #c8beb0 100%);
  animation: ir-backdrop 15s ease-in-out infinite alternate;
}
.scn-isabella-rebukes .steps {
  position:absolute; bottom:10%; left:20%; width:60%; height:15%;
  background:linear-gradient(180deg, #b8aea0 0%, #988e80 100%);
  border-radius:10% 10% 0 0;
  box-shadow:inset 0 8px 12px rgba(0,0,0,0.4);
  animation: ir-steps 12s ease-in-out infinite alternate;
}
.scn-isabella-rebukes .curtain {
  position:absolute; top:0; left:70%; width:30%; height:100%;
  background:linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius:0 0 0 40%;
  box-shadow:-10px 0 20px rgba(0,0,0,0.3);
  animation: ir-curtain 20s ease-in-out infinite alternate;
}
.scn-isabella-rebukes .figure-isabella3 {
  position:absolute; bottom:20%; left:35%; width:10%; height:32%;
  background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: ir-isabella 5s ease-in-out infinite;
}
.scn-isabella-rebukes .figure-angelo3 {
  position:absolute; bottom:18%; left:50%; width:10%; height:28%;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: ir-angelo 6s ease-in-out infinite;
}
.scn-isabella-rebukes .light-rays {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background:linear-gradient(180deg, rgba(255,235,200,0.15) 0%, transparent 100%);
  clip-path:polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ir-rays 8s ease-in-out infinite alternate;
}
.scn-isabella-rebukes .floor {
  position:absolute; bottom:0; left:0; right:0; height:12%;
  background:linear-gradient(180deg, #b8aea0 0%, #988e80 100%);
  box-shadow:inset 0 4px 8px rgba(0,0,0,0.3);
  animation: ir-floor 10s ease-in-out infinite alternate;
}
@keyframes ir-backdrop { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes ir-steps { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes ir-curtain { 0%,100% { transform:translateX(0) } 50% { transform:translateX(-5px) } }
@keyframes ir-isabella { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0) } 30% { transform:translateX(-50%) translateY(-4px) rotate(2deg) } 60% { transform:translateX(-50%) translateY(-2px) rotate(-2deg) } }
@keyframes ir-angelo { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0) } 25% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform:translateX(-50%) translateY(-5px) rotate(-1deg) } 75% { transform:translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes ir-rays { 0% { opacity:.3; transform:scaleX(.95) } 50% { opacity:.5; transform:scaleX(1.05) } 100% { opacity:.35; transform:scaleX(1) } }
@keyframes ir-floor { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.9 } }

/* angelo-sentences-claudio */
.scn-angelo-sentences-claudio {
  background: 
    linear-gradient(180deg, #d4a56a 0%, #b8854a 40%, #8a6232 100%),
    radial-gradient(ellipse at 50% 0%, #e0c080 0%, transparent 60%);
}
.scn-angelo-sentences-claudio .bench { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(0deg, #6a4220 0%, #8a5a30 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-angelo-sentences-claudio .figure-angelo { position:absolute; bottom:28%; left:60%; width:30px; height:60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: an-angelo 2s ease-in-out infinite; }
.scn-angelo-sentences-claudio .figure-angelo::before { content:''; position:absolute; top:-12px; left:50%; width:20px; height:20px; background: #3a2a1a; border-radius: 50%; transform: translateX(-50%); } /* head */
.scn-angelo-sentences-claudio .figure-angelo::after { content:''; position:absolute; top:-20px; left:50%; width:4px; height:30px; background: #2a1a0a; transform: translateX(-50%) rotate(15deg); transform-origin: bottom; } /* raised arm */
.scn-angelo-sentences-claudio .figure-claudio { position:absolute; bottom:18%; left:40%; width:25px; height:45px; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: an-claudio 3s ease-in-out infinite alternate; }
.scn-angelo-sentences-claudio .figure-escalus { position:absolute; bottom:28%; left:75%; width:25px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: an-slight 4s ease-in-out infinite alternate; }
.scn-angelo-sentences-claudio .figure-guard { position:absolute; bottom:20%; left:32%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: an-slight 3.5s ease-in-out infinite alternate-reverse; }
.scn-angelo-sentences-claudio .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%); }
.scn-angelo-sentences-claudio .light-ray { position:absolute; top:0; left:55%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 80%); clip-path: polygon(0 0, 100% 0, 70% 100%, 0% 100%); animation: an-light 3s ease-in-out infinite alternate; }
.scn-angelo-sentences-claudio .dust { position:absolute; top:30%; left:30%; width:60%; height:40%; background: radial-gradient(circle at 20% 30%, rgba(255,255,200,0.08) 0%, transparent 50%); animation: an-dust 8s ease-in-out infinite; }
@keyframes an-angelo { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes an-claudio { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes an-slight { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes an-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes an-dust { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(1); } }

/* constable-elbow-complaint */
.scn-constable-elbow-complaint {
  background: 
    linear-gradient(180deg, #e8d6b0 0%, #c8a86a 60%, #a8844a 100%),
    radial-gradient(ellipse at 20% 50%, #ffe0a0 0%, transparent 60%);
}
.scn-constable-elbow-complaint .wall { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #b88a5a 0%, #d4b080 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; }
.scn-constable-elbow-complaint .figure-angelo-desk { position:absolute; bottom:20%; left:60%; width:50px; height:40px; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom; animation: el-desk 2s ease-in-out infinite; }
.scn-constable-elbow-complaint .figure-angelo-desk::before { content:''; position:absolute; top:-25px; left:50%; width:22px; height:22px; background: #4a3020; border-radius: 50%; transform: translateX(-50%); }
.scn-constable-elbow-complaint .figure-elbow { position:absolute; bottom:18%; left:30%; width:28px; height:50px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: el-elbow 1.8s ease-in-out infinite alternate; }
.scn-constable-elbow-complaint .figure-elbow::before { content:''; position:absolute; top:-20px; left:50%; width:20px; height:20px; background: #5a4030; border-radius: 50%; transform: translateX(-50%); }
.scn-constable-elbow-complaint .figure-elbow::after { content:''; position:absolute; top:-10px; left:-20px; width:30px; height:6px; background: #5a4030; border-radius: 0 50% 50% 0; transform: rotate(-20deg); transform-origin: left; animation: el-point 1.6s ease-in-out infinite alternate; } /* pointing arm */
.scn-constable-elbow-complaint .figure-benefactor1 { position:absolute; bottom:16%; left:15%; width:22px; height:42px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: el-guilty 3s ease-in-out infinite alternate; }
.scn-constable-elbow-complaint .figure-benefactor2 { position:absolute; bottom:16%; left:8%; width:20px; height:40px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: el-guilty 2.5s ease-in-out infinite alternate-reverse; }
.scn-constable-elbow-complaint .speech-bubble-dot { position:absolute; top:32%; left:40%; width:8px; height:8px; background: #3a2a1a; border-radius: 50%; animation: el-dot 1.5s ease-in-out infinite alternate; box-shadow: 16px 0 0 #3a2a1a, 32px 0 0 #3a2a1a; }
.scn-constable-elbow-complaint .confetti-particles { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(circle at 10% 15%, #f0c040 8px, transparent 8px), radial-gradient(circle at 30% 25%, #e0a030 5px, transparent 5px), radial-gradient(circle at 60% 10%, #d09020 10px, transparent 10px), radial-gradient(circle at 80% 20%, #c08010 6px, transparent 6px); background-size: 60px 60px; animation: el-confetti 4s linear infinite; }
@keyframes el-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes el-elbow { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes el-point { 0% { transform: rotate(-30deg); } 100% { transform: rotate(-10deg); } }
@keyframes el-guilty { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes el-dot { 0% { opacity:1; transform: scale(1); } 100% { opacity:0.5; transform: scale(0.8); } }
@keyframes el-confetti { 0% { background-position: 0 0; } 100% { background-position: 60px 60px; } }

/* elbow-wife-accusation */
.scn-elbow-wife-accusation {
  background: 
    linear-gradient(180deg, #dcc8a0 0%, #c0a878 50%, #a88a5a 100%),
    radial-gradient(ellipse at 30% 70%, #f0d8a0 0%, transparent 60%);
}
.scn-elbow-wife-accusation .background-panels { position:absolute; top:0; left:0; right:0; height:100%; background: repeating-linear-gradient(90deg, #b89870 0px, #b89870 4px, transparent 4px, transparent 8px); opacity:0.2; }
.scn-elbow-wife-accusation .figure-elbow-close { position:absolute; bottom:20%; left:35%; width:50px; height:80px; background: linear-gradient(180deg, #6a5040 0%, #4a3820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ew-elbow 2s ease-in-out infinite alternate; }
.scn-elbow-wife-accusation .figure-elbow-close::before { content:''; position:absolute; top:-30px; left:50%; width:30px; height:30px; background: #5a4830; border-radius: 50%; transform: translateX(-50%); }
.scn-elbow-wife-accusation .figure-wife-silhouette { position:absolute; bottom:22%; right:30%; width:30px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: ew-wife 3s ease-in-out infinite alternate-reverse; }
.scn-elbow-wife-accusation .hand-gesture { position:absolute; bottom:55%; left:45%; width:10px; height:16px; background: #5a4030; border-radius: 50% 50% 0 0; transform: rotate(20deg); animation: ew-hand 2.1s ease-in-out infinite alternate; box-shadow: 8px 8px 0 #5a4030; }
.scn-elbow-wife-accusation .question-marks { position:absolute; top:25%; left:20%; width:20px; height:30px; background: radial-gradient(circle at 50% 30%, #4a3020 6px, transparent 6px), radial-gradient(circle at 70% 60%, #4a3020 5px, transparent 5px); background-size: 20px 30px; animation: ew-q 2s ease-in-out infinite alternate; }
.scn-elbow-wife-accusation .spotlight { position:absolute; top:10%; left:25%; width:50%; height:80%; background: radial-gradient(ellipse at 50% 0%, rgba(255,235,180,0.25) 0%, transparent 70%); animation: ew-spot 5s ease-in-out infinite alternate; }
@keyframes ew-elbow { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ew-wife { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes ew-hand { 0% { transform: rotate(10deg); } 100% { transform: rotate(30deg); } }
@keyframes ew-q { 0% { opacity:0.3; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.9); } }
@keyframes ew-spot { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }

/* froth-and-prunes */
.scn-froth-and-prunes {
  background: 
    linear-gradient(180deg, #dbbc88 0%, #b89860 50%, #987848 100%),
    radial-gradient(ellipse at 50% 30%, #e8c888 0%, transparent 50%);
}
.scn-froth-and-prunes .table { position:absolute; bottom:15%; left:20%; right:20%; height:12%; background: linear-gradient(0deg, #7a5a30 0%, #9a7a4a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.2); }
.scn-froth-and-prunes .dish-prunes { position:absolute; bottom:28%; left:40%; width:30px; height:20px; background: radial-gradient(circle at 50% 50%, #3a2a1a 0%, #1a1008 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: fp-dish 2s ease-in-out infinite alternate; }
.scn-froth-and-prunes .dish-prunes::before { content:''; position:absolute; top:5px; left:5px; width:6px; height:6px; background: #2a1a0a; border-radius: 50%; box-shadow: 8px 0 0 #2a1a0a, 4px 8px 0 #2a1a0a; } /* prunes */
.scn-froth-and-prunes .figure-froth { position:absolute; bottom:22%; left:30%; width:25px; height:45px; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fp-froth 2.4s ease-in-out infinite alternate; }
.scn-froth-and-prunes .figure-froth::before { content:''; position:absolute; top:-15px; left:50%; width:18px; height:18px; background: #4a3020; border-radius: 50%; transform: translateX(-50%); }
.scn-froth-and-prunes .figure-pompey { position:absolute; bottom:22%; right:30%; width:30px; height:50px; background: linear-gradient(180deg, #4a3820 0%, #2a1a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: fp-pompey 1.5s ease-in-out infinite alternate-reverse; }
.scn-froth-and-prunes .figure-pompey::before { content:''; position:absolute; top:-18px; left:50%; width:20px; height:20px; background: #3a2818; border-radius: 50%; transform: translateX(-50%); }
.scn-froth-and-prunes .mug { position:absolute; bottom:25%; left:20%; width:12px; height:18px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: fp-mug 3s ease-in-out infinite alternate; }
.scn-froth-and-prunes .mug::before { content:''; position:absolute; top:2px; left:-6px; width:6px; height:6px; background: #6a4a2a; border-radius: 0 50% 50% 0; } /* handle */
.scn-froth-and-prunes .steam { position:absolute; bottom:35%; left:35%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(255,255,200,0.1) 0%, transparent 70%); filter: blur(4px); animation: fp-steam 4s linear infinite; }
.scn-froth-and-prunes .chair { position:absolute; bottom:10%; left:25%; width:20px; height:25px; background: linear-gradient(0deg, #5a3a20 0%, #7a5a30 100%); border-radius: 10% 10% 0 0; transform-origin: bottom; animation: fp-chair 2s ease-in-out infinite alternate; }
.scn-froth-and-prunes .chair::before { content:''; position:absolute; top:-15px; left:-2px; width:24px; height:4px; background: #7a5a30; border-radius: 2px; } /* back */
@keyframes fp-dish { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fp-froth { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes fp-pompey { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes fp-mug { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes fp-steam { 0% { opacity:0; transform: translateY(0) scale(1); } 50% { opacity:0.3; transform: translateY(-20px) scale(1.2); } 100% { opacity:0; transform: translateY(-40px) scale(1.5); } }
@keyframes fp-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-isabella-offers-prayers {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d5aa 30%, #c8a97a 60%, #8b6f4a 100%),
    radial-gradient(ellipse at 60% 10%, #fce4c0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-isabella-offers-prayers .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d5aa 0%, #c8a97a 50%, #a8855a 100%);
  border-radius: 0 0 20% 20% / 0 0 8% 8%; opacity: 0.7;
}
.scn-isabella-offers-prayers .window-out {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #fce4c0 0%, #ffe8b0 40%, #ffd58a 70%, #e8b070 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px #ffe8b0;
  animation: ip-sky 14s ease-in-out infinite alternate;
}
.scn-isabella-offers-prayers .window-light {
  position: absolute; top: 12%; left: 38%; width: 24%; height: 36%;
  background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, rgba(255,248,224,0) 70%);
  filter: blur(8px); animation: ip-glow 5s ease-in-out infinite alternate;
}
.scn-isabella-offers-prayers .altar {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #a8855a 0%, #6b5035 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-isabella-offers-prayers .figure-kneeling {
  position: absolute; bottom: 8%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ip-bow 6s ease-in-out infinite;
}
.scn-isabella-offers-prayers .candle-a,
.scn-isabella-offers-prayers .candle-b {
  position: absolute; bottom: 18%; width: 6px; height: 26px;
  background: linear-gradient(180deg, #f0d090 0%, #d0a060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #ffd080;
  animation: ip-flicker 2s ease-in-out infinite alternate;
}
.scn-isabella-offers-prayers .candle-a { left: 45%; }
.scn-isabella-offers-prayers .candle-b { left: 54%; animation-delay: 0.5s; }
.scn-isabella-offers-prayers .rays {
  position: absolute; top: 8%; left: 10%; width: 80%; height: 50%;
  background: repeating-linear-gradient(45deg, rgba(255,240,180,0.3) 0px, rgba(255,240,180,0) 20px, rgba(255,240,180,0.3) 40px);
  filter: blur(2px); opacity: 0.5;
  animation: ip-rays 12s linear infinite;
}
@keyframes ip-sky { 0% { background: linear-gradient(180deg, #fce4c0 0%, #ffe8b0 40%, #ffd58a 70%, #e8b070 100%); } 50% { background: linear-gradient(180deg, #ffe8b0 0%, #fff0c0 40%, #ffd58a 70%, #e8b070 100%); } 100% { background: linear-gradient(180deg, #fce4c0 0%, #ffe8b0 40%, #ffd58a 70%, #e8b070 100%); } }
@keyframes ip-glow { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes ip-bow { 0% { transform: translateX(-2px) rotate(-2deg) scaleY(1); } 50% { transform: translateX(2px) rotate(2deg) scaleY(0.95); } 100% { transform: translateX(-2px) rotate(-2deg) scaleY(1); } }
@keyframes ip-flicker { 0% { height: 24px; opacity: 0.8; } 50% { height: 28px; opacity: 1; } 100% { height: 24px; opacity: 0.8; } }
@keyframes ip-rays { 0% { background-position: 0 0; } 100% { background-position: 200% 0; } }

.scn-angelo-agonizes {
  background:
    linear-gradient(180deg, #d9d9d9 0%, #b8b8b8 40%, #8c8c8c 80%, #595959 100%),
    radial-gradient(ellipse at 80% 20%, #e6e6e6 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-angelo-agonizes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a6a6a6 0%, #737373 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: aa-floor 10s ease-in-out infinite alternate;
}
.scn-angelo-agonizes .wall-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #b3b3b3 30%, #404040 100%);
  filter: blur(2px); opacity: 0.6;
}
.scn-angelo-agonizes .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40px;
  background: linear-gradient(180deg, #5c4a3a 0%, #3b2e24 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: aa-desk 8s ease-in-out infinite;
}
.scn-angelo-agonizes .chair {
  position: absolute; bottom: 18%; left: 60%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3b2e 0%, #2a1f16 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 8% 8%;
  transform-origin: bottom center;
  animation: aa-chair 7s ease-in-out infinite alternate;
}
.scn-angelo-agonizes .figure-standing {
  position: absolute; bottom: 23%; left: 42%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0f0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: aa-stand 6s ease-in-out infinite;
}
.scn-angelo-agonizes .window-slash {
  position: absolute; top: 8%; right: 8%; width: 25%; height: 50%;
  background: linear-gradient(45deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.1) 60%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  filter: blur(3px); opacity: 0.4;
  animation: aa-slash 5s ease-in-out infinite alternate;
}
.scn-angelo-agonizes .paper {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 20px;
  background: #f0e0c0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: aa-paper 9s ease-in-out infinite;
}
@keyframes aa-floor { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes aa-desk { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes aa-chair { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(2deg) scale(0.98); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes aa-stand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aa-slash { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes aa-paper { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(2px, -2px) rotate(3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }

.scn-friar-visits-juliet {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1f1f30 40%, #14141e 80%, #0a0a12 100%),
    radial-gradient(ellipse at 40% 60%, #3a3a5a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-friar-visits-juliet .cell-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a3a4e 0%, #1e1e2e 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0; opacity: 0.5;
}
.scn-friar-visits-juliet .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3a 100%);
  border-radius: 30% 30% 0 0; opacity: 0.7;
}
.scn-friar-visits-juliet .window-bar {
  position: absolute; top: 12%; right: 8%; width: 30%; height: 35%;
  border: 4px solid #6a6a7e; background: #1a1a2e;
  border-radius: 4px; box-shadow: inset 0 0 20px #4a4a5e;
  animation: fv-bar 12s ease-in-out infinite alternate;
}
.scn-friar-visits-juliet .lantern {
  position: absolute; top: 20%; left: 30%; width: 20px; height: 30px;
  background: radial-gradient(circle, #c09640 0%, #5a3a1a 70%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px #a08030;
  animation: fv-lantern 4s ease-in-out infinite alternate;
}
.scn-friar-visits-juliet .figure-friar {
  position: absolute; bottom: 15%; left: 18%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fv-friar 8s ease-in-out infinite;
}
.scn-friar-visits-juliet .figure-prisoner {
  position: absolute; bottom: 12%; left: 60%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fv-prisoner 10s ease-in-out infinite;
}
.scn-friar-visits-juliet .stool {
  position: absolute; bottom: 8%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fv-stool 15s ease-in-out infinite;
}
@keyframes fv-bar { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes fv-lantern { 0% { transform: rotate(-2deg) scale(1); box-shadow: 0 0 20px 8px #a08030; } 50% { transform: rotate(2deg) scale(1.05); box-shadow: 0 0 40px 15px #b09040; } 100% { transform: rotate(-2deg) scale(1); box-shadow: 0 0 20px 8px #a08030; } }
@keyframes fv-friar { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fv-prisoner { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes fv-stool { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }

.scn-angelo-tempts-isabella {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 40%, #050510 80%, #000005 100%),
    radial-gradient(ellipse at 30% 40%, #2a2a4e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-angelo-tempts-isabella .room-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1e32 0%, #0a0a1a 100%);
  opacity: 0.8;
}
.scn-angelo-tempts-isabella .door {
  position: absolute; top: 10%; left: 65%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4% 4% 0 0; border: 2px solid #5a4a3e; box-shadow: inset -6px 0 12px rgba(0,0,0,0.6);
  animation: at-door 12s ease-in-out infinite alternate;
}
.scn-angelo-tempts-isabella .candle {
  position: absolute; bottom: 25%; left: 25%; width: 8px; height: 32px;
  background: linear-gradient(180deg, #f0c060 0%, #a07030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px #d09040;
  animation: at-candle 3s ease-in-out infinite alternate;
}
.scn-angelo-tempts-isabella .figure-angelo {
  position: absolute; bottom: 15%; left: 40%; width: 26px; height: 84px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0f0f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-angelo 5s ease-in-out infinite;
}
.scn-angelo-tempts-isabella .figure-isabel-silhouette {
  position: absolute; bottom: 10%; left: 70%; width: 20px; height: 60px;
  background: #0a0a12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7; filter: blur(1px);
  animation: at-isabel 8s ease-in-out infinite;
}
.scn-angelo-tempts-isabella .shadow-band {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%);
  filter: blur(6px);
  animation: at-shadow 10s ease-in-out infinite alternate;
}
.scn-angelo-tempts-isabella .light-pool {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,150,80,0.3) 0%, rgba(200,150,80,0) 70%);
  filter: blur(10px);
  animation: at-pool 6s ease-in-out infinite alternate;
}
@keyframes at-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes at-candle { 0% { height: 30px; opacity: 0.7; } 50% { height: 34px; opacity: 1; } 100% { height: 30px; opacity: 0.7; } }
@keyframes at-angelo { 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 at-isabel { 0% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-2px); } 100% { opacity: 0.5; transform: translateY(0); } }
@keyframes at-shadow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes at-pool { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }

/* Scene: isabella-mariana-final */
.scn-isabella-mariana-final {
  background:
    linear-gradient(180deg, #2c1a3a 0%, #5a2a3a 30%, #b87d4a 60%, #e8b86a 80%, #f0d090 100%),
    radial-gradient(ellipse at 50% 80%, #f0c080 0%, transparent 70%);
}
.scn-isabella-mariana-final .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2c1a3a 0%, #4a2a4a 40%, #6a3a5a 100%); animation: imf-sky 12s ease-in-out infinite alternate; }
.scn-isabella-mariana-final .gate-arch { position:absolute; bottom:30%; left:50%; width:160px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, #2a2a3a 70%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.6); animation: imf-gate 8s ease-in-out infinite alternate; }
.scn-isabella-mariana-final .wall-left { position:absolute; bottom:20%; left:5%; width:25%; height:60%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset -8px 0 15px rgba(0,0,0,.5); animation: imf-wall 15s ease-in-out infinite; }
.scn-isabella-mariana-final .wall-right { position:absolute; bottom:20%; right:5%; width:25%; height:60%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 8px 0 15px rgba(0,0,0,.5); animation: imf-wall 15s ease-in-out infinite reverse; }
.scn-isabella-mariana-final .street { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.4); animation: imf-street 5s ease-in-out infinite alternate; }
.scn-isabella-mariana-final .figure.isabella { position:absolute; bottom:18%; left:35%; width:22px; 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: imf-walk1 4s ease-in-out infinite; }
.scn-isabella-mariana-final .figure.mariana { position:absolute; bottom:18%; left:55%; width:22px; height:38px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: imf-walk2 4s ease-in-out infinite 0.5s; }
.scn-isabella-mariana-final .dawn-glow { position:absolute; bottom:40%; left:30%; right:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, #f0c080 0%, transparent 70%); opacity:0.6; animation: imf-glow 6s ease-in-out infinite alternate; }
@keyframes imf-sky   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes imf-gate  { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes imf-wall  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes imf-street{ 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes imf-walk1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes imf-walk2 { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-4px) rotate(2deg) } 50% { transform: translateX(-8px) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes imf-glow  { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

/* Scene: duke-reveals-justice */
.scn-duke-reveals-justice {
  background:
    linear-gradient(180deg, #a0c8e0 0%, #c8e0f0 30%, #f0e0c0 60%, #ffe8b0 100%),
    radial-gradient(ellipse at 70% 20%, #fff0d0 0%, transparent 60%);
}
.scn-duke-reveals-justice .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #80b0d0 0%, #b0d8f0 100%); animation: drj-sky 15s ease-in-out infinite alternate; }
.scn-duke-reveals-justice .sun { position:absolute; top:10%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #ffd060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,96,.3); animation: drj-sun 9s ease-in-out infinite; }
.scn-duke-reveals-justice .bg-building { position:absolute; bottom:20%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #c0b8a0 0%, #a09880 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); animation: drj-build 20s ease-in-out infinite alternate; }
.scn-duke-reveals-justice .duke-figure { position:absolute; bottom:22%; left:50%; width:30px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: drj-duke 6s ease-in-out infinite; }
.scn-duke-reveals-justice .mariana-veiled { position:absolute; bottom:22%; left:40%; width:22px; height:42px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: drj-mariana 5s ease-in-out infinite 1s; }
.scn-duke-reveals-justice .isabella-figure { position:absolute; bottom:22%; right:40%; width:20px; height:40px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: drj-isabella 5s ease-in-out infinite 0.5s; }
.scn-duke-reveals-justice .crowd-silhouettes { position:absolute; bottom:18%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, transparent 0%, #2a2a3a 80%); mask-image: radial-gradient(ellipse 30px 30px at 20% 50%, black 0%, transparent 100%), radial-gradient(ellipse 30px 30px at 40% 50%, black 0%, transparent 100%), radial-gradient(ellipse 30px 30px at 60% 50%, black 0%, transparent 100%), radial-gradient(ellipse 30px 30px at 80% 50%, black 0%, transparent 100%); mask-composite: add; animation: drj-crowd 4s ease-in-out infinite alternate; }
@keyframes drj-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes drj-sun    { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes drj-build  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes drj-duke   { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(1deg) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-50%) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes drj-mariana{ 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes drj-isabella{ 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes drj-crowd  { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }

/* Scene: isabella-accuses-angelo */
.scn-isabella-accuses-angelo {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 30%, #c0a880 60%, #908060 100%),
    radial-gradient(ellipse at 60% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-isabella-accuses-angelo .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0d8e0 0%, #e0e8f0 100%); animation: iaa-sky 10s ease-in-out infinite alternate; }
.scn-isabella-accuses-angelo .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #a09080 0%, #807060 100%); animation: iaa-ground 5s ease-in-out infinite alternate; }
.scn-isabella-accuses-angelo .duke-throne { position:absolute; bottom:20%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 10px rgba(0,0,0,.5); animation: iaa-throne 7s ease-in-out infinite; }
.scn-isabella-accuses-angelo .isabella-kneeling { position:absolute; bottom:12%; left:45%; width:20px; height:35px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: iaa-kneel 4s ease-in-out infinite; }
.scn-isabella-accuses-angelo .angelo-standing { position:absolute; bottom:18%; right:25%; width:25px; height:48px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: iaa-angelo 3s ease-in-out infinite; }
.scn-isabella-accuses-angelo .crowd-guards { position:absolute; bottom:15%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, transparent 0%, #2a2a3a 90%); mask-image: linear-gradient(90deg, black 20%, transparent 30%, black 40%, transparent 50%, black 60%, transparent 70%, black 80%); mask-size: 100% 100%; animation: iaa-crowd 6s ease-in-out infinite alternate; }
.scn-isabella-accuses-angelo .shadow-layer { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); animation: iaa-shadow 8s ease-in-out infinite alternate; }
@keyframes iaa-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes iaa-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes iaa-throne { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes iaa-kneel  { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes iaa-angelo { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes iaa-crowd  { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes iaa-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.4 } }

/* Scene: isabella-press-accusations */
.scn-isabella-press-accusations {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 30%, #b0a088 60%, #807060 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%);
}
.scn-isabella-press-accusations .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c0d8e0 0%, #e0e8f0 100%); animation: ipa-sky 12s ease-in-out infinite alternate; }
.scn-isabella-press-accusations .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #908070 0%, #706050 100%); animation: ipa-ground 6s ease-in-out infinite alternate; }
.scn-isabella-press-accusations .isabella-gesturing { position:absolute; bottom:15%; left:30%; width:22px; height:42px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ipa-isabella 3.5s ease-in-out infinite; }
.scn-isabella-press-accusations .angelo-defensive { position:absolute; bottom:18%; right:30%; width:25px; height:48px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ipa-angelo 4s ease-in-out infinite 0.5s; }
.scn-isabella-press-accusations .pillar-left { position:absolute; bottom:10%; left:8%; width:12px; height:70%; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 15px rgba(0,0,0,.3); animation: ipa-pillar 20s ease-in-out infinite alternate; }
.scn-isabella-press-accusations .pillar-right { position:absolute; bottom:10%; right:8%; width:12px; height:70%; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 15px rgba(0,0,0,.3); animation: ipa-pillar 20s ease-in-out infinite alternate reverse; }
.scn-isabella-press-accusations .spotlight { position:absolute; bottom:20%; left:40%; right:40%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(255,224,160,0.4) 0%, transparent 70%); animation: ipa-spot 5s ease-in-out infinite alternate; }
@keyframes ipa-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ipa-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes ipa-isabella{ 0% { transform: translateY(0) rotate(-4deg) scaleY(1) } 25% { transform: translateY(-3px) rotate(2deg) scaleY(1.02) } 50% { transform: translateY(0) rotate(4deg) scaleY(1) } 75% { transform: translateY(-2px) rotate(-2deg) scaleY(1.01) } 100% { transform: translateY(0) rotate(-3deg) scaleY(1) } }
@keyframes ipa-angelo { 0% { transform: translateY(0) rotate(3deg) } 50% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ipa-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes ipa-spot   { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

.scn-mariana-revealed {
  background:
    linear-gradient(180deg, #ffe5b4 0%, #c7a87b 40%, #8b6f47 100%),
    radial-gradient(ellipse at 30% 20%, #ffddaa 0%, transparent 60%);
}

.scn-mariana-revealed .throne {
  position: absolute;
  bottom: 15%;
  left: 25%;
  width: 40%;
  height: 50%;
  background: linear-gradient(135deg, #c9a97a 0%, #8b6f47 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: mr-throne 7s ease-in-out infinite alternate;
}

.scn-mariana-revealed .figure-friar {
  position: absolute;
  bottom: 12%;
  left: 12%;
  width: 12%;
  height: 35%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mr-figure 3s ease-in-out infinite;
}

.scn-mariana-revealed .figure-duke {
  position: absolute;
  bottom: 18%;
  right: 15%;
  width: 18%;
  height: 45%;
  background: linear-gradient(180deg, #4f3526 0%, #2b1b12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: mr-figure 4s ease-in-out infinite 1s;
}

.scn-mariana-revealed .woman {
  position: absolute;
  bottom: 10%;
  left: 38%;
  width: 10%;
  height: 30%;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: brightness(0.8);
  animation: mr-woman 5s ease-in-out infinite alternate;
}

.scn-mariana-revealed .window {
  position: absolute;
  top: 12%;
  right: 20%;
  width: 16%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 40%, #fff9e6 0%, #d4b87a 70%, #a08050 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px #fff3cc, 0 0 40px #fff3cc;
  animation: mr-glow 6s ease-in-out infinite alternate;
}

.scn-mariana-revealed .light-shaft {
  position: absolute;
  top: 8%;
  right: 18%;
  width: 8%;
  height: 60%;
  background: linear-gradient(180deg, rgba(255,249,230,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: mr-shaft 8s ease-in-out infinite alternate;
}

.scn-mariana-revealed .shadow-arc {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: mr-shadow 10s ease-in-out infinite alternate;
}

.scn-mariana-revealed .curtain {
  position: absolute;
  top: 0;
  left: 0;
  width: 12%;
  height: 100%;
  background: linear-gradient(180deg, #8b3a2a 0%, #4a1e12 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  filter: saturate(0.7); /* not crimson - use desaturated red */
  animation: mr-curtain 12s ease-in-out infinite alternate;
}

@keyframes mr-throne {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}

@keyframes mr-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(3px) rotate(1deg); }
  60% { transform: translateX(-1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes mr-woman {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(2px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}

@keyframes mr-glow {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px #fff3cc, 0 0 30px #fff3cc; }
  50% { opacity: 1; box-shadow: inset 0 0 40px #fff3cc, 0 0 60px #fff3cc; }
  100% { opacity: 0.9; box-shadow: inset 0 0 25px #fff3cc, 0 0 35px #fff3cc; }
}

@keyframes mr-shaft {
  0% { opacity: 0.2; transform: skewX(-2deg); }
  50% { opacity: 0.5; transform: skewX(2deg); }
  100% { opacity: 0.2; transform: skewX(-2deg); }
}

@keyframes mr-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

@keyframes mr-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}

/* --------------------------------------------------------------------- */

.scn-angelo-exposed {
  background:
    linear-gradient(180deg, #ffe0b0 0%, #cfa87a 40%, #8a6a3e 100%),
    radial-gradient(ellipse at 60% 20%, #ffe8c0 0%, transparent 60%);
}

.scn-angelo-exposed .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 25%;
  background: linear-gradient(180deg, #ba9a72 0%, #8a6a3e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ae-floor 8s ease-in-out infinite alternate;
}

.scn-angelo-exposed .figure-angelo {
  position: absolute;
  bottom: 12%;
  left: 20%;
  width: 18%;
  height: 55%;
  background: linear-gradient(180deg, #3b2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ae-figure 3s ease-in-out infinite;
}

.scn-angelo-exposed .figure-lucio {
  position: absolute;
  bottom: 12%;
  right: 25%;
  width: 16%;
  height: 50%;
  background: linear-gradient(180deg, #4a332a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: ae-figure 4s ease-in-out infinite 1s;
}

.scn-angelo-exposed .paper {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 12%;
  height: 18%;
  background: linear-gradient(180deg, #fff8e0 0%, #e8d4a8 100%);
  border-radius: 4%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: ae-paper 5s ease-in-out infinite alternate;
}

.scn-angelo-exposed .chandelier {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 30%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 80%, #d4a85a 0%, #a07848 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px #d4a85a;
  animation: ae-chandelier 7s ease-in-out infinite alternate;
}

.scn-angelo-exposed .spotlight {
  position: absolute;
  top: 0;
  left: 30%;
  width: 40%;
  height: 80%;
  background: linear-gradient(180deg, rgba(255,234,204,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: ae-spotlight 6s ease-in-out infinite alternate;
}

.scn-angelo-exposed .shadow-back {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: ae-shadow 10s ease-in-out infinite alternate;
}

.scn-angelo-exposed .column {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 6%;
  height: 70%;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a3e 100%);
  border-radius: 4%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
  animation: ae-column 9s ease-in-out infinite alternate;
}

@keyframes ae-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(1); }
}

@keyframes ae-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes ae-paper {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(1); }
}

@keyframes ae-chandelier {
  0% { transform: translateX(0) rotate(0deg); filter: brightness(1); }
  50% { transform: translateX(5px) rotate(2deg); filter: brightness(1.1); }
  100% { transform: translateX(0) rotate(0deg); filter: brightness(1); }
}

@keyframes ae-spotlight {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

@keyframes ae-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

@keyframes ae-column {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(1); }
}

/* --------------------------------------------------------------------- */

.scn-duke-reveals-himself {
  background:
    linear-gradient(180deg, #fff2d6 0%, #d4b88a 50%, #a0805a 100%),
    radial-gradient(ellipse at 40% 30%, #ffe8c0 0%, transparent 70%);
}

.scn-duke-reveals-himself .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #e8d4b4 0%, #c0a884 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
  animation: dr-wall 8s ease-in-out infinite alternate;
}

.scn-duke-reveals-himself .figure-duke {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 20%;
  height: 60%;
  background: linear-gradient(180deg, #4a3020 0%, #1e1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dr-duke 4s ease-in-out infinite;
}

.scn-duke-reveals-himself .cloak {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%;
  filter: drop-shadow(4px 4px 8px rgba(0,0,0,0.3));
  animation: dr-cloak 5s ease-in-out infinite alternate;
}

.scn-duke-reveals-himself .halo {
  position: absolute;
  top: 5%;
  left: 38%;
  width: 24%;
  height: 30%;
  background: radial-gradient(circle, rgba(255,235,190,0.8) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(10px);
  animation: dr-halo 7s ease-in-out infinite alternate;
}

.scn-duke-reveals-himself .figure-lucio {
  position: absolute;
  bottom: 10%;
  left: 8%;
  width: 14%;
  height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: dr-lucio 6s ease-in-out infinite;
}

.scn-duke-reveals-himself .figure-escalus {
  position: absolute;
  bottom: 12%;
  right: 10%;
  width: 14%;
  height: 40%;
  background: linear-gradient(180deg, #4a332a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dr-escalus 5s ease-in-out infinite 2s;
}

.scn-duke-reveals-himself .pillar {
  position: absolute;
  bottom: 5%;
  left: 50%;
  width: 6%;
  height: 80%;
  background: linear-gradient(180deg, #d0b89a 0%, #a0805a 100%);
  border-radius: 4%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: dr-pillar 9s ease-in-out infinite alternate;
}

@keyframes dr-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes dr-duke {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes dr-cloak {
  0% { transform: skewX(0deg) scale(1); }
  50% { transform: skewX(-2deg) scale(1.02); }
  100% { transform: skewX(0deg) scale(1); }
}

@keyframes dr-halo {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(1); }
}

@keyframes dr-lucio {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(-2deg); }
  60% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes dr-escalus {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(2px) rotate(1deg); }
  80% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes dr-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(1); }
}

/* --------------------------------------------------------------------- */

.scn-duke-unmasks {
  background:
    linear-gradient(180deg, #ffe5c4 0%, #d4b88a 50%, #a0805a 100%),
    radial-gradient(ellipse at 50% 20%, #ffeecc 0%, transparent 60%);
}

.scn-duke-unmasks .bg-room {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #dfcbb0 0%, #b89c7a 100%);
  animation: du-room 9s ease-in-out infinite alternate;
}

.scn-duke-unmasks .figure-duke {
  position: absolute;
  bottom: 12%;
  left: 30%;
  width: 22%;
  height: 65%;
  background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: du-duke 3s ease-in-out infinite;
}

.scn-duke-unmasks .mask {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 8%;
  height: 12%;
  background: linear-gradient(180deg, #8a6a3e 0%, #5a3a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: du-mask 4s ease-in-out infinite alternate;
}

.scn-duke-unmasks .figure-lucio {
  position: absolute;
  bottom: 10%;
  right: 20%;
  width: 16%;
  height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: du-lucio 5s ease-in-out infinite 1s;
}

.scn-duke-unmasks .hand {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 6%;
  height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1e10 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: du-hand 3s ease-in-out infinite alternate;
}

.scn-duke-unmasks .light-beam {
  position: absolute;
  top: 8%;
  left: 40%;
  width: 20%;
  height: 60%;
  background: linear-gradient(180deg, rgba(255,238,204,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: du-beam 7s ease-in-out infinite alternate;
}

.scn-duke-unmasks .shadow-ground {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: du-shadow 12s ease-in-out infinite alternate;
}

@keyframes du-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes du-duke {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes du-mask {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateY(-3px) rotate(-5deg); opacity: 1; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
}

@keyframes du-lucio {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(4px) rotate(2deg); }
  80% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes du-hand {
  0% { transform: rotate(-20deg) scale(1); }
  50% { transform: rotate(-15deg) scale(1.05); }
  100% { transform: rotate(-20deg) scale(1); }
}

@keyframes du-beam {
  0% { opacity: 0.3; transform: skewX(0deg); }
  50% { opacity: 0.6; transform: skewX(2deg); }
  100% { opacity: 0.3; transform: skewX(0deg); }
}

@keyframes du-shadow {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* Scene 1: street-friar-lucio-banter */
.scn-street-friar-lucio-banter {
  background: linear-gradient(180deg, #87CEEB 0%, #FFD700 70%), radial-gradient(ellipse at 50% 100%, #FFD700 0%, transparent 70%);
}
.scn-street-friar-lucio-banter .sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #B0E0FF 0%, transparent 100%); animation: sflb-sky 10s ease-in-out infinite alternate;
}
.scn-street-friar-lucio-banter .sun {
  position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #FFF5CC 0%, #FFD700 90%); border-radius:50%; box-shadow: 0 0 30px 10px #FFD700; animation: sflb-sun 6s ease-in-out infinite;
}
.scn-street-friar-lucio-banter .buildings {
  position:absolute; bottom:40%; left:0; right:0; height:35%; background: linear-gradient(180deg, #8B7355 0%, #5C4033 100%), repeating-linear-gradient(90deg, transparent 0, transparent 30px, #6B5040 30px, #6B5040 32px); border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: sflb-build 20s ease-in-out infinite;
}
.scn-street-friar-lucio-banter .street {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #C4B69C 0%, #8B7355 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-street-friar-lucio-banter .figure-duke {
  position:absolute; bottom:20%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #2F2F2F 0%, #1A1A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sflb-duke 4s ease-in-out infinite;
}
.scn-street-friar-lucio-banter .figure-lucio {
  position:absolute; bottom:18%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #4A2E1A 0%, #2E1A0A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sflb-lucio 3.5s ease-in-out infinite;
}
.scn-street-friar-lucio-banter .sign {
  position:absolute; bottom:35%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #8B5E3C 0%, #5C3820 100%); border-radius:5px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: sflb-sign 8s ease-in-out infinite;
}
.scn-street-friar-lucio-banter .cloud-a {
  position:absolute; top:10%; left:10%; width:60px; height:20px; 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: sflb-cloud 30s linear infinite;
}
@keyframes sflb-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sflb-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes sflb-build { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sflb-duke { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sflb-lucio { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-3px) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(1deg) } 75% { transform: translateX(3px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes sflb-sign { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes sflb-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(110vw) } }

/* Scene 2: lucio-slanders-duke */
.scn-lucio-slanders-duke {
  background: linear-gradient(180deg, #87CEEB 0%, #FFA500 70%), radial-gradient(circle at 50% 100%, #FFA500 0%, transparent 70%);
}
.scn-lucio-slanders-duke .sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #B0E0FF 0%, transparent 100%); animation: lsd-sky 12s ease-in-out infinite alternate;
}
.scn-lucio-slanders-duke .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #C4B69C 0%, #A89B80 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
}
.scn-lucio-slanders-duke .lucio-body {
  position:absolute; bottom:20%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #4A2E1A 0%, #2E1A0A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lsd-lucio-body 4s ease-in-out infinite;
}
.scn-lucio-slanders-duke .lucio-head {
  position:absolute; bottom:58%; left:30%; width:28px; height:20px; background: linear-gradient(180deg, #D2A679 0%, #B8855A 100%); border-radius: 50% 50% 40% 40%; animation: lsd-lucio-head 4s ease-in-out infinite;
}
.scn-lucio-slanders-duke .duke {
  position:absolute; bottom:15%; left:60%; width:18px; height:45px; background: linear-gradient(180deg, #2F2F2F 0%, #1A1A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lsd-duke 5s ease-in-out infinite;
}
.scn-lucio-slanders-duke .bubble {
  position:absolute; bottom:65%; left:45%; width:80px; height:40px; background: rgba(255,255,255,0.8); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: lsd-bubble 3s ease-in-out infinite alternate;
}
.scn-lucio-slanders-duke .spotlight {
  position:absolute; bottom:45%; left:35%; width:100px; height:80px; background: radial-gradient(ellipse, rgba(255,215,0,0.2) 0%, transparent 70%); animation: lsd-spotlight 8s ease-in-out infinite;
}
@keyframes lsd-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lsd-lucio-body { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes lsd-lucio-head { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lsd-duke { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-5px) } }
@keyframes lsd-bubble { 0% { transform: scale(1) } 50% { transform: scale(1.15) } 100% { transform: scale(1) } }
@keyframes lsd-spotlight { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.6 } }

/* Scene 3: escalu-overdone-arrest */
.scn-escalu-overdone-arrest {
  background: linear-gradient(180deg, #87CEEB 0%, #FFA500 70%), radial-gradient(ellipse at 50% 100%, #FF6600 0%, transparent 70%);
}
.scn-escalu-overdone-arrest .sky {
  position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #B0E0FF 0%, #FFE4B5 100%); animation: eoa-sky 8s ease-in-out infinite alternate;
}
.scn-escalu-overdone-arrest .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #C4B69C 0%, #8B7355 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-escalu-overdone-arrest .overdone {
  position:absolute; bottom:25%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #8B4513 0%, #5C2E0A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: eoa-overdone 2.5s ease-in-out infinite;
}
.scn-escalu-overdone-arrest .officer-left {
  position:absolute; bottom:22%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #4A4A4A 0%, #2B2B2B 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: eoa-officer-l 3s ease-in-out infinite;
}
.scn-escalu-overdone-arrest .officer-right {
  position:absolute; bottom:22%; left:60%; width:20px; height:55px; background: linear-gradient(180deg, #4A4A4A 0%, #2B2B2B 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: eoa-officer-r 3.5s ease-in-out infinite;
}
.scn-escalu-overdone-arrest .chains {
  position:absolute; bottom:40%; left:40%; width:40px; height:4px; background: linear-gradient(90deg, #888 0%, #CCC 50%, #888 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: eoa-chains 2s ease-in-out infinite;
}
.scn-escalu-overdone-arrest .shadow {
  position:absolute; bottom:0; left:25%; right:25%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); animation: eoa-shadow 4s ease-in-out infinite;
}
@keyframes eoa-sky { 0% { opacity:1 } 50% { opacity:0.7 } 100% { opacity:0.9 } }
@keyframes eoa-overdone { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes eoa-officer-l { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes eoa-officer-r { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes eoa-chains { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes eoa-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(1) } }

/* Scene 4: mariana-meets-isabella */
.scn-mariana-meets-isabella {
  background: linear-gradient(180deg, #4B0082 0%, #FF8C00 70%), radial-gradient(ellipse at 50% 100%, #FF8C00 0%, transparent 70%);
}
.scn-mariana-meets-isabella .sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6A5ACD 0%, #FF8C00 100%); animation: mmi-sky 15s ease-in-out infinite alternate;
}
.scn-mariana-meets-isabella .water {
  position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1E3A5F 0%, #0D1B2A 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: mmi-water 20s ease-in-out infinite;
}
.scn-mariana-meets-isabella .grange {
  position:absolute; bottom:35%; left:30%; width:100px; height:80px; background: linear-gradient(180deg, #6B4E3A 0%, #4A3525 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: mmi-grange 12s ease-in-out infinite;
}
.scn-mariana-meets-isabella .door {
  position:absolute; bottom:40%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #8B5E3C 0%, #5C3820 100%); border-radius: 5px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); animation: mmi-door 18s ease-in-out infinite;
}
.scn-mariana-meets-isabella .figure-mariana {
  position:absolute; bottom:25%; left:25%; width:16px; height:38px; background: linear-gradient(180deg, #D2A679 0%, #B8855A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mmi-mariana 6s ease-in-out infinite;
}
.scn-mariana-meets-isabella .figure-duke {
  position:absolute; bottom:25%; left:50%; width:18px; height:40px; background: linear-gradient(180deg, #2F2F2F 0%, #1A1A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: mmi-duke 7s ease-in-out infinite;
}
.scn-mariana-meets-isabella .tree {
  position:absolute; bottom:30%; right:20%; width:8px; height:60px; background: linear-gradient(180deg, #5C4033 0%, #3A2518 100%); border-radius: 2px; transform-origin: bottom center; animation: mmi-tree 9s ease-in-out infinite;
}
@keyframes mmi-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mmi-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mmi-grange { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mmi-door { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mmi-mariana { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes mmi-duke { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes mmi-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }

/* pompey-news */
.scn-pompey-news {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 50%, #F0E68C 100%), radial-gradient(ellipse at 70% 20%, #FFF8DC 0%, transparent 70%);
}
.scn-pompey-news .pn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 60%, #F0E68C 100%);
  animation: pn-sky 30s ease-in-out infinite alternate;
}
.scn-pompey-news .pn-sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, #FF8C00 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.5), 0 0 80px 40px rgba(255,165,0,0.3);
  animation: pn-sun 20s ease-in-out infinite alternate;
}
.scn-pompey-news .pn-building-left {
  position: absolute; bottom: 30%; left: 5%; width: 25%; height: 55%;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -5px 0 15px rgba(0,0,0,0.2);
  animation: pn-building 8s ease-in-out infinite;
}
.scn-pompey-news .pn-building-right {
  position: absolute; bottom: 30%; right: 10%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #BC8F8F 0%, #8B4513 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 5px 0 15px rgba(0,0,0,0.2);
  animation: pn-building 10s ease-in-out infinite reverse;
}
.scn-pompey-news .pn-street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #A0522D 0%, #6B3A20 100%);
  animation: pn-street 5s ease-in-out infinite alternate;
}
.scn-pompey-news .pn-figure-pompey {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4A2F1A 0%, #2B1A0E 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pn-walk 3s ease-in-out infinite;
}
.scn-pompey-news .pn-figure-prisoner {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #5C4033 0%, #3B291D 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pn-walk-reverse 3s ease-in-out infinite;
}
.scn-pompey-news .pn-doorway {
  position: absolute; bottom: 30%; left: 30%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #2F1B0E 0%, #1A0D06 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: pn-doorway 6s ease-in-out infinite alternate;
}
@keyframes pn-sky {
  0% { opacity: 1; }
  50% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes pn-sun {
  0% { transform: translateY(0) scale(1) rotate(0deg); box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); }
  50% { transform: translateY(-5px) scale(1.05) rotate(5deg); box-shadow: 0 0 60px 30px rgba(255,215,0,0.6); }
  100% { transform: translateY(0) scale(1) rotate(0deg); box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); }
}
@keyframes pn-building {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes pn-street {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes pn-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes pn-walk-reverse {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-5px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(-10px) translateY(0) rotate(0deg); }
  75% { transform: translateX(-15px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-20px) translateY(0) rotate(0deg); }
}
@keyframes pn-doorway {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.03); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0.8; }
}

/* provost-claudio-in */
.scn-provost-claudio-in {
  background: linear-gradient(180deg, #2E1C0E 0%, #4A2A1A 30%, #3A2012 60%, #1A0D06 100%), radial-gradient(ellipse at 50% 0%, #6B4A30 0%, transparent 60%);
}
.scn-provost-claudio-in .pci-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #4A2A1A 0%, #2E1C0E 100%);
  animation: pci-wall 20s ease-in-out infinite alternate;
}
.scn-provost-claudio-in .pci-window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #FFF8DC 0%, #FFD700 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(255,215,0,0.5), 0 0 80px 30px rgba(255,215,0,0.2);
  animation: pci-window 8s ease-in-out infinite alternate;
}
.scn-provost-claudio-in .pci-bars {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 25%;
  background: repeating-linear-gradient(0deg, #3B291D 0px, #3B291D 4px, transparent 4px, transparent 12px);
  opacity: 0.8;
  animation: pci-bars 5s ease-in-out infinite;
}
.scn-provost-claudio-in .pci-figure-claudio {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #5C4033 0%, #3B291D 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pci-claudio 4s ease-in-out infinite;
}
.scn-provost-claudio-in .pci-figure-provost {
  position: absolute; bottom: 20%; right: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6B4A30 0%, #4A2A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pci-provost 3s ease-in-out infinite alternate;
}
.scn-provost-claudio-in .pci-tankard {
  position: absolute; bottom: 25%; left: 30%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #A0522D 0%, #6B3A20 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: pci-tankard 2s ease-in-out infinite;
}
.scn-provost-claudio-in .pci-light-beam {
  position: absolute; top: 17%; left: 36%; width: 28%; height: 40%;
  background: linear-gradient(180deg, rgba(255,248,220,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pci-beam 6s ease-in-out infinite alternate;
}
@keyframes pci-wall {
  0% { opacity: 1; }
  50% { opacity: 0.95; }
  100% { opacity: 1; }
}
@keyframes pci-window {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-3px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes pci-bars {
  0% { transform: translateX(0); }
  50% { transform: translateX(1px); }
  100% { transform: translateX(0); }
}
@keyframes pci-claudio {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-1deg); }
  60% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes pci-provost {
  0% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-3px) translateX(5px); }
  100% { transform: translateY(0) translateX(0); }
}
@keyframes pci-tankard {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes pci-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(1); }
}

/* claudio-lament */
.scn-claudio-lament {
  background: linear-gradient(180deg, #0D0D1A 0%, #1A1A2E 40%, #2A1A1A 70%, #1A0D0D 100%), radial-gradient(ellipse at 80% 30%, #3A2A2A 0%, transparent 50%);
}
.scn-claudio-lament .cl-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1A1A2E 0%, #0D0D1A 100%);
  animation: cl-bg 15s ease-in-out infinite alternate;
}
.scn-claudio-lament .cl-stage {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #2A1A1A 0%, #1A0D0D 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: cl-stage 20s ease-in-out infinite;
}
.scn-claudio-lament .cl-figure-claudio {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 25px; height: 60px;
  background: linear-gradient(180deg, #3B2F2F 0%, #1A1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: cl-figure 4s ease-in-out infinite;
}
.scn-claudio-lament .cl-chains {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 80px;
  background: repeating-linear-gradient(0deg, #4A4A4A 0px, #4A4A4A 3px, transparent 3px, transparent 8px);
  transform: translateX(-50%);
  animation: cl-chains 6s ease-in-out infinite alternate;
}
.scn-claudio-lament .cl-shadow {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: cl-shadow 8s ease-in-out infinite;
}
.scn-claudio-lament .cl-spotlight {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,220,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: cl-spotlight 10s ease-in-out infinite alternate;
}
@keyframes cl-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cl-stage {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes cl-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes cl-chains {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes cl-shadow {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-4px); }
  100% { opacity: 0.6; transform: translateY(0); }
}
@keyframes cl-spotlight {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.05); }
  100% { opacity: 0.3; transform: scaleY(1); }
}

/* claudio-explains-case */
.scn-claudio-explains-case {
  background: linear-gradient(180deg, #1A1A2E 0%, #2A1A1A 40%, #3A2A2A 70%, #1A0D0D 100%), radial-gradient(ellipse at 40% 30%, #4A3A2A 0%, transparent 60%);
}
.scn-claudio-explains-case .cec-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2A1A1A 0%, #1A0D0D 100%);
  animation: cec-wall 25s ease-in-out infinite alternate;
}
.scn-claudio-explains-case .cec-bed {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #4A3A2A 0%, #2A1A1A 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: cec-bed 12s ease-in-out infinite;
}
.scn-claudio-explains-case .cec-figure-claudio {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #5C4033 0%, #3B291D 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cec-claudio 4s ease-in-out infinite;
}
.scn-claudio-explains-case .cec-figure-julietta {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6B4A30 0%, #4A2A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cec-julietta 5s ease-in-out infinite alternate;
}
.scn-claudio-explains-case .cec-lamp {
  position: absolute; top: 25%; left: 30%; width: 12px; height: 20px;
  background: radial-gradient(circle, #FFD700 0%, #FF8C00 60%, #D2691E 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,215,0,0.4), 0 0 60px 30px rgba(255,165,0,0.2);
  animation: cec-lamp 3s ease-in-out infinite alternate;
}
.scn-claudio-explains-case .cec-blanket {
  position: absolute; bottom: 5%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%);
  border-radius: 30% 30% 0 0;
  animation: cec-blanket 7s ease-in-out infinite;
}
.scn-claudio-explains-case .cec-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: cec-shadow 10s ease-in-out infinite;
}
@keyframes cec-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cec-bed {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes cec-claudio {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  60% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes cec-julietta {
  0% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-2px) translateX(5px); }
  100% { transform: translateY(0) translateX(0); }
}
@keyframes cec-lamp {
  0% { opacity: 0.8; transform: translateY(0) scale(1); }
  50% { opacity: 1; transform: translateY(-2px) scale(1.05); }
  100% { opacity: 0.8; transform: translateY(0) scale(1); }
}
@keyframes cec-blanket {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.03); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes cec-shadow {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-3px); }
  100% { opacity: 0.5; transform: translateY(0); }
}

.scn-duke-commissioning-angelo { background: linear-gradient(180deg, #f5e8d0 0%, #d4c4a8 40%, #a89878 100%), radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%); }
.scn-duke-commissioning-angelo .palace-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a89878 100%); }
.scn-duke-commissioning-angelo .col-left { position:absolute; left:8%; top:10%; width:6%; height:80%; background: linear-gradient(90deg, #c8b898 0%, #e8dcc8 20%, #d4c4a8 50%, #b8a888 80%, #a09070 100%); border-radius: 8px; box-shadow: 4px 0 12px rgba(0,0,0,.15); animation: dc-col-pulse 8s ease-in-out infinite alternate; }
.scn-duke-commissioning-angelo .col-right { position:absolute; right:8%; top:10%; width:6%; height:80%; background: linear-gradient(90deg, #a09070 0%, #b8a888 20%, #d4c4a8 50%, #e8dcc8 80%, #c8b898 100%); border-radius: 8px; box-shadow: -4px 0 12px rgba(0,0,0,.15); animation: dc-col-pulse 8s ease-in-out infinite alternate-reverse; }
.scn-duke-commissioning-angelo .throne { position:absolute; bottom:18%; left:50%; width:16%; height:32%; transform:translateX(-50%); background: linear-gradient(180deg, #a08050 0%, #806030 40%, #604820 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 8px 24px rgba(0,0,0,.3), inset 0 2px 4px rgba(255,255,200,.15); }
.scn-duke-commissioning-angelo .figure-seated { position:absolute; bottom:18%; left:46%; width:10%; height:28%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dc-seated 6s ease-in-out infinite; }
.scn-duke-commissioning-angelo .figure-standing { position:absolute; bottom:14%; right:32%; width:8%; height:38%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dc-standing 5s ease-in-out infinite; }
.scn-duke-commissioning-angelo .light-ray { position:absolute; top:0; left:30%; width:40%; height:70%; background: linear-gradient(180deg, rgba(255,248,220,.35) 0%, rgba(255,248,220,.1) 60%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%); animation: dc-ray 12s ease-in-out infinite alternate; }
.scn-duke-commissioning-angelo .mosaic-floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: repeating-conic-gradient(#a89878 0% 25%, #b8a888 0% 50%, #c8b898 0% 75%, #b8a888 0% 100%) 0 0 / 60px 60px; opacity:.5; animation: dc-mosaic 20s linear infinite; }
@keyframes dc-col-pulse { 0% { opacity:.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.01); } 100% { opacity:.9; transform:scaleY(1); } }
@keyframes dc-seated { 0% { transform:translateX(0) translateY(0) rotate(-0.5deg); } 50% { transform:translateX(2px) translateY(-2px) rotate(0.5deg); } 100% { transform:translateX(0) translateY(0) rotate(-0.5deg); } }
@keyframes dc-standing { 0% { transform:translateX(0) rotate(0); } 30% { transform:translateX(4px) rotate(1deg); } 60% { transform:translateX(-2px) rotate(-0.5deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes dc-ray { 0% { opacity:.3; transform:skewX(-2deg); } 50% { opacity:.55; transform:skewX(1deg); } 100% { opacity:.35; transform:skewX(-1deg); } }
@keyframes dc-mosaic { 0% { background-position:0 0; } 100% { background-position:60px 60px; } }

.scn-item-commission-papers { background: linear-gradient(180deg, #ecdcc0 0%, #c8b898 40%, #9a8a6a 100%), radial-gradient(ellipse at 40% 30%, #f5e8d0 0%, transparent 70%); }
.scn-item-commission-papers .desk-surface { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-item-commission-papers .paper-stack { position:absolute; bottom:35%; left:38%; width:20%; height:18%; background: linear-gradient(180deg, #f5f0e0 0%, #e0d8c0 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.3), 4px 4px 0 #d0c8a8, 6px 6px 0 #c0b898; transform:rotate(3deg); animation: ip-stack 8s ease-in-out infinite; }
.scn-item-commission-papers .paper-single { position:absolute; bottom:40%; left:42%; width:18%; height:14%; background: linear-gradient(135deg, #fff8e8 0%, #f0e8d0 50%, #e8dcc0 100%); border-radius: 1px; box-shadow: 2px 2px 8px rgba(0,0,0,.2); transform:rotate(-6deg); animation: ip-paper 7s ease-in-out infinite; }
.scn-item-commission-papers .inkwell { position:absolute; bottom:42%; left:50%; width:6%; height:8%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,.4); transform:rotate(2deg); animation: ip-ink 9s ease-in-out infinite alternate; }
.scn-item-commission-papers .hand-left { position:absolute; bottom:36%; left:36%; width:10%; height:16%; background: linear-gradient(180deg, #c8a888 0%, #b89878 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 80% 100%; transform:rotate(-15deg); animation: ip-hand-l 5s ease-in-out infinite; }
.scn-item-commission-papers .hand-right { position:absolute; bottom:36%; right:36%; width:10%; height:16%; background: linear-gradient(180deg, #c8a888 0%, #b89878 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 20% 100%; transform:rotate(15deg); animation: ip-hand-r 6s ease-in-out infinite; }
.scn-item-commission-papers .seal { position:absolute; bottom:38%; left:44%; width:4%; height:4%; background: radial-gradient(circle, #d08060 0%, #a05030 60%, #7a3a20 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(160,80,48,.3); animation: ip-seal 11s ease-in-out infinite; }
.scn-item-commission-papers .bg-window { position:absolute; top:6%; right:8%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #d0e8f0 0%, #a0c0d0 100%); border-radius: 4px; border: 6px solid #8a7a5a; box-shadow: inset 0 0 20px rgba(160,192,208,.5); animation: ip-window 15s ease-in-out infinite alternate; }
@keyframes ip-stack { 0% { transform:rotate(3deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(3deg) translateY(0); } }
@keyframes ip-paper { 0% { transform:rotate(-6deg) translateY(0); } 40% { transform:rotate(-5deg) translateY(-3px); } 80% { transform:rotate(-7deg) translateY(2px); } 100% { transform:rotate(-6deg) translateY(0); } }
@keyframes ip-ink { 0% { transform:rotate(2deg) scaleY(1); } 50% { transform:rotate(0deg) scaleY(1.03); } 100% { transform:rotate(2deg) scaleY(1); } }
@keyframes ip-hand-l { 0% { transform:rotate(-15deg) translateY(0); } 30% { transform:rotate(-12deg) translateY(-4px); } 60% { transform:rotate(-16deg) translateY(2px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes ip-hand-r { 0% { transform:rotate(15deg) translateY(0); } 40% { transform:rotate(18deg) translateY(-3px); } 70% { transform:rotate(13deg) translateY(1px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes ip-seal { 0% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.8; transform:scale(.98); } }
@keyframes ip-window { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.75; } }

.scn-duke-departure-speech { background: linear-gradient(180deg, #d4c8b0 0%, #b8a888 40%, #8a7a5a 100%), radial-gradient(ellipse at 60% 20%, #f0e4d0 0%, transparent 70%); }
.scn-duke-departure-speech .arch-frame { position:absolute; top:0; left:25%; width:50%; height:60%; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 85% 100%, 85% 30%, 50% 10%, 15% 30%, 15% 100%, 0% 100%); box-shadow: 6px 6px 20px rgba(0,0,0,.3); animation: dd-arch 10s ease-in-out infinite alternate; }
.scn-duke-departure-speech .arch-bg { position:absolute; top:2%; left:28%; width:44%; height:52%; background: linear-gradient(180deg, #c0b098 0%, #a09078 100%); clip-path: polygon(2% 2%, 98% 2%, 98% 100%, 2% 100%); }
.scn-duke-departure-speech .doorway-open { position:absolute; top:6%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); animation: dd-door 14s ease-in-out infinite; }
.scn-duke-departure-speech .figure-exit { position:absolute; bottom:18%; left:48%; width:8%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dd-figure 6s ease-in-out infinite; }
.scn-duke-departure-speech .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-conic-gradient(#a09078 0% 25%, #b8a888 0% 50%, #a09078 0% 75%, #8a7a5a 0% 100%) 0 0 / 40px 40px; opacity:.6; animation: dd-tiles 25s linear infinite; }
.scn-duke-departure-speech .shadow-long { position:absolute; bottom:14%; left:38%; width:30%; height:8%; background: linear-gradient(90deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.1) 50%, transparent 100%); border-radius: 50%; transform:rotate(-10deg); filter: blur(4px); animation: dd-shadow 6s ease-in-out infinite; }
.scn-duke-departure-speech .light-beam { position:absolute; top:6%; left:40%; width:20%; height:55%; background: linear-gradient(180deg, rgba(240,232,200,.25) 0%, rgba(240,232,200,.08) 60%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: dd-beam 11s ease-in-out infinite alternate; }
@keyframes dd-arch { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.01); } 100% { transform:scaleY(1); } }
@keyframes dd-door { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.85; } }
@keyframes dd-figure { 0% { transform:translateX(0) translateY(0) rotate(0); } 30% { transform:translateX(6px) translateY(-2px) rotate(1deg); } 60% { transform:translateX(-2px) translateY(0) rotate(-0.5deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes dd-tiles { 0% { background-position:0 0; } 100% { background-position:40px 40px; } }
@keyframes dd-shadow { 0% { opacity:.3; transform:rotate(-10deg) translateY(0); } 50% { opacity:.5; transform:rotate(-8deg) translateY(4px); } 100% { opacity:.35; transform:rotate(-10deg) translateY(0); } }
@keyframes dd-beam { 0% { opacity:.2; transform:skewX(-3deg); } 50% { opacity:.45; transform:skewX(2deg); } 100% { opacity:.25; transform:skewX(-1deg); } }

.scn-duke-escort-to-gates { background: linear-gradient(180deg, #d8ccb8 0%, #b8a888 35%, #9a8a6a 65%, #7a6a4a 100%), radial-gradient(ellipse at 30% 40%, #f0e4d0 0%, transparent 70%); }
.scn-duke-escort-to-gates .gate-left { position:absolute; bottom:0; left:10%; width:35%; height:80%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%); border-radius: 40% 0 0 0 / 20% 0 0 0; box-shadow: inset -6px 0 16px rgba(0,0,0,.4); animation: eg-gate-l 9s ease-in-out infinite alternate; }
.scn-duke-escort-to-gates .gate-right { position:absolute; bottom:0; right:10%; width:35%; height:80%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%); border-radius: 0 40% 0 0 / 0 20% 0 0; box-shadow: inset 6px 0 16px rgba(0,0,0,.4); animation: eg-gate-r 9s ease-in-out infinite alternate-reverse; }
.scn-duke-escort-to-gates .path-stones { position:absolute; bottom:0; left:35%; width:30%; height:20%; background: repeating-conic-gradient(#b8a888 0% 25%, #a09078 0% 50%, #8a7a5a 0% 75%, #b8a888 0% 100%) 0 0 / 30px 30px; opacity:.7; animation: eg-path 30s linear infinite; }
.scn-duke-escort-to-gates .figure-leaving { position:absolute; bottom:10%; left:42%; width:8%; height:32%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: eg-leave 7s ease-in-out infinite; }
.scn-duke-escort-to-gates .figure-staying { position:absolute; bottom:10%; left:55%; width:8%; height:32%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: eg-stay 8s ease-in-out infinite; }
.scn-duke-escort-to-gates .sky-beyond { position:absolute; top:2%; left:38%; width:24%; height:35%; background: linear-gradient(180deg, #c8d8e0 0%, #a0b8c8 50%, #8898a8 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; box-shadow: inset 0 0 20px rgba(160,184,200,.4); animation: eg-sky 15s ease-in-out infinite alternate; }
.scn-duke-escort-to-gates .arch-top { position:absolute; top:14%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: eg-arch 12s ease-in-out infinite alternate; }
.scn-duke-escort-to-gates .ground-plane { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); }
@keyframes eg-gate-l { 0% { transform:scaleX(1) translateX(0); } 50% { transform:scaleX(1.01) translateX(4px); } 100% { transform:scaleX(1) translateX(0); } }
@keyframes eg-gate-r { 0% { transform:scaleX(1) translateX(0); } 50% { transform:scaleX(1.01) translateX(-4px); } 100% { transform:scaleX(1) translateX(0); } }
@keyframes eg-path { 0% { background-position:0 0; } 100% { background-position:30px 30px; } }
@keyframes eg-leave { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(10px) translateY(-2px) rotate(1deg); } 50% { transform:translateX(20px) translateY(0) rotate(0.5deg); } 75% { transform:translateX(30px) translateY(-1px) rotate(-0.5deg); } 100% { transform:translateX(40px) translateY(0) rotate(0); } }
@keyframes eg-stay { 0% { transform:translateX(0) translateY(0) rotate(-0.5deg); } 50% { transform:translateX(-2px) translateY(-1px) rotate(0.5deg); } 100% { transform:translateX(0) translateY(0) rotate(-0.5deg); } }
@keyframes eg-sky { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.65; } }
@keyframes eg-arch { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }

.scn-street-gossip-claudio-arrest {
  background: linear-gradient(180deg, #7ec8e3 0%, #f5d6c6 40%, #edc9af 60%, #d4a373 100%), radial-gradient(ellipse at 50% 100%, #d4a373 20%, transparent 60%);
}
.scn-street-gossip-claudio-arrest .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a0d8ef 0%, #f7e5d4 100%); animation: sg1-sky 12s ease-in-out infinite alternate; }
.scn-street-gossip-claudio-arrest .buildings-back { position:absolute; bottom:45%; left:0; right:0; height:30%; background: linear-gradient(180deg, #e8c9a0 0%, #c9a87c 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.2); animation: sg1-build 20s ease-in-out infinite alternate; }
.scn-street-gossip-claudio-arrest .street { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c4a882 0%, #b0916b 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-street-gossip-claudio-arrest .figure-gent1 { position:absolute; bottom:20%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #f0e6d3 0%, #d4c4a8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.2); animation: sg1-walk 3s ease-in-out infinite; }
.scn-street-gossip-claudio-arrest .figure-gent2 { position:absolute; bottom:20%; left:30%; width:20px; height:48px; background: linear-gradient(180deg, #e8dac0 0%, #cbb59a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.1) rotate(5deg); animation: sg1-talk 2.5s ease-in-out infinite alternate; }
.scn-street-gossip-claudio-arrest .figure-guard { position:absolute; bottom:20%; right:30%; width:22px; height:55px; background: linear-gradient(180deg, #a8442a 0%, #7a2d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 2px 0 6px rgba(0,0,0,0.4); animation: sg1-guard 4s ease-in-out infinite; }
.scn-street-gossip-claudio-arrest .figure-claudio { position:absolute; bottom:20%; right:18%; width:18px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: sg1-prisoner 3s ease-in-out infinite alternate; }
.scn-street-gossip-claudio-arrest .cart { position:absolute; bottom:15%; right:10%; width:40px; height:20px; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: sg1-cart 5s ease-in-out infinite; }
.scn-street-gossip-claudio-arrest .cloud-sg1 { position:absolute; top:12%; left:10%; width:90px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); filter: blur(6px); border-radius: 50%; animation: sg1-cloud 30s linear infinite; }
@keyframes sg1-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sg1-build { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes sg1-walk { 0% { transform: translateX(0) scale(1.2) rotate(-2deg); } 25% { transform: translateX(5px) scale(1.2) rotate(2deg); } 50% { transform: translateX(0) scale(1.2) rotate(-1deg); } 75% { transform: translateX(-3px) scale(1.2) rotate(1deg); } 100% { transform: translateX(0) scale(1.2) rotate(0); } }
@keyframes sg1-talk { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-4px) rotate(8deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes sg1-guard { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sg1-prisoner { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-10deg); } }
@keyframes sg1-cart { 0% { transform: translateX(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes sg1-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

.scn-street-banter-lucio {
  background: linear-gradient(180deg, #8cc4e0 0%, #f2d5b0 40%, #e8c49a 60%, #cfa571 100%), radial-gradient(ellipse at 30% 100%, #cfa571 10%, transparent 50%);
}
.scn-street-banter-lucio .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #aad4ef 0%, #f7e1c9 100%); animation: sg2-sky 14s ease-in-out infinite alternate; }
.scn-street-banter-lucio .buildings-back { position:absolute; bottom:40%; left:0; right:0; height:35%; background: linear-gradient(180deg, #e0be97 0%, #c29f78 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.2); }
.scn-street-banter-lucio .street { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d4b48c 0%, #b8956d 100%); box-shadow: inset 0 6px 15px rgba(0,0,0,0.25); }
.scn-street-banter-lucio .fountain { position:absolute; bottom:20%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 6px 10px rgba(0,0,0,0.3); animation: sg2-fountain 3s ease-in-out infinite; }
.scn-street-banter-lucio .figure-lucio { position:absolute; bottom:18%; left:35%; width:22px; height:52px; background: linear-gradient(180deg, #e6d4b8 0%, #cbb59a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.1); animation: sg2-lucio 4s ease-in-out infinite; }
.scn-street-banter-lucio .figure-gent2 { position:absolute; bottom:18%; left:55%; width:20px; height:48px; background: linear-gradient(180deg, #dcc8a8 0%, #bfa888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.05) rotate(-5deg); animation: sg2-gent 3.5s ease-in-out infinite alternate; }
.scn-street-banter-lucio .pigeon { position:absolute; bottom:22%; left:45%; width:10px; height:8px; background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: sg2-pigeon 2s ease-in-out infinite alternate; }
.scn-street-banter-lucio .cloud-sg2 { position:absolute; top:15%; right:15%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); filter: blur(5px); border-radius: 50%; animation: sg2-cloud 40s linear infinite reverse; }
@keyframes sg2-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sg2-fountain { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes sg2-lucio { 0% { transform: translateY(0) rotate(0) scale(1.1); } 30% { transform: translateY(-4px) rotate(3deg) scale(1.1); } 60% { transform: translateY(0) rotate(-2deg) scale(1.1); } 100% { transform: translateY(-1px) rotate(1deg) scale(1.1); } }
@keyframes sg2-gent { 0% { transform: rotate(-5deg) scale(1.05); } 50% { transform: rotate(2deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1.05); } }
@keyframes sg2-pigeon { 0% { transform: translateY(0) rotate(10deg); } 50% { transform: translateY(-3px) rotate(-10deg); } 100% { transform: translateY(0) rotate(10deg); } }
@keyframes sg2-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-overheard-mistress-overdone {
  background: linear-gradient(180deg, #a0c8e4 0%, #f0d4b8 40%, #e4c09a 60%, #cc9f73 100%), radial-gradient(ellipse at 60% 100%, #cc9f73 15%, transparent 55%);
}
.scn-overheard-mistress-overdone .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b8d8f0 0%, #fde8d0 100%); animation: sg3-sky 10s ease-in-out infinite; }
.scn-overheard-mistress-overdone .tavern-wall { position:absolute; bottom:0; left:10%; width:80%; height:80%; background: linear-gradient(180deg, #d4b28a 0%, #b6946c 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-overheard-mistress-overdone .tavern-door { position:absolute; bottom:0; left:45%; width:10%; height:55%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 4px 0 6px rgba(0,0,0,0.3); animation: sg3-door 5s ease-in-out infinite alternate; }
.scn-overheard-mistress-overdone .sign { position:absolute; bottom:60%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%); border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: sg3-sign 4s ease-in-out infinite; }
.scn-overheard-mistress-overdone .figure-gent1 { position:absolute; bottom:10%; left:20%; width:20px; height:48px; background: linear-gradient(180deg, #e8d4b8 0%, #cbb59a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.1); animation: sg3-gent1 3s ease-in-out infinite; }
.scn-overheard-mistress-overdone .figure-gent2 { position:absolute; bottom:10%; left:35%; width:20px; height:46px; background: linear-gradient(180deg, #dcc8a8 0%, #bca488 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.05) rotate(4deg); animation: sg3-gent2 2.8s ease-in-out infinite alternate; }
.scn-overheard-mistress-overdone .figure-mistress { position:absolute; bottom:10%; left:60%; width:24px; height:56px; background: linear-gradient(180deg, #b87878 0%, #8a5858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: sg3-mistress 5s ease-in-out infinite; }
.scn-overheard-mistress-overdone .cloud-sg3 { position:absolute; top:12%; left:5%; width:80px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.08) 100%); filter: blur(6px); border-radius: 50%; animation: sg3-cloud 35s linear infinite; }
@keyframes sg3-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sg3-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(10deg); } 100% { transform: rotateY(-5deg); } }
@keyframes sg3-sign { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes sg3-gent1 { 0% { transform: translateX(0) scale(1.1); } 30% { transform: translateX(4px) scale(1.1); } 60% { transform: translateX(-2px) scale(1.1); } 100% { transform: translateX(0) scale(1.1); } }
@keyframes sg3-gent2 { 0% { transform: rotate(4deg) scale(1.05); } 50% { transform: rotate(-2deg) scale(1.05); } 100% { transform: rotate(4deg) scale(1.05); } }
@keyframes sg3-mistress { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(5deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sg3-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(110vw); } }

.scn-claudio-arrest-news {
  background: linear-gradient(180deg, #5b7b9a 0%, #8a9aad 30%, #c0b09a 50%, #a08060 100%), radial-gradient(ellipse at 40% 100%, #705040 30%, transparent 70%);
}
.scn-claudio-arrest-news .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a9bb5 0%, #b8c8d8 100%); animation: sg4-sky 8s ease-in-out infinite alternate; }
.scn-claudio-arrest-news .alley-wall { position:absolute; bottom:0; left:20%; width:60%; height:85%; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-claudio-arrest-news .window-bars { position:absolute; bottom:60%; left:35%; width:30%; height:20%; border: 4px solid #3a2a1a; border-radius: 8px; background: rgba(10,10,10,0.7); box-shadow: 0 0 20px rgba(0,0,0,0.6); animation: sg4-bars 1.5s ease-in-out infinite alternate; }
.scn-claudio-arrest-news .figure-mistress { position:absolute; bottom:10%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #8a6060 0%, #5a4040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.1); animation: sg4-mistress 2s ease-in-out infinite; }
.scn-claudio-arrest-news .shadow-bars { position:absolute; bottom:0; left:35%; width:30%; height:100%; background: repeating-linear-gradient(0deg, rgba(0,0,0,0.3) 0px, rgba(0,0,0,0.3) 8px, transparent 8px, transparent 16px); animation: sg4-shadow 3s ease-in-out infinite; }
.scn-claudio-arrest-news .guard-silhouette { position:absolute; bottom:10%; right:25%; width:20px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 15px rgba(0,0,0,0.5); animation: sg4-guard 4s ease-in-out infinite; }
.scn-claudio-arrest-news .dust-motes { position:absolute; top:20%; left:30%; width:100%; height:60%; background: radial-gradient(circle at 50% 30%, rgba(255,255,200,0.15) 0%, transparent 70%); animation: sg4-dust 6s ease-in-out infinite; }
@keyframes sg4-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sg4-bars { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes sg4-mistress { 0% { transform: translateY(0) scale(1.1) rotate(0); } 30% { transform: translateY(-6px) scale(1.1) rotate(5deg); } 60% { transform: translateY(0) scale(1.1) rotate(-3deg); } 100% { transform: translateY(-2px) scale(1.1) rotate(2deg); } }
@keyframes sg4-shadow { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.7; transform: translateY(-8px); } 100% { opacity:0.3; transform: translateY(0); } }
@keyframes sg4-guard { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sg4-dust { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.2); } 100% { transform: translateY(0) scale(0.9); } }

.scn-duke-instructs-isabella {
  background:
    linear-gradient(180deg, #f4c89a 0%, #f7e3c0 30%, #b5d6e8 60%, #7a9ebf 100%),
    radial-gradient(ellipse at 50% 100%, rgba(255,200,140,0.4) 0%, transparent 60%);
}
.scn-duke-instructs-isabella .dawn-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(247,227,192,0.5) 0%, transparent 100%);
  animation: di-sky 14s ease-in-out infinite alternate;
}
.scn-duke-instructs-isabella .dawn-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%);
  border-radius: 30% 70% 0 0 / 60% 50% 0 0;
  animation: di-ground 12s ease-in-out infinite alternate;
}
.scn-duke-instructs-isabella .duke-fig {
  position: absolute; bottom: 32%; left: 30%; width: 32px; height: 80px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di-duke 6s ease-in-out infinite;
}
.scn-duke-instructs-isabella .isabella-fig {
  position: absolute; bottom: 32%; left: 55%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #2a3a3a 0%, #121a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di-isabella 6s ease-in-out infinite 0.3s;
}
.scn-duke-instructs-isabella .letter {
  position: absolute; bottom: 50%; left: 42%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b898 100%);
  border: 1px solid #a09070;
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: di-letter 8s ease-in-out infinite;
}
.scn-duke-instructs-isabella .light-ray {
  position: absolute; top: 8%; left: 20%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: di-ray 18s ease-in-out infinite alternate;
}
@keyframes di-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes di-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes di-duke { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes di-isabella { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-1px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(1px) rotate(1deg) } }
@keyframes di-letter { 0%,100% { transform: translate(0,0) rotate(-10deg) } 50% { transform: translate(4px,-4px) rotate(-5deg) } }
@keyframes di-ray { 0% { opacity: 0.3; transform: scale(1) rotate(0) } 50% { opacity: 0.5; transform: scale(1.1) rotate(2deg) } 100% { opacity: 0.3; transform: scale(1) rotate(0) } }

.scn-lucio-encounter {
  background:
    linear-gradient(180deg, #f4c89a 0%, #f7e3c0 30%, #b5d6e8 60%, #7a9ebf 100%),
    radial-gradient(ellipse at 50% 100%, rgba(255,200,140,0.4) 0%, transparent 60%);
}
.scn-lucio-encounter .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(247,227,192,0.4) 0%, transparent 100%);
  animation: le-sky 16s ease-in-out infinite alternate;
}
.scn-lucio-encounter .dawn-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  animation: le-ground 10s ease-in-out infinite alternate;
}
.scn-lucio-encounter .lucio-body {
  position: absolute; bottom: 30%; left: 28%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: le-lucio 4s ease-in-out infinite;
}
.scn-lucio-encounter .lucio-belly {
  position: absolute; bottom: 26%; left: 30%; width: 44px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  z-index: 1;
  animation: le-belly 4s ease-in-out infinite 0.2s;
}
.scn-lucio-encounter .isabella-fig {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 68px;
  background: linear-gradient(180deg, #2a3a3a 0%, #121a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: le-isabella 5s ease-in-out infinite;
}
.scn-lucio-encounter .bowl {
  position: absolute; bottom: 28%; left: 48%; width: 28px; height: 12px;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(5deg);
  animation: le-bowl 6s ease-in-out infinite;
}
.scn-lucio-encounter .spoon {
  position: absolute; bottom: 32%; left: 46%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #d0c8b0 0%, #b8a890 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: le-spoon 4s ease-in-out infinite 0.1s;
}
@keyframes le-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.5 } }
@keyframes le-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes le-lucio { 0%,100% { transform: rotate(0) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(4deg) } }
@keyframes le-belly { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1,0.9) } }
@keyframes le-isabella { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) } }
@keyframes le-bowl { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(-3deg) } }
@keyframes le-spoon { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-20deg) } }

.scn-angelo-regret {
  background:
    linear-gradient(180deg, #1a1a24 0%, #2a2a3a 30%, #3a3a4a 60%, #1a1a24 100%),
    radial-gradient(ellipse at 50% 100%, rgba(180,100,40,0.15) 0%, transparent 70%);
}
.scn-angelo-regret .room-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a24 50%, #3a3a4a 100%);
  animation: ar-wall 20s ease-in-out infinite alternate;
}
.scn-angelo-regret .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
}
.scn-angelo-regret .table {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-angelo-regret .candle {
  position: absolute; bottom: 26%; left: 48%; 
  width: 8px; height: 24px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 50%, #a09060 100%);
  border-radius: 2px 2px 10% 10%;
  animation: ar-candle 3s ease-in-out infinite;
}
.scn-angelo-regret .candle-glow {
  position: absolute; bottom: 30%; left: 44%; 
  width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: ar-glow 3s ease-in-out infinite alternate;
}
.scn-angelo-regret .letter {
  position: absolute; bottom: 20%; left: 55%; 
  width: 22px; height: 16px;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a880 100%);
  border: 1px solid #887858;
  transform: rotate(12deg);
  animation: ar-letter 7s ease-in-out infinite;
}
.scn-angelo-regret .angelo-fig {
  position: absolute; bottom: 14%; left: 35%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-ang 5s ease-in-out infinite;
}
.scn-angelo-regret .escalus-fig {
  position: absolute; bottom: 14%; left: 58%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-esc 5s ease-in-out infinite 0.5s;
}
@keyframes ar-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ar-candle { 0%,100% { transform: scaleY(1) rotate(0) } 50% { transform: scaleY(1.05) rotate(1deg) } }
@keyframes ar-glow { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.6; transform: scale(1.2) } 100% { opacity: 0.3; transform: scale(1) } }
@keyframes ar-letter { 0%,100% { transform: rotate(12deg) } 50% { transform: rotate(8deg) translateY(2px) } }
@keyframes ar-ang { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(-3deg) } 60% { transform: translateX(0) rotate(0) } 80% { transform: translateX(1px) rotate(2deg) } }
@keyframes ar-esc { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }

.scn-duke-preparations-return {
  background:
    linear-gradient(180deg, #f4c89a 0%, #f7e3c0 30%, #b5d6e8 60%, #7a9ebf 100%),
    radial-gradient(ellipse at 50% 100%, rgba(255,200,140,0.3) 0%, transparent 60%);
}
.scn-duke-preparations-return .dawn-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, rgba(247,227,192,0.4) 0%, transparent 100%);
  animation: dp-sky 14s ease-in-out infinite alternate;
}
.scn-duke-preparations-return .dawn-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 40% 60% 0 0 / 50% 30% 0 0;
  animation: dp-ground 12s ease-in-out infinite alternate;
}
.scn-duke-preparations-return .path {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: perspective(200px) rotateX(10deg);
  animation: dp-path 18s ease-in-out infinite alternate;
}
.scn-duke-preparations-return .tree {
  position: absolute; bottom: 30%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-duke-preparations-return .tree.left { left: 12%; animation: dp-tree-l 25s ease-in-out infinite; }
.scn-duke-preparations-return .tree.right { right: 12%; height: 70px; animation: dp-tree-r 25s ease-in-out infinite 3s; }
.scn-duke-preparations-return .duke-fig {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dp-duke 8s ease-in-out infinite;
}
.scn-duke-preparations-return .peter-fig {
  position: absolute; bottom: 22%; left: 52%; width: 28px; height: 66px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dp-peter 8s ease-in-out infinite 0.4s;
}
.scn-duke-preparations-return .letter {
  position: absolute; bottom: 40%; left: 42%; width: 18px; height: 12px;
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b898 100%);
  border: 1px solid #a09070;
  transform: rotate(-5deg);
  animation: dp-letter 10s ease-in-out infinite;
}
@keyframes dp-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes dp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dp-path { 0% { opacity: 0.8; transform: perspective(200px) rotateX(10deg) } 50% { opacity: 1; transform: perspective(200px) rotateX(12deg) } 100% { opacity: 0.8; transform: perspective(200px) rotateX(10deg) } }
@keyframes dp-tree-l { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes dp-tree-r { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-2deg) } }
@keyframes dp-duke { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes dp-peter { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) } }
@keyframes dp-letter { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) translateY(-2px) } }

/* ========================================================================== */
/* Scene: angelo-leaves-hearing (alh) */
/* ========================================================================== */
.scn-angelo-leaves-hearing {
  background: linear-gradient(180deg, #f5f0e1 0%, #d9c9a3 50%, #b8a87c 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 70%);
}
.scn-angelo-leaves-hearing .wall-back {
  position: absolute; inset: 0 0 20% 30%; right: 0;
  background: linear-gradient(180deg, #e5d9be 0%, #c4b393 100%);
  border-radius: 0 0 50% 0 / 0 0 80% 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.15);
  animation: alh-wall 12s ease-in-out infinite alternate;
}
.scn-angelo-leaves-hearing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a87c 0%, #9c8a65 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.2);
  animation: alh-floor 14s ease-in-out infinite alternate;
}
.scn-angelo-leaves-hearing .window {
  position: absolute; top: 10%; left: 60%; width: 20%; height: 40%;
  background: linear-gradient(135deg, #fef9e6 0%, #f0d9b6 100%);
  border: 4px solid #7a6a4e;
  border-radius: 8% 8% 40% 40% / 8% 8% 60% 60%;
  box-shadow: 0 0 40px 8px rgba(255,248,230,0.4), inset 0 0 20px rgba(255,248,230,0.6);
  animation: alh-window 8s ease-in-out infinite alternate;
}
.scn-angelo-leaves-hearing .table {
  position: absolute; bottom: 16%; left: 25%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #8a7a5e 0%, #6b5b42 100%);
  border-radius: 8% 8% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: alh-table 9s ease-in-out infinite;
}
.scn-angelo-leaves-hearing .figure-escalu {
  position: absolute; bottom: 18%; left: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a3028 0%, #2a201a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: alh-escalu 10s ease-in-out infinite alternate;
}
.scn-angelo-leaves-hearing .figure-angelo {
  position: absolute; bottom: 18%; right: 10%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #4a3e32 0%, #2a221e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: alh-angelo 4s ease-in-out infinite;
}
.scn-angelo-leaves-hearing .shadow-cast {
  position: absolute; bottom: 15%; left: 30%; width: 50%; height: 6%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: alh-shadow 12s ease-in-out infinite alternate;
}
@keyframes alh-wall {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.02) translateX(-2px); }
  100% { transform: scaleX(1) translateX(2px); }
}
@keyframes alh-floor {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.85; transform: translateY(0); }
}
@keyframes alh-window {
  0% { opacity: 0.7; transform: scale(0.98); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(0.99); }
}
@keyframes alh-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes alh-escalu {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes alh-angelo {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-8px) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(-16px) translateY(-4px) rotate(5deg); }
  100% { transform: translateX(-24px) translateY(0) rotate(0deg); }
}
@keyframes alh-shadow {
  0% { opacity: 0.5; transform: scaleX(1) translateX(0); }
  50% { opacity: 0.7; transform: scaleX(1.1) translateX(5px); }
  100% { opacity: 0.4; transform: scaleX(0.9) translateX(-3px); }
}

/* ========================================================================== */
/* Scene: elbow-wife-questioned (ewq) */
/* ========================================================================== */
.scn-elbow-wife-questioned {
  background: linear-gradient(135deg, #fff8e7 0%, #ecd9b0 50%, #d9be92 100%),
              radial-gradient(circle at 80% 20%, #fef4d8 0%, transparent 60%);
}
.scn-elbow-wife-questioned .bench {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #b8a284 0%, #8a755a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.25);
  animation: ewq-bench 8s ease-in-out infinite alternate;
}
.scn-elbow-wife-questioned .figure-escalu {
  position: absolute; bottom: 22%; left: 15%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #4a3e32 0%, #2a221e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewq-escalu 6s ease-in-out infinite;
}
.scn-elbow-wife-questioned .figure-pompey {
  position: absolute; bottom: 22%; left: 38%; width: 12%; height: 26%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewq-pompey 4s ease-in-out infinite alternate;
}
.scn-elbow-wife-questioned .figure-elbow {
  position: absolute; bottom: 22%; left: 58%; width: 13%; height: 27%;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewq-elbow 7s ease-in-out infinite;
}
.scn-elbow-wife-questioned .figure-froth {
  position: absolute; bottom: 22%; right: 10%; width: 11%; height: 24%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewq-froth 5s ease-in-out infinite alternate;
}
.scn-elbow-wife-questioned .lamp {
  position: absolute; top: 8%; left: 50%; width: 10%; height: 15%;
  background: radial-gradient(circle, #ffd680 0%, #c09a50 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,214,128,0.5), 0 0 60px 20px rgba(255,214,128,0.2);
  animation: ewq-lamp 3s ease-in-out infinite alternate;
}
.scn-elbow-wife-questioned .shadow {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 4%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: ewq-shadow 10s ease-in-out infinite alternate;
}
@keyframes ewq-bench {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(1px) scaleX(0.98); }
}
@keyframes ewq-escalu {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(8px) rotate(-2deg); }
  75% { transform: translateX(4px) rotate(1deg); }
}
@keyframes ewq-pompey {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ewq-elbow {
  0% { transform: translateX(0) scaleY(1); }
  30% { transform: translateX(3px) scaleY(1.05); }
  60% { transform: translateX(-2px) scaleY(0.95); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes ewq-froth {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(2px) rotate(-3deg); }
}
@keyframes ewq-lamp {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes ewq-shadow {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(10px); }
  100% { opacity: 0.4; transform: translateX(-5px); }
}

/* ========================================================================== */
/* Scene: escalu-orders-froth (eof) */
/* ========================================================================== */
.scn-escalu-orders-froth {
  background: linear-gradient(90deg, #f0e6d3 0%, #d9c9a3 50%, #c4b393 100%),
              radial-gradient(ellipse at 30% 50%, #fef4d8 0%, transparent 60%);
}
.scn-escalu-orders-froth .arch {
  position: absolute; top: 0; left: 10%; width: 80%; height: 100%;
  background: linear-gradient(180deg, #8a7a5e 0%, #6b5b42 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  clip-path: polygon(0 0, 100% 0, 100% 85%, 0 85%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: eof-arch 20s ease-in-out infinite alternate;
}
.scn-escalu-orders-froth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #b8a87c 0%, #9c8a65 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: eof-floor 14s ease-in-out infinite alternate;
}
.scn-escalu-orders-froth .figure-escalu {
  position: absolute; bottom: 15%; left: 25%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #4a3e32 0%, #2a201a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eof-escalu 8s ease-in-out infinite;
}
.scn-escalu-orders-froth .figure-elbow {
  position: absolute; bottom: 15%; left: 46%; width: 13%; height: 28%;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eof-elbow 6s ease-in-out infinite alternate;
}
.scn-escalu-orders-froth .figure-froth {
  position: absolute; bottom: 15%; right: 20%; width: 12%; height: 26%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eof-froth 5s ease-in-out infinite;
}
.scn-escalu-orders-froth .table {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #8a7a5e 0%, #6b5b42 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: eof-table 9s ease-in-out infinite alternate;
}
.scn-escalu-orders-froth .cup {
  position: absolute; bottom: 11%; left: 48%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #c9b99a 0%, #a08a6a 100%);
  border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: eof-cup 3s ease-in-out infinite;
}
@keyframes eof-arch {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(2px); }
}
@keyframes eof-floor {
  0% { opacity: 0.85; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.9; transform: translateY(0); }
}
@keyframes eof-escalu {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(1deg); }
}
@keyframes eof-elbow {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes eof-froth {
  0% { transform: translateX(0) scaleY(1); }
  30% { transform: translateX(4px) scaleY(1.04); }
  60% { transform: translateX(-2px) scaleY(0.96); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes eof-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(0.99); }
}
@keyframes eof-cup {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

/* ========================================================================== */
/* Scene: escalu-threatens-pompey (etp) */
/* ========================================================================== */
.scn-escalu-threatens-pompey {
  background: linear-gradient(180deg, #efdfc7 0%, #d4b592 50%, #b89a76 100%),
              radial-gradient(circle at 70% 30%, #fcf3e0 0%, transparent 60%);
}
.scn-escalu-threatens-pompey .backdrop {
  position: absolute; inset: 20% 10% 10% 10%; background: linear-gradient(135deg, #d4b592 0%, #b89a76 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
  animation: etp-backdrop 16s ease-in-out infinite alternate;
}
.scn-escalu-threatens-pompey .figure-escalu {
  position: absolute; bottom: 15%; left: 20%; width: 15%; height: 32%;
  background: linear-gradient(180deg, #4a3e32 0%, #2a201a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: etp-escalu 5s ease-in-out infinite;
}
.scn-escalu-threatens-pompey .figure-pompey {
  position: absolute; bottom: 15%; left: 55%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: etp-pompey 4s ease-in-out infinite alternate;
}
.scn-escalu-threatens-pompey .bench {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 10%;
  background: linear-gradient(180deg, #b8a284 0%, #8a755a 100%);
  border-radius: 15% 15% 30% 30% / 25% 25% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: etp-bench 12s ease-in-out infinite alternate;
}
.scn-escalu-threatens-pompey .lantern {
  position: absolute; top: 8%; left: 40%; width: 12%; height: 16%;
  background: radial-gradient(circle, #ffd680 0%, #c09a50 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px rgba(255,214,128,0.4), 0 0 50px 15px rgba(255,214,128,0.15);
  animation: etp-lantern 3s ease-in-out infinite alternate;
}
.scn-escalu-threatens-pompey .shadow {
  position: absolute; bottom: 6%; left: 20%; width: 60%; height: 5%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: etp-shadow 10s ease-in-out infinite alternate;
}
.scn-escalu-threatens-pompey .poster {
  position: absolute; top: 20%; right: 10%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #c9b99a 0%, #a08a6a 100%);
  border: 2px solid #7a6a4e;
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: etp-poster 8s ease-in-out infinite;
}
@keyframes etp-backdrop {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-3px); }
  100% { transform: scale(0.98) translateY(2px); }
}
@keyframes etp-escalu {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(6px) rotate(4deg); }
  60% { transform: translateX(-3px) rotate(-2deg); }
}
@keyframes etp-pompey {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(6deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes etp-bench {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(0.99); }
}
@keyframes etp-lantern {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.08); }
  100% { opacity: 0.85; transform: scale(1); }
}
@keyframes etp-shadow {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(15px); }
  100% { opacity: 0.4; transform: translateX(-5px); }
}
@keyframes etp-poster {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-item-garden-key {
  background: radial-gradient(ellipse at 50% 100%, #b35a38 0%, transparent 60%), linear-gradient(180deg, #f5a079 0%, #b35a38 40%, #3a1c2a 100%);
}
.scn-item-garden-key .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5a079 0%, transparent 100%);
  animation: igk-sky 12s ease-in-out infinite alternate;
}
.scn-item-garden-key .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2d5a27 0%, #1a3a14 100%);
  border-radius: 20% 20% 0 0;
}
.scn-item-garden-key .tree {
  position: absolute; bottom: 30%; left: 15%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2d5a27 0%, #1a3a14 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  transform-origin: bottom center;
  animation: igk-tree 8s ease-in-out infinite;
}
.scn-item-garden-key .path {
  position: absolute; bottom: 15%; left: 40%; width: 20px; height: 60px;
  background: #4a3a2a;
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-8deg);
  opacity: 0.6;
  animation: igk-path 14s ease-in-out infinite alternate;
}
.scn-item-garden-key .key {
  position: absolute; bottom: 44%; left: 52%; width: 10px; height: 18px;
  background: radial-gradient(circle, #ffd680 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 6px 2px #c08040;
  animation: igk-key 4s ease-in-out infinite;
}
.scn-item-garden-key .glow {
  position: absolute; bottom: 42%; left: 50%; width: 30px; height: 30px;
  background: transparent;
  border-radius: 50%;
  filter: blur(6px);
  box-shadow: 0 0 20px 10px #ffd680;
  animation: igk-glow 3s ease-in-out infinite alternate;
}

@keyframes igk-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes igk-tree { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes igk-path { 0% { transform: rotate(-8deg) scaleX(1); } 50% { transform: rotate(-4deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(1); } }
@keyframes igk-key { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes igk-glow { 0% { box-shadow: 0 0 10px 5px #f5a079; } 50% { box-shadow: 0 0 25px 12px #ffd680; } 100% { box-shadow: 0 0 15px 6px #f5a079; } }

.scn-prison-beheading-plot {
  background: radial-gradient(circle at 30% 40%, #c88a4a 0%, transparent 40%), linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 100%);
}
.scn-prison-beheading-plot .wall {
  position: absolute; inset: 0; background: transparent;
}
.scn-prison-beheading-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0;
}
.scn-prison-beheading-plot .lantern {
  position: absolute; top: 15%; left: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd680 0%, #c08040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px #c08040;
  animation: pbp-lantern 2s ease-in-out infinite;
}
.scn-prison-beheading-plot .block {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 25px;
  margin-left: -30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: pbp-block 3s ease-in-out infinite;
}
.scn-prison-beheading-plot .fig1 {
  position: absolute; bottom: 25%; left: 20%; width: 18px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pbp-fig1 2s ease-in-out infinite;
}
.scn-prison-beheading-plot .fig2 {
  position: absolute; bottom: 25%; right: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pbp-fig2 2.5s ease-in-out infinite;
}
.scn-prison-beheading-plot .head {
  position: absolute; bottom: 40%; left: 50%; width: 16px; height: 16px;
  margin-left: -8px;
  background: radial-gradient(circle, #c8553d 0%, #702243 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: pbp-head 1.5s ease-in-out infinite;
}

@keyframes pbp-lantern { 0% { transform: scale(1) rotate(-2deg); } 25% { transform: scale(1.1) rotate(2deg); } 50% { transform: scale(0.9) rotate(-3deg); } 75% { transform: scale(1.05) rotate(1deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes pbp-block { 0% { transform: rotate(0); } 25% { transform: rotate(-5deg); } 75% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes pbp-fig1 { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pbp-fig2 { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }
@keyframes pbp-head { 0% { transform: rotate(0); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0); } }

.scn-duke-arranges-head {
  background: radial-gradient(ellipse at 50% 60%, #3a3a2a 0%, #0a0a0a 80%);
}
.scn-duke-arranges-head .bg {
  position: absolute; inset: 0; background: transparent;
}
.scn-duke-arranges-head .candle {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0a040 0%, #6a3a1a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 -10px 20px 8px #ffd680;
  animation: dah-candle 2s ease-in-out infinite;
}
.scn-duke-arranges-head .duke {
  position: absolute; bottom: 15%; left: 20%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: dah-duke 6s ease-in-out infinite;
}
.scn-duke-arranges-head .provost {
  position: absolute; bottom: 15%; right: 25%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: dah-provost 5s ease-in-out infinite;
}
.scn-duke-arranges-head .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 10px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}

@keyframes dah-candle { 0% { box-shadow: 0 -8px 16px 6px #ffd680; transform: scaleY(1); } 25% { box-shadow: 0 -12px 20px 8px #e0a040; transform: scaleY(1.1); } 50% { box-shadow: 0 -6px 12px 4px #ffd680; transform: scaleY(0.9); } 75% { box-shadow: 0 -10px 18px 7px #f0b060; transform: scaleY(1.05); } 100% { box-shadow: 0 -8px 16px 6px #ffd680; transform: scaleY(1); } }
@keyframes dah-duke { 0% { transform: rotate(0) translateX(0); } 50% { transform: rotate(2deg) translateX(-2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes dah-provost { 0% { transform: rotate(0); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0); } }

.scn-item-head-ragazine {
  background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #0a0a1a 100%);
}
.scn-item-head-ragazine .bg {
  position: absolute; inset: 0; background: transparent;
}
.scn-item-head-ragazine .pedestal {
  position: absolute; bottom: 10%; left: 40%; right: 40%; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-item-head-ragazine .head {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 34px;
  margin-left: -15px;
  background: radial-gradient(ellipse at 50% 30%, #b87878 0%, #5e1a1d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ihr-head 4s ease-in-out infinite;
}
.scn-item-head-ragazine .rag {
  position: absolute; bottom: 43%; left: 45%; width: 40px; height: 16px;
  margin-left: -4px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7a6a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: center bottom;
  animation: ihr-rag 6s ease-in-out infinite;
}
.scn-item-head-ragazine .shadow {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 50px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: ihr-shadow 5s ease-in-out infinite alternate;
}

@keyframes ihr-head { 0% { transform: rotate(0); } 25% { transform: rotate(3deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0); } }
@keyframes ihr-rag { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ihr-shadow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.6; } }

/* pompey-catalogues-prisoners */
.scn-pompey-catalogues-prisoners { background: linear-gradient(180deg, #1a1a1a 0%, #2a2018 30%, #3a2a1a 70%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%); }
.scn-pompey-catalogues-prisoners .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2018 0%, #1a1510 100%); }
.scn-pompey-catalogues-prisoners .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1510 100%); }
.scn-pompey-catalogues-prisoners .bars { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 30px, #2a1a0a 30px, #2a1a0a 32px); opacity:0.3; }
.scn-pompey-catalogues-prisoners .lantern { position:absolute; top:20%; right:20%; width:16px; height:20px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,208,128,.6); animation: pcp-lantern 2s ease-in-out infinite alternate; }
.scn-pompey-catalogues-prisoners .figure-pompey { position:absolute; bottom:20%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a20 0%, #1a1510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pcp-pompey 3s ease-in-out infinite; }
.scn-pompey-catalogues-prisoners .figure-barnardine { position:absolute; bottom:20%; right:25%; width:24px; height:40px; background: linear-gradient(180deg, #2a2018 0%, #0a0a08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pcp-barnardine 4s ease-in-out infinite; }
.scn-pompey-catalogues-prisoners .noose { position:absolute; top:10%; left:50%; width:4px; height:60px; background: #4a3a2a; transform-origin: top center; animation: pcp-noose 2s ease-in-out infinite; border-radius: 0 0 50% 50%; }
.scn-pompey-catalogues-prisoners .list { position:absolute; top:30%; left:10%; width:15px; height:20px; background: #8a7a5a; border-radius: 4px; transform: rotate(10deg); animation: pcp-list 3s ease-in-out infinite; }
@keyframes pcp-lantern { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.9; transform: scale(0.98) } }
@keyframes pcp-pompey { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pcp-barnardine { 0% { transform: rotate(0) } 25% { transform: rotate(-5deg) } 50% { transform: rotate(0) } 75% { transform: rotate(5deg) } 100% { transform: rotate(0) } }
@keyframes pcp-noose { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-2deg) } }
@keyframes pcp-list { 0% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(8deg) } }

/* barnardine-refuses-death */
.scn-barnardine-refuses-death { background: linear-gradient(180deg, #1a1a1a 0%, #2a2018 30%, #3a2a1a 70%), radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%); }
.scn-barnardine-refuses-death .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2018 0%, #1a1510 100%); }
.scn-barnardine-refuses-death .bed { position:absolute; bottom:15%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 20% 20% 10% 10%; }
.scn-barnardine-refuses-death .figure-barnardine { position:absolute; bottom:30%; left:35%; width:28px; height:35px; background: linear-gradient(180deg, #2a2018 0%, #1a1510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brd-barnardine 5s ease-in-out infinite; }
.scn-barnardine-refuses-death .figure-abhorson { position:absolute; bottom:25%; right:15%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a20 0%, #1a1510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brd-abhorson 2.5s ease-in-out infinite; }
.scn-barnardine-refuses-death .lantern { position:absolute; top:20%; left:10%; width:14px; height:18px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,208,128,.5); animation: brd-lantern 1.5s ease-in-out infinite alternate; }
.scn-barnardine-refuses-death .bottle { position:absolute; bottom:20%; right:30%; width:10px; height:18px; background: #5a4a3a; border-radius: 30% 30% 10% 10%; animation: brd-bottle 3s ease-in-out infinite; }
.scn-barnardine-refuses-death .hand { position:absolute; bottom:40%; right:25%; width:12px; height:8px; background: #3a2a1a; border-radius: 50%; animation: brd-hand 2s ease-in-out infinite; }
@keyframes brd-barnardine { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-10deg) translateY(-2px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes brd-abhorson { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes brd-lantern { 0% { opacity:0.8; transform: scale(1) } 100% { opacity:1; transform: scale(1.1) } }
@keyframes brd-bottle { 0% { transform: rotate(0) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }
@keyframes brd-hand { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }

/* providence-provides */
.scn-providence-provides { background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 30%, #2a1a10 70%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%); }
.scn-providence-provides .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%); }
.scn-providence-provides .table { position:absolute; bottom:20%; left:40%; transform:translateX(-50%); width:120px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; }
.scn-providence-provides .lamp { position:absolute; top:30%; left:20%; width:12px; height:16px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,208,128,.4); animation: prv-lamp 2s ease-in-out infinite alternate; }
.scn-providence-provides .figure-duke { position:absolute; bottom:23%; left:35%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prv-duke 4s ease-in-out infinite; }
.scn-providence-provides .figure-provost { position:absolute; bottom:23%; right:35%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prv-provost 3.5s ease-in-out infinite; }
.scn-providence-provides .bag { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:16px; height:12px; background: #4a3a2a; border-radius: 50% 50% 40% 40%; animation: prv-bag 2s ease-in-out infinite; }
.scn-providence-provides .shadow { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
@keyframes prv-lamp { 0% { opacity:0.8; transform: scale(1) } 100% { opacity:1; transform: scale(1.05) } }
@keyframes prv-duke { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes prv-provost { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes prv-bag { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(0.95) } }

/* duke-letters-angelo */
.scn-duke-letters-angelo { background: linear-gradient(180deg, #1a2a4a 0%, #4a6a8a 30%, #8a9a9a 70%), radial-gradient(ellipse at 50% 100%, #5a7a7a 0%, transparent 70%); }
.scn-duke-letters-angelo .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2a4a 0%, #6a8a9a 100%); animation: dla-sky 20s ease-in-out infinite alternate; }
.scn-duke-letters-angelo .fountain { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:60px; height:40px; background: linear-gradient(180deg, #7a7a6a 0%, #3a3a2a 100%); border-radius: 0 0 50% 50%; }
.scn-duke-letters-angelo .figure-duke { position:absolute; bottom:30%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dla-duke 3s ease-in-out infinite; }
.scn-duke-letters-angelo .letter { position:absolute; bottom:45%; left:50%; width:18px; height:12px; background: #d8c8a0; border-radius: 2px; transform: translateX(-50%) rotate(-10deg); animation: dla-letter 4s ease-in-out infinite; }
.scn-duke-letters-angelo .path { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, transparent 0%, #8a8a5a 50%, #6a6a3a 100%); border-radius: 0 0 50% 50%; animation: dla-path 8s ease-in-out infinite; }
.scn-duke-letters-angelo .tree-left { position:absolute; bottom:20%; left:10%; width:20px; height:60px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: dla-tree 15s ease-in-out infinite; }
.scn-duke-letters-angelo .tree-right { position:absolute; bottom:20%; right:10%; width:20px; height:50px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: dla-tree 18s ease-in-out infinite; animation-delay: -5s; }
@keyframes dla-sky { 0% { background: linear-gradient(180deg, #1a2a4a 0%, #6a8a9a 100%); } 50% { background: linear-gradient(180deg, #2a4a6a 0%, #8a9aaa 100%); } 100% { background: linear-gradient(180deg, #4a6a8a 0%, #9ababf 100%); } }
@keyframes dla-duke { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(0) } }
@keyframes dla-letter { 0% { transform: translateX(-50%) rotate(-10deg) translateY(0) } 50% { transform: translateX(-50%) rotate(-5deg) translateY(-3px) } 100% { transform: translateX(-50%) rotate(-10deg) translateY(0) } }
@keyframes dla-path { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes dla-tree { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(0.98) } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.glint { position: absolute; pointer-events: none; }
.stack { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* scene: city-gates-accusation */
.scn-city-gates-accusation {
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a870 60%, #806040 100%),
              radial-gradient(ellipse at 30% 60%, rgba(200,168,100,0.4) 0%, transparent 70%);
}
.scn-city-gates-accusation .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, #d0e8ff 50%, #e0f0ff 100%);
  animation: cga-sky 20s ease-in-out infinite alternate;
}
.scn-city-gates-accusation .gate-arch {
  position:absolute; bottom:30%; left:50%; width:120px; height:100px;
  background: radial-gradient(ellipse 100% 100%, transparent 0%, transparent 60%, #6a4a3a 60%, #4a2a1a 100%);
  transform:translateX(-50%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: cga-arch 14s ease-in-out infinite;
}
.scn-city-gates-accusation .gate-left {
  position:absolute; bottom:30%; left:calc(50% - 60px); width:60px; height:80px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 40%, #6a4a3a 100%);
  border-radius: 4px 0 0 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: cga-gate-swing 12s ease-in-out infinite;
}
.scn-city-gates-accusation .gate-right {
  position:absolute; bottom:30%; left:50%; width:60px; height:80px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 60%, #6a4a3a 100%);
  border-radius: 0 4px 4px 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: cga-gate-swing 12s ease-in-out infinite reverse;
}
.scn-city-gates-accusation .duke {
  position:absolute; bottom:28%; left:48%; width:20px; height:50px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 50%, #804020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cga-figure 6s ease-in-out infinite;
}
.scn-city-gates-accusation .angelo {
  position:absolute; bottom:28%; left:40%; width:18px; height:48px;
  background: linear-gradient(180deg, #607080 0%, #405060 50%, #203040 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: cga-angelo 8s ease-in-out infinite;
}
.scn-city-gates-accusation .isabella {
  position:absolute; bottom:26%; left:56%; width:16px; height:44px;
  background: linear-gradient(180deg, #d0b090 0%, #b09878 50%, #907860 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 40%;
  animation: cga-isabella 9s ease-in-out infinite;
}
.scn-city-gates-accusation .mariana {
  position:absolute; bottom:26%; left:60%; width:14px; height:42px;
  background: linear-gradient(180deg, #c0a088 0%, #a08870 50%, #806850 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 40%;
  box-shadow: 0 0 0 1px #e0c0a0; /* veil */
  animation: cga-mariana 10s ease-in-out infinite;
}
.scn-city-gates-accusation .dust {
  position:absolute; bottom:20%; left:0; right:0; height:10%;
  background: linear-gradient(180deg, transparent 0%, rgba(200,180,120,0.2) 50%, transparent 100%);
  filter: blur(4px);
  animation: cga-dust 8s ease-in-out infinite alternate;
}
@keyframes cga-sky {
  0% { opacity:0.9; filter: brightness(1); }
  50% { opacity:1; filter: brightness(1.1); }
  100% { opacity:0.85; filter: brightness(1); }
}
@keyframes cga-arch {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes cga-gate-swing {
  0% { transform: rotateY(0deg); }
  25% { transform: rotateY(8deg); }
  50% { transform: rotateY(-4deg); }
  75% { transform: rotateY(6deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes cga-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cga-angelo {
  0% { transform: rotate(10deg); }
  25% { transform: rotate(15deg); }
  50% { transform: rotate(8deg); }
  75% { transform: rotate(12deg); }
  100% { transform: rotate(10deg); }
}
@keyframes cga-isabella {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes cga-mariana {
  0% { transform: translateY(0); opacity:0.9; }
  50% { transform: translateY(-3px); opacity:1; }
  100% { transform: translateY(0); opacity:0.9; }
}
@keyframes cga-dust {
  0% { opacity:0.3; transform: translateY(0); }
  50% { opacity:0.6; transform: translateY(-4px); }
  100% { opacity:0.3; transform: translateY(2px); }
}

/* scene: duke-exposed-angelo-confesses */
.scn-duke-exposed-angelo-confesses {
  background: linear-gradient(180deg, #d4c4a0 0%, #b4a080 40%, #806850 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,230,180,0.3) 0%, transparent 60%);
}
.scn-duke-exposed-angelo-confesses .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  animation: dea-wall 15s ease-in-out infinite alternate;
}
.scn-duke-exposed-angelo-confesses .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
  animation: dea-floor 10s ease-in-out infinite;
}
.scn-duke-exposed-angelo-confesses .duke-hood {
  position:absolute; bottom:45%; left:50%; width:24px; height:36px;
  background: linear-gradient(180deg, #a08060 0%, #806040 50%, #604020 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: dea-hood 4s ease-in-out infinite;
}
.scn-duke-exposed-angelo-confesses .lucio {
  position:absolute; bottom:35%; left:44%; width:18px; height:48px;
  background: linear-gradient(180deg, #c08050 0%, #a06030 50%, #804020 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: dea-lucio 6s ease-in-out infinite;
}
.scn-duke-exposed-angelo-confesses .angelo {
  position:absolute; bottom:35%; left:56%; width:18px; height:48px;
  background: linear-gradient(180deg, #607080 0%, #405060 50%, #203040 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(8deg);
  animation: dea-angelo 8s ease-in-out infinite;
}
.scn-duke-exposed-angelo-confesses .crowd-left {
  position:absolute; bottom:32%; left:10%; width:40px; height:60px;
  background: radial-gradient(ellipse 100% 100%, #a08868 0%, #806050 50%, #604030 100%);
  border-radius: 60% 40% 40% 40% / 50% 60% 40% 40%;
  filter: blur(3px);
  opacity:0.7;
  animation: dea-crowd 12s ease-in-out infinite;
}
.scn-duke-exposed-angelo-confesses .crowd-right {
  position:absolute; bottom:32%; right:10%; width:50px; height:65px;
  background: radial-gradient(ellipse 100% 100%, #a08868 0%, #806050 50%, #604030 100%);
  border-radius: 40% 60% 30% 50% / 50% 50% 40% 60%;
  filter: blur(4px);
  opacity:0.6;
  animation: dea-crowd 15s ease-in-out infinite reverse;
}
.scn-duke-exposed-angelo-confesses .light-shaft {
  position:absolute; top:0; left:35%; width:30%; height:80%;
  background: linear-gradient(180deg, rgba(255,230,180,0.25) 0%, transparent 100%);
  filter: blur(8px);
  animation: dea-shaft 7s ease-in-out infinite alternate;
}
@keyframes dea-wall {
  0% { opacity:0.95; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes dea-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dea-hood {
  0% { transform: translateX(-50%) rotate(5deg) scaleY(1); }
  25% { transform: translateX(-50%) rotate(10deg) scaleY(1.05); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1); }
  75% { transform: translateX(-50%) rotate(8deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(5deg) scaleY(1); }
}
@keyframes dea-lucio {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(-6deg) translateY(0); }
  75% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes dea-angelo {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-3px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes dea-crowd {
  0% { opacity:0.7; transform: translateY(0); }
  50% { opacity:0.9; transform: translateY(-4px); }
  100% { opacity:0.7; transform: translateY(2px); }
}
@keyframes dea-shaft {
  0% { opacity:0.4; transform: scaleX(0.8); }
  50% { opacity:0.7; transform: scaleX(1); }
  100% { opacity:0.3; transform: scaleX(0.9); }
}

/* scene: mercy-pardon-marriages */
.scn-mercy-pardon-marriages {
  background: linear-gradient(180deg, #f5e0b8 0%, #e0c898 40%, #c8a878 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,220,160,0.5) 0%, transparent 70%);
}
.scn-mercy-pardon-marriages .bg-warm {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #f0d8b0 0%, #d8c098 100%);
  animation: mpm-bg 18s ease-in-out infinite alternate;
}
.scn-mercy-pardon-marriages .window {
  position:absolute; top:10%; left:30%; width:80px; height:100px;
  background: linear-gradient(135deg, #e0f0ff 0%, #b0d0f0 50%, #80b0e0 100%);
  border: 4px solid #6a4a3a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,50,0.2), 0 8px 20px rgba(0,0,0,0.3);
  animation: mpm-window 20s ease-in-out infinite;
}
.scn-mercy-pardon-marriages .duke-throne {
  position:absolute; bottom:25%; left:50%; width:30px; height:50px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 50%, #804020 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px rgba(192,128,64,0.3);
  animation: mpm-duke 8s ease-in-out infinite;
}
.scn-mercy-pardon-marriages .mariana {
  position:absolute; bottom:28%; left:38%; width:16px; height:40px;
  background: linear-gradient(180deg, #d0b090 0%, #b09878 50%, #907860 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 40%;
  transform: rotate(-5deg);
  animation: mpm-plea 6s ease-in-out infinite;
}
.scn-mercy-pardon-marriages .isabella {
  position:absolute; bottom:28%; left:44%; width:16px; height:40px;
  background: linear-gradient(180deg, #c0a088 0%, #a08870 50%, #806850 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 40%;
  transform: rotate(-2deg);
  animation: mpm-plea 7s ease-in-out infinite -1s;
}
.scn-mercy-pardon-marriages .claudio {
  position:absolute; bottom:25%; left:60%; width:18px; height:45px;
  background: linear-gradient(180deg, #a09070 0%, #807050 50%, #605030 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  animation: mpm-claudio 10s ease-in-out infinite;
}
.scn-mercy-pardon-marriages .lucio {
  position:absolute; bottom:25%; right:20%; width:16px; height:42px;
  background: linear-gradient(180deg, #c08050 0%, #a06030 50%, #804020 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: mpm-lucio 9s ease-in-out infinite;
}
.scn-mercy-pardon-marriages .light-rays {
  position:absolute; top:0; left:20%; width:60%; height:100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.15) 0%, transparent 40%, rgba(255,240,200,0.1) 60%, transparent 100%);
  filter: blur(12px);
  animation: mpm-rays 12s ease-in-out infinite alternate;
}
@keyframes mpm-bg {
  0% { opacity:0.95; }
  50% { opacity:1; filter: brightness(1.05); }
  100% { opacity:0.9; }
}
@keyframes mpm-window {
  0% { box-shadow: inset 0 0 30px rgba(0,0,50,0.2), 0 8px 20px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 50px rgba(0,0,50,0.3), 0 8px 30px rgba(0,0,0,0.4); }
  100% { box-shadow: inset 0 0 30px rgba(0,0,50,0.2), 0 8px 20px rgba(0,0,0,0.3); }
}
@keyframes mpm-duke {
  0% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-50%) translateY(-2px); }
  50% { transform: translateX(-50%) translateY(-1px); }
  75% { transform: translateX(-50%) translateY(0); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes mpm-plea {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-4px) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(-6deg); }
  75% { transform: translateY(-6px) rotate(-4deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes mpm-claudio {
  0% { opacity:0.8; transform: scaleY(0.95); }
  50% { opacity:1; transform: scaleY(1); }
  100% { opacity:0.8; transform: scaleY(0.95); }
}
@keyframes mpm-lucio {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes mpm-rays {
  0% { opacity:0.3; transform: scaleX(0.8) rotate(0deg); }
  50% { opacity:0.6; transform: scaleX(1.1) rotate(3deg); }
  100% { opacity:0.2; transform: scaleX(0.9) rotate(-2deg); }
}

/* Scene: duke-prison-visit */
.scn-duke-prison-visit {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #1e1e1e 60%, #141414 100%),
    repeating-linear-gradient(90deg, transparent 0%, transparent 4%, rgba(40,40,40,0.3) 4%, rgba(40,40,40,0.3) 6%, transparent 6%, transparent 100%);
}
.scn-duke-prison-visit .wall-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 50%, #0f0f0f 100%);
  animation: dpv-wall 60s ease-in-out infinite;
}
.scn-duke-prison-visit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-top: 2px solid #3a3a3a;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-duke-prison-visit .bars {
  width: 6px; top: 5%; bottom: 25%;
  position: absolute; background: #3a3a3a; border-radius: 3px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-duke-prison-visit .bars-left { left: 20%; }
.scn-duke-prison-visit .bars-right { right: 20%; }
.scn-duke-prison-visit .lantern {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%; 
  box-shadow: 0 0 30px 10px rgba(200,150,80,0.3), 0 0 60px 20px rgba(200,150,80,0.1);
  animation: dpv-lantern 4s ease-in-out infinite alternate;
}
.scn-duke-prison-visit .figure-duke {
  position: absolute; bottom: 26%; left: 35%;
  width: 24px; height: 46px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dpv-figure-duke 8s ease-in-out infinite;
}
.scn-duke-prison-visit .figure-juliet {
  position: absolute; bottom: 26%; left: 52%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dpv-figure-juliet 8s ease-in-out infinite reverse;
}
.scn-duke-prison-visit .shadow-duke {
  position: absolute; bottom: 0; left: 30%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: dpv-shadow 8s ease-in-out infinite;
}
@keyframes dpv-wall { 0%,100% { opacity:0.9 } 50% { opacity:0.7 } }
@keyframes dpv-lantern { 0% { box-shadow: 0 0 20px 5px rgba(200,150,80,0.2); opacity:0.8 } 50% { box-shadow: 0 0 40px 12px rgba(200,150,80,0.4); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(200,150,80,0.25); opacity:0.85 } }
@keyframes dpv-figure-duke { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(2px) rotate(1deg) } }
@keyframes dpv-figure-juliet { 0%,100% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-3px) rotate(-2deg) } 40% { transform: translateY(0) rotate(0deg) } 60% { transform: translateY(2px) rotate(2deg) } 80% { transform: translateY(0) rotate(0deg) } }
@keyframes dpv-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

/* Scene: angelo-struggles-desire */
.scn-angelo-struggles-desire {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1e1e2e 60%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(100,80,60,0.15) 0%, transparent 70%);
}
.scn-angelo-struggles-desire .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%);
}
.scn-angelo-struggles-desire .desk {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-angelo-struggles-desire .candle {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-angelo-struggles-desire .candle-flame {
  position: absolute; bottom: 58%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 14px;
  background: radial-gradient(ellipse, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.4), 0 0 40px 16px rgba(255,200,80,0.2);
  animation: asd-flame 1.8s ease-in-out infinite alternate;
}
.scn-angelo-struggles-desire .figure-angelo {
  position: absolute; bottom: 26%; left: 38%;
  width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asd-angelo 3s ease-in-out infinite;
}
.scn-angelo-struggles-desire .shadow-isabella {
  position: absolute; bottom: 26%; right: 30%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, rgba(40,30,50,0.6) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: asd-shadow-i 5s ease-in-out infinite;
}
.scn-angelo-struggles-desire .prayer-book {
  position: absolute; bottom: 30%; left: 45%;
  width: 14px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: asd-book 8s ease-in-out infinite;
}
@keyframes asd-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-3deg); opacity:0.9 } 50% { transform: translateX(-50%) scaleY(1.15) rotate(2deg); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.95) rotate(-1deg); opacity:0.8 } }
@keyframes asd-angelo { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(3px) rotate(1deg) } }
@keyframes asd-shadow-i { 0%,100% { transform: translateX(0) scaleY(1); opacity:0.5 } 50% { transform: translateX(-5px) scaleY(1.1); opacity:0.7 } }
@keyframes asd-book { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(3deg) } }

/* Scene: isabella-threatens-expose */
.scn-isabella-threatens-expose {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 30%, #1a1a2a 60%, #0e0e1e 100%),
    radial-gradient(ellipse at 30% 50%, rgba(120,100,80,0.1) 0%, transparent 70%);
}
.scn-isabella-threatens-expose .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%);
  animation: ite-chamber 30s ease-in-out infinite alternate;
}
.scn-isabella-threatens-expose .table {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
}
.scn-isabella-threatens-expose .figure-isabella {
  position: absolute; bottom: 26%; left: 38%;
  width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ite-isabella 2.5s ease-in-out infinite;
}
.scn-isabella-threatens-expose .figure-angelo {
  position: absolute; bottom: 26%; right: 35%;
  width: 24px; height: 46px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ite-angelo 3s ease-in-out infinite;
}
.scn-isabella-threatens-expose .scroll {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ite-scroll 6s ease-in-out infinite;
}
.scn-isabella-threatens-expose .shadow-angelo {
  position: absolute; bottom: 0; right: 20%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: ite-shadow-a 3s ease-in-out infinite;
}
.scn-isabella-threatens-expose .candle-flicker {
  position: absolute; top: 20%; left: 20%;
  width: 10px; height: 20px;
  background: radial-gradient(ellipse, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,200,80,0.3);
  animation: ite-candle 2.4s ease-in-out infinite alternate;
}
@keyframes ite-chamber { 0%,100% { opacity:0.9 } 50% { opacity:0.7 } }
@keyframes ite-isabella { 0%,100% { transform: translateY(0) rotate(-1deg) } 20% { transform: translateY(-3px) rotate(2deg) } 40% { transform: translateY(0) rotate(0deg) } 60% { transform: translateY(2px) rotate(-2deg) } 80% { transform: translateY(0) rotate(1deg) } }
@keyframes ite-angelo { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(2px) rotate(3deg) } 60% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes ite-scroll { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(15deg) } }
@keyframes ite-shadow-a { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }
@keyframes ite-candle { 0% { transform: scaleY(1) rotate(-5deg); opacity:0.8 } 50% { transform: scaleY(1.2) rotate(3deg); opacity:1 } 100% { transform: scaleY(0.9) rotate(-2deg); opacity:0.7 } }

/* Scene: claudio-fears-death */
.scn-claudio-fears-death {
  background:
    linear-gradient(180deg, #0f0f0f 0%, #1a1a1a 30%, #0a0a0a 60%, #050505 100%),
    repeating-linear-gradient(45deg, transparent 0%, transparent 3%, rgba(30,30,30,0.2) 3%, rgba(30,30,30,0.2) 6%, transparent 6%, transparent 100%);
}
.scn-claudio-fears-death .cell-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-claudio-fears-death .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-top: 2px solid #2a2a2a;
}
.scn-claudio-fears-death .bars {
  position: absolute; top: 10%; bottom: 20%; left: 15%; right: 15%;
  background: repeating-linear-gradient(90deg, #3a3a3a 0%, #3a3a3a 6px, transparent 6px, transparent 12px);
  opacity: 0.4;
}
.scn-claudio-fears-death .figure-claudio {
  position: absolute; bottom: 22%; left: 40%;
  width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfd-claudio 2s ease-in-out infinite;
}
.scn-claudio-fears-death .figure-duke {
  position: absolute; bottom: 22%; right: 38%;
  width: 24px; height: 46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfd-duke 4s ease-in-out infinite;
}
.scn-claudio-fears-death .bible {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: cfd-bible 6s ease-in-out infinite;
}
.scn-claudio-fears-death .lantern-glow {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,150,80,0.15) 0%, transparent 100%);
  border-radius: 50%;
  animation: cfd-lantern 5s ease-in-out infinite alternate;
}
.scn-claudio-fears-death .chain {
  position: absolute; top: 15%; left: 25%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: cfd-chain 3s ease-in-out infinite;
}
@keyframes cfd-claudio { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-3deg) } 75% { transform: translateY(3px) rotate(1deg) } }
@keyframes cfd-duke { 0%,100% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-1px) rotate(-1deg) } 66% { transform: translateY(1px) rotate(1deg) } }
@keyframes cfd-bible { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(5deg) } }
@keyframes cfd-lantern { 0% { opacity:0.3; transform: translateX(-50%) scaleY(1) } 50% { opacity:0.6; transform: translateX(-50%) scaleY(1.2) } 100% { opacity:0.4; transform: translateX(-50%) scaleY(0.9) } }
@keyframes cfd-chain { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }

/* escalus-hearing-continued – funny, dim interior */
.scn-escalus-hearing-continued {
  background: 
    radial-gradient(ellipse at 30% 20%, #7a6a4a 0%, transparent 50%),
    linear-gradient(180deg, #3a3325 0%, #2a2418 40%, #1f1a12 100%);
}
.scn-escalus-hearing-continued .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3f2e 0%, #2e2418 100%);
  animation: ehc-wall 20s ease-in-out infinite alternate;
}
.scn-escalus-hearing-continued .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1f1812 0%, #2e2418 100%);
}
.scn-escalus-hearing-continued .bench {
  position: absolute; bottom: 28%; left: 10%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #6b5a3e 0%, #4a3a28 100%);
  border-radius: 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-escalus-hearing-continued .judge {
  position: absolute; bottom: 34%; left: 15%; width: 22%; height: 28%;
  background: radial-gradient(ellipse 70% 80% at 50% 100%, #4a3a28 0%, #2a1f14 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ehc-judge 6s ease-in-out infinite;
}
.scn-escalus-hearing-continued .prisoner {
  position: absolute; bottom: 30%; left: 50%; width: 18%; height: 22%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #3a2a1a 0%, #1f140c 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: ehc-prisoner 4s ease-in-out infinite;
}
.scn-escalus-hearing-continued .lamp {
  position: absolute; top: 12%; left: 45%; width: 10%; height: 18%;
  background: radial-gradient(circle at 50% 80%, #c8a868 0%, #a08040 50%, #604820 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 40px 10px rgba(160,128,64,0.6);
  animation: ehc-lamp 3s ease-in-out infinite alternate;
}
.scn-escalus-hearing-continued .gavel {
  position: absolute; bottom: 35%; left: 8%; width: 6%; height: 4%;
  background: #604020;
  border-radius: 4px;
  transform-origin: bottom left;
  animation: ehc-gavel 2s ease-in-out infinite;
}
.scn-escalus-hearing-continued .stool {
  position: absolute; bottom: 28%; left: 52%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.3);
}
@keyframes ehc-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ehc-judge { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes ehc-prisoner { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes ehc-lamp { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.03) } 100% { opacity: 0.9; transform: scaleY(1) } }
@keyframes ehc-gavel { 0% { transform: rotate(-5deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

/* isabella-plea-mercy – tense, dim interior */
.scn-isabella-plea-mercy {
  background:
    radial-gradient(ellipse at 60% 40%, #3a2a1e 0%, transparent 60%),
    linear-gradient(135deg, #1a1510 0%, #2a2018 30%, #1f1812 100%);
}
.scn-isabella-plea-mercy .dark-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1812 0%, #2a2018 100%);
}
.scn-isabella-plea-mercy .seat {
  position: absolute; bottom: 28%; left: 55%; width: 25%; height: 15%;
  background: linear-gradient(135deg, #4a3a28 0%, #2e1f14 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-isabella-plea-mercy .angelo-shadow {
  position: absolute; bottom: 32%; left: 58%; width: 20%; height: 35%;
  background: radial-gradient(ellipse 60% 80% at 50% 100%, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ipm-angelo 8s ease-in-out infinite;
}
.scn-isabella-plea-mercy .isabella-kneel {
  position: absolute; bottom: 30%; left: 25%; width: 18%; height: 28%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #6a4a3a 0%, #3a2a1a 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ipm-isabella 6s ease-in-out infinite;
}
.scn-isabella-plea-mercy .candle {
  position: absolute; top: 15%; left: 40%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #c8a060 0%, #805020 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 20px 6px #a07030;
  animation: ipm-candle 2s ease-in-out infinite alternate;
}
.scn-isabella-plea-mercy .plea-light {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,140,80,0.4) 0%, transparent 80%);
  animation: ipm-light 5s ease-in-out infinite alternate;
}
.scn-isabella-plea-mercy .chain {
  position: absolute; bottom: 35%; left: 30%; width: 2%; height: 20%;
  background: repeating-linear-gradient(0deg, #604020 0px, #604020 4px, transparent 4px, transparent 8px);
  opacity: 0.5;
  animation: ipm-chain 3s ease-in-out infinite;
}
@keyframes ipm-angelo { 0% { transform: rotate(0deg) } 30% { transform: rotate(1deg) translateY(-2px) } 70% { transform: rotate(-0.5deg) translateY(1px) } 100% { transform: rotate(0deg) } }
@keyframes ipm-isabella { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ipm-candle { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.85; transform: scaleY(1) } }
@keyframes ipm-light { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(1) } }
@keyframes ipm-chain { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }

/* isabella-continues-plea – tense, dim interior */
.scn-isabella-continues-plea {
  background:
    radial-gradient(ellipse at 30% 50%, #3a2a1e 0%, transparent 60%),
    linear-gradient(180deg, #1f1812 0%, #2a2018 40%, #1a1510 100%);
}
.scn-isabella-continues-plea .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1510 100%);
}
.scn-isabella-continues-plea .desk {
  position: absolute; bottom: 20%; left: 40%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-isabella-continues-plea .hands-extended {
  position: absolute; bottom: 28%; left: 30%; width: 15%; height: 20%;
  background: radial-gradient(ellipse 70% 50% at 50% 100%, #8a6a4a 0%, #5a3a2a 80%);
  border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  animation: icp-hands 4s ease-in-out infinite;
}
.scn-isabella-continues-plea .angelo-profile {
  position: absolute; bottom: 24%; left: 55%; width: 18%; height: 30%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #2a1f14 0%, #0a0808 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: icp-angelo 7s ease-in-out infinite alternate;
}
.scn-isabella-continues-plea .curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, #4a3a28 40%, #3a2a1a 100%);
  border-radius: 0 0 0 30%;
  animation: icp-curtain 15s ease-in-out infinite alternate;
}
.scn-isabella-continues-plea .lamp-glow {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,160,80,0.3) 0%, transparent 70%);
  animation: icp-glow 4s ease-in-out infinite alternate;
}
.scn-isabella-continues-plea .tear-drop {
  position: absolute; bottom: 38%; left: 33%; width: 4%; height: 6%;
  background: radial-gradient(circle, #b08060 0%, transparent 100%);
  border-radius: 50%;
  animation: icp-tear 3s ease-in-out infinite;
}
@keyframes icp-hands { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes icp-angelo { 0% { opacity: 0.8; transform: scaleX(-1) rotate(0deg) } 50% { opacity: 1; transform: scaleX(-1) rotate(-1deg) } 100% { opacity: 0.85; transform: scaleX(-1) rotate(0deg) } }
@keyframes icp-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(0) } }
@keyframes icp-glow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes icp-tear { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(8px) scale(0.8) } 100% { transform: translateY(16px) scale(0.5) opacity: 0 } }

/* angelo-inner-turmoil – tense, dim interior */
.scn-angelo-inner-turmoil {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1f14 0%, transparent 70%),
    linear-gradient(180deg, #0f0b08 0%, #1a1410 30%, #251e18 100%);
}
.scn-angelo-inner-turmoil .void-bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 40%, #1f1812 0%, #0f0b08 100%);
}
.scn-angelo-inner-turmoil .angelo-figure {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse 70% 80% at 50% 100%, #2a1f14 0%, #0a0808 90%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ait-figure 5s ease-in-out infinite alternate;
}
.scn-angelo-inner-turmoil .shadow-temptress {
  position: absolute; bottom: 20%; left: 55%; width: 20%; height: 45%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #4a3a28 0%, #1a1410 80%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  opacity: 0.4;
  transform-origin: bottom center;
  animation: ait-shadow 8s ease-in-out infinite;
}
.scn-angelo-inner-turmoil .candle-flame {
  position: absolute; top: 15%; left: 25%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #c8a060 0%, #a07030 50%, #502010 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 30px 8px rgba(160,112,48,0.5);
  animation: ait-flame 1.5s ease-in-out infinite alternate;
}
.scn-angelo-inner-turmoil .chain-links {
  position: absolute; top: 30%; left: 50%; width: 2%; height: 30%;
  background: repeating-linear-gradient(0deg, #604020 0px, #604020 3px, transparent 3px, transparent 6px);
  opacity: 0.3;
  animation: ait-chains 4s ease-in-out infinite;
}
.scn-angelo-inner-turmoil .mirror {
  position: absolute; top: 10%; right: 15%; width: 15%; height: 25%;
  background: linear-gradient(135deg, #5a4a32 0%, #2e1f14 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: ait-mirror 12s ease-in-out infinite alternate;
}
.scn-angelo-inner-turmoil .crest {
  position: absolute; bottom: 22%; left: 42%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #804020 0%, #502010 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: ait-crest 3s ease-in-out infinite;
}
.scn-angelo-inner-turmoil .dust {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 20% 30%, rgba(200,160,80,0.05) 0%, transparent 50%);
  animation: ait-dust 20s linear infinite;
}
@keyframes ait-figure { 0% { transform: rotate(0deg) scale(1) } 30% { transform: rotate(2deg) scale(1.02) translateY(-3px) } 70% { transform: rotate(-1deg) scale(0.98) translateY(2px) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes ait-shadow { 0% { transform: translateX(0) opacity(0.3) } 50% { transform: translateX(10px) opacity(0.5) } 100% { transform: translateX(0) opacity(0.3) } }
@keyframes ait-flame { 0% { transform: scaleY(0.9) scaleX(0.8) translateY(0) } 50% { transform: scaleY(1.2) scaleX(1) translateY(-2px) } 100% { transform: scaleY(0.9) scaleX(0.8) translateY(0) } }
@keyframes ait-chains { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(0) } }
@keyframes ait-mirror { 0% { opacity: 0.5 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes ait-crest { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes ait-dust { 0% { background-position: 0% 0% } 50% { background-position: 50% 100% } 100% { background-position: 100% 0% } }

.scn-isabella-convent-visitor {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d9c4a8 40%, #b8a084 100%),
    radial-gradient(ellipse at 30% 50%, #ffe9c0 0%, transparent 70%);
}
.scn-isabella-convent-visitor .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e6d5b8 0%, #c8b08c 100%); }
.scn-isabella-convent-visitor .window-arch { position:absolute; top:10%; left:8%; width:25%; height:55%; background: linear-gradient(180deg, #ffeac0 0%, #ffd090 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,233,192,0.6); animation: icv-window-glow 6s ease-in-out infinite alternate; }
.scn-isabella-convent-visitor .light-beam { position:absolute; top:15%; left:12%; width:20%; height:60%; background: linear-gradient(90deg, rgba(255,233,192,0.6) 0%, rgba(255,233,192,0) 100%); clip-path: polygon(0 0, 100% 10%, 100% 90%, 0 100%); animation: icv-beam-sway 12s ease-in-out infinite alternate; }
.scn-isabella-convent-visitor .cross-shape { position:absolute; top:8%; left:45%; width:12px; height:50px; background: linear-gradient(180deg, #9a7a58 0%, #6a4a28 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: icv-cross-hover 9s ease-in-out infinite; }
.scn-isabella-convent-visitor .desk-shadow { position:absolute; bottom:15%; left:30%; width:40%; height:18%; background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4); }
.scn-isabella-convent-visitor .figure-isabella { position:absolute; bottom:20%; left:50%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: icv-isabella-breathe 5s ease-in-out infinite; }
.scn-isabella-convent-visitor .figure-lucio { position:absolute; bottom:22%; left:14%; width:20px; height:52px; background: linear-gradient(180deg, #2c2015 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; opacity:0.8; filter: blur(1px); animation: icv-lucio-sway 7s ease-in-out infinite; }
.scn-isabella-convent-visitor .curtain-left { position:absolute; top:0; left:0; width:12%; height:100%; background: linear-gradient(180deg, #6a4a38 0%, #3a2a1a 100%); border-radius: 0 30% 30% 0; animation: icv-curtain 14s ease-in-out infinite alternate; }
.scn-isabella-convent-visitor .curtain-right { position:absolute; top:0; right:0; width:10%; height:100%; background: linear-gradient(180deg, #5a3a28 0%, #2a1a0e 100%); border-radius: 30% 0 0 30%; animation: icv-curtain 14s ease-in-out infinite alternate-reverse; }

@keyframes icv-window-glow {
  0% { box-shadow: 0 0 20px 5px rgba(255,233,192,0.5); opacity:0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(255,233,192,0.8); opacity:1; }
  100% { box-shadow: 0 0 30px 8px rgba(255,233,192,0.6); opacity:0.93; }
}
@keyframes icv-beam-sway {
  0% { transform: skewX(-2deg); opacity:0.6; }
  50% { transform: skewX(2deg); opacity:0.8; }
  100% { transform: skewX(-1deg); opacity:0.7; }
}
@keyframes icv-cross-hover {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
}
@keyframes icv-isabella-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes icv-lucio-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes icv-curtain {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.05); }
}

.scn-lucio-urges-isabella {
  background:
    linear-gradient(180deg, #d9c4a0 0%, #b8a084 40%, #806040 100%),
    radial-gradient(ellipse at 25% 40%, #ffe0a0 0%, transparent 60%);
}
.scn-lucio-urges-isabella .wall-shadow { position:absolute; inset:0; background: linear-gradient(90deg, #a08060 0%, #906848 30%, #705030 100%); }
.scn-lucio-urges-isabella .window-slit { position:absolute; top:12%; left:10%; width:20%; height:60%; background: linear-gradient(180deg, #ffe8c0 0%, #ffc080 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 25px 8px rgba(255,224,160,0.7); animation: lui-window-throb 4s ease-in-out infinite alternate; }
.scn-lucio-urges-isabella .shaft-light { position:absolute; top:20%; left:14%; width:18%; height:65%; background: linear-gradient(90deg, rgba(255,224,160,0.7) 0%, rgba(255,224,160,0) 100%); clip-path: polygon(0 0, 100% 20%, 100% 80%, 0 100%); animation: lui-shaft-jitter 3s ease-in-out infinite; }
.scn-lucio-urges-isabella .figure-isabella-left { position:absolute; bottom:22%; left:30%; width:26px; height:62px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1) translateX(0); animation: lui-isabella-tense 2s ease-in-out infinite; }
.scn-lucio-urges-isabella .figure-lucio-right { position:absolute; bottom:20%; right:25%; width:22px; height:56px; background: linear-gradient(180deg, #2c2015 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: lui-lucio-lean 3s ease-in-out infinite alternate; }
.scn-lucio-urges-isabella .threshold-stripe { position:absolute; bottom:18%; left:0; right:0; height:8%; background: linear-gradient(90deg, #8a6a48 0%, #6a4a28 50%, #8a6a48 100%); box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-lucio-urges-isabella .dust-motes { position:absolute; top:25%; left:15%; width:12%; height:50%; background: radial-gradient(circle at 30% 50%, rgba(255,224,160,0.3) 0%, transparent 70%); filter: blur(3px); animation: lui-dust 7s linear infinite; }

@keyframes lui-window-throb {
  0% { box-shadow: 0 0 15px 3px rgba(255,224,160,0.6); }
  50% { box-shadow: 0 0 35px 12px rgba(255,224,160,0.9); }
  100% { box-shadow: 0 0 20px 5px rgba(255,224,160,0.7); }
}
@keyframes lui-shaft-jitter {
  0% { opacity:0.7; transform: skewX(-3deg); }
  50% { opacity:0.9; transform: skewX(3deg); }
  100% { opacity:0.75; transform: skewX(-2deg); }
}
@keyframes lui-isabella-tense {
  0% { transform: scaleX(-1) translateX(0) scaleY(1); }
  50% { transform: scaleX(-1) translateX(-2px) scaleY(1.03); }
  100% { transform: scaleX(-1) translateX(0) scaleY(1); }
}
@keyframes lui-lucio-lean {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(4px) rotate(3deg); }
}
@keyframes lui-dust {
  0% { transform: translateY(0) scale(1); opacity:0.3; }
  50% { transform: translateY(-15%) scale(1.2); opacity:0.6; }
  100% { transform: translateY(-30%) scale(1); opacity:0.2; }
}

.scn-angelo-hall-strictness {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 40%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 60%);
}
.scn-angelo-hall-strictness .deep-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); }
.scn-angelo-hall-strictness .column-left { position:absolute; top:0; left:10%; width:8%; height:100%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: 4px 0 10px rgba(0,0,0,0.6); }
.scn-angelo-hall-strictness .column-right { position:absolute; top:0; right:10%; width:8%; height:100%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: -4px 0 10px rgba(0,0,0,0.6); }
.scn-angelo-hall-strictness .bench { position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #6a5038 0%, #4a3820 100%); border-radius: 20px 20px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.7); }
.scn-angelo-hall-strictness .desk-heavy { position:absolute; bottom:30%; left:35%; width:30%; height:25%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.8); }
.scn-angelo-hall-strictness .scroll-open { position:absolute; bottom:38%; left:40%; width:20%; height:12%; background: linear-gradient(180deg, #d4b888 0%, #b09868 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: ahs-scroll-unroll 8s ease-in-out infinite alternate; }
.scn-angelo-hall-strictness .figure-angelo { position:absolute; bottom:28%; left:45%; width:28px; height:68px; background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scale(1.1); animation: ahs-angelo-stiff 6s ease-in-out infinite; }
.scn-angelo-hall-strictness .gavel-strike { position:absolute; bottom:32%; left:48%; width:12px; height:8px; background: #8a6a48; border-radius: 50%; box-shadow: 0 0 0 2px #5a3a20; animation: ahs-gavel 2s ease-in-out infinite; }

@keyframes ahs-scroll-unroll {
  0% { transform: scaleX(0.8) translateY(0); opacity:0.8; }
  50% { transform: scaleX(1) translateY(-4px); opacity:1; }
  100% { transform: scaleX(0.85) translateY(0); opacity:0.85; }
}
@keyframes ahs-angelo-stiff {
  0%,100% { transform: scale(1.1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(1deg); }
}
@keyframes ahs-gavel {
  0% { transform: translateY(0) rotate(-10deg); }
  25% { transform: translateY(-10px) rotate(0deg); }
  50% { transform: translateY(0) rotate(10deg); }
  75% { transform: translateY(-8px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-10deg); }
}

.scn-comic-hearing-confusion {
  background:
    linear-gradient(180deg, #f0e6c0 0%, #d8c8a0 50%, #c0a880 100%),
    radial-gradient(ellipse at 50% 80%, #ffe8c0 0%, transparent 70%);
}
.scn-comic-hearing-confusion .bright-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b488 0%, #a08060 100%); }
.scn-comic-hearing-confusion .judge-bench { position:absolute; bottom:35%; left:10%; width:30%; height:20%; background: linear-gradient(180deg, #b89870 0%, #8a6848 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,0.3); animation: chc-bench-wobble 5s ease-in-out infinite; }
.scn-comic-hearing-confusion .witness-stand { position:absolute; bottom:28%; left:55%; width:15%; height:40%; background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%); border-radius: 10% 10% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.2); }
.scn-comic-hearing-confusion .figure-pompey { position:absolute; bottom:30%; left:52%; width:20px; height:50px; background: linear-gradient(180deg, #c8a878 0%, #8a6848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: chc-pompey-jig 2s ease-in-out infinite; }
.scn-comic-hearing-confusion .figure-froth { position:absolute; bottom:28%; left:70%; width:22px; height:48px; background: linear-gradient(180deg, #8a7058 0%, #5a4030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: chc-froth-sway 3s ease-in-out infinite alternate; }
.scn-comic-hearing-confusion .figure-elbow { position:absolute; bottom:30%; left:30%; width:24px; height:56px; background: linear-gradient(180deg, #7a6048 0%, #4a3828 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-20px); animation: chc-elbow-twitch 1.5s ease-in-out infinite; }
.scn-comic-hearing-confusion .gavel-bounce { position:absolute; bottom:38%; left:15%; width:14px; height:10px; background: #8a6a48; border-radius: 50%; box-shadow: 0 0 0 3px #5a3a20; animation: chc-gavel-bounce 4s ease-in-out infinite; }
.scn-comic-hearing-confusion .comic-star { position:absolute; top:15%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #ffd700 0%, #ffb800 60%, transparent 70%); border-radius: 50%; animation: chc-star-pop 2s ease-in-out infinite; }

@keyframes chc-bench-wobble {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes chc-pompey-jig {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes chc-froth-sway {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(8px) rotate(8deg); }
}
@keyframes chc-elbow-twitch {
  0% { transform: translateX(-20px) rotate(0deg); }
  20% { transform: translateX(-18px) rotate(-3deg); }
  40% { transform: translateX(-20px) rotate(3deg); }
  60% { transform: translateX(-22px) rotate(-2deg); }
  80% { transform: translateX(-20px) rotate(2deg); }
  100% { transform: translateX(-20px) rotate(0deg); }
}
@keyframes chc-gavel-bounce {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-12px) scale(1.1); }
  50% { transform: translateY(0) scale(0.9); }
  70% { transform: translateY(-6px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes chc-star-pop {
  0% { transform: scale(0); opacity:0; }
  50% { transform: scale(1.2); opacity:1; }
  100% { transform: scale(0.8); opacity:0.6; }
}

.scn-isabella-rejects-plea {
  background:
    linear-gradient(180deg, #1f1815 0%, #2a1f1a 40%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-isabella-rejects-plea .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1f1815 0%, #0d0a08 100%); }
.scn-isabella-rejects-plea .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1f1a 0%, #120d0a 100%); border-radius: 20% 20% 0 0; }
.scn-isabella-rejects-plea .figure-isabella { position:absolute; bottom:20%; left:38%; width:28px; height:70px; background: linear-gradient(180deg, #3a2a20 0%, #1a120e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: irp-figure 3s ease-in-out infinite; }
.scn-isabella-rejects-plea .arm { position:absolute; bottom:58%; left:46%; width:22px; height:5px; background: linear-gradient(90deg, #2a1f1a 0%, #4d362c 100%); border-radius: 0 50% 50% 0; transform-origin: 0% 50%; animation: irp-arm 2.5s ease-in-out infinite; }
.scn-isabella-rejects-plea .candle { position:absolute; bottom:50%; left:54%; width:4px; height:12px; background: linear-gradient(180deg, #e0c090 0%, #806040 100%); border-radius: 2px; }
.scn-isabella-rejects-plea .glow { position:absolute; bottom:56%; left:53.5%; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 100%); border-radius:50%; animation: irp-glow 1.5s ease-in-out infinite alternate; box-shadow: 0 0 20px 8px rgba(255,208,128,0.5); }
.scn-isabella-rejects-plea .shadow { position:absolute; bottom:18%; left:35%; width:40px; height:20px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(4px); transform-origin: center center; animation: irp-shadow 4s ease-in-out infinite; }
@keyframes irp-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes irp-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-20deg); } }
@keyframes irp-glow { 0% { opacity:0.7; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes irp-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(4px) scale(0.95) skewX(-5deg); } 100% { transform: translateX(0) scale(1); } }

.scn-duke-bed-trick-plan {
  background:
    linear-gradient(180deg, #1c1510 0%, #2b2018 50%, #0e0905 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-duke-bed-trick-plan .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1c1510 0%, transparent 50%, #0e0905 100%); }
.scn-duke-bed-trick-plan .table { position:absolute; bottom:15%; left:40%; width:60px; height:6px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f15 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.6); }
.scn-duke-bed-trick-plan .duke { position:absolute; bottom:20%; left:32%; width:28px; height:68px; background: linear-gradient(180deg, #3a2a20 0%, #1a120c 100%); border-radius: 50% 50% 30% 30% / 55% 55% 45% 45%; transform-origin:bottom center; animation: dbt-duke 5s ease-in-out infinite; }
.scn-duke-bed-trick-plan .duke::after { content:''; position:absolute; top:2px; left:2px; width:24px; height:10px; background: #1a120c; border-radius: 50% 50% 0 0; transform:rotate(-10deg); } /* hat brim */
.scn-duke-bed-trick-plan .isabella { position:absolute; bottom:22%; left:50%; width:22px; height:60px; background: linear-gradient(180deg, #4a3a30 0%, #2a1f18 100%); border-radius: 40% 40% 30% 30% / 50% 50% 50% 50%; transform-origin:bottom center; animation: dbt-isabella 4.5s ease-in-out infinite; }
.scn-duke-bed-trick-plan .candle { position:absolute; bottom:40%; left:54%; width:3px; height:10px; background: linear-gradient(180deg, #d0b090 0%, #705030 100%); border-radius: 1px; }
.scn-duke-bed-trick-plan .glow { position:absolute; bottom:46%; left:53.5%; width:10px; height:10px; background: radial-gradient(circle, #ffd090 0%, rgba(255,208,144,0.3) 60%, transparent 100%); border-radius:50%; animation: dbt-glow 2s ease-in-out infinite alternate; box-shadow: 0 0 15px 6px rgba(255,208,144,0.4); }
.scn-duke-bed-trick-plan .shadow { position:absolute; bottom:10%; left:30%; width:50px; height:15px; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(6px); animation: dbt-shadow 6s ease-in-out infinite; }
@keyframes dbt-duke { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dbt-isabella { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes dbt-glow { 0% { opacity:0.8; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.15); } }
@keyframes dbt-shadow { 0% { transform: skewX(0deg) translateX(0); } 50% { transform: skewX(-8deg) translateX(5px); } 100% { transform: skewX(0deg) translateX(0); } }

.scn-lucio-mocks-court {
  background:
    linear-gradient(180deg, #8fb5d0 0%, #c4dae8 30%, #e8f0e0 70%, #b8a080 100%),
    radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 50%);
}
.scn-lucio-mocks-court .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #6a90b0 0%, #b8d0e0 100%); animation: lmc-sky 12s ease-in-out infinite alternate; }
.scn-lucio-mocks-court .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 10% 10% 0 0; }
.scn-lucio-mocks-court .pillar { position:absolute; bottom:40%; left:20%; width:18px; height:60%; background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%); border-radius: 4px; box-shadow: 2px 0 4px rgba(0,0,0,0.2); }
.scn-lucio-mocks-court .figure-lucio { position:absolute; bottom:30%; left:30%; width:24px; height:55px; background: linear-gradient(180deg, #2858a0 0%, #1a3870 100%); border-radius: 50% 50% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: lmc-lucio 3s ease-in-out infinite; }
.scn-lucio-mocks-court .hand-lucio { position:absolute; bottom:48%; left:34%; width:18px; height:4px; background: linear-gradient(90deg, #2858a0 0%, #4068b0 100%); border-radius: 0 50% 50% 0; transform-origin: 0% 50%; animation: lmc-hand 2s ease-in-out infinite; }
.scn-lucio-mocks-court .figure-elbow { position:absolute; bottom:30%; left:48%; width:22px; height:50px; background: linear-gradient(180deg, #705840 0%, #483828 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: lmc-elbow 4s ease-in-out infinite; }
.scn-lucio-mocks-court .figure-pompey { position:absolute; bottom:30%; left:62%; width:20px; height:45px; background: linear-gradient(180deg, #388040 0%, #205028 100%); border-radius: 50% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: lmc-pompey 3.5s ease-in-out infinite; }
.scn-lucio-mocks-court .shadow-dance { position:absolute; bottom:20%; left:28%; width:80px; height:12px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(3px); animation: lmc-shadow 5s ease-in-out infinite; }
@keyframes lmc-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes lmc-lucio { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lmc-hand { 0% { transform: rotate(-30deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(-30deg); } }
@keyframes lmc-elbow { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lmc-pompey { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-2px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes lmc-shadow { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(10px) skewX(-10deg); } 100% { transform: translateX(0) skewX(0deg); } }

.scn-mariana-agrees-trick {
  background:
    linear-gradient(180deg, #0c1428 0%, #1a2a48 30%, #2a3a5a 70%, #1a2840 100%),
    radial-gradient(ellipse at 50% 20%, #2a4a6a 0%, transparent 70%);
}
.scn-mariana-agrees-trick .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(176,192,208,0.5); animation: mta-moon 10s ease-in-out infinite alternate; }
.scn-mariana-agrees-trick .water { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a48 0%, #0a1420 100%); border-radius: 30% 70% 0 0 / 20% 30% 0 0; animation: mta-water 8s ease-in-out infinite; }
.scn-mariana-agrees-trick .grange { position:absolute; bottom:32%; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #283050 0%, #182030 100%); border-radius: 2px 2px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-mariana-agrees-trick .grange::before { content:''; position:absolute; top:0; left:-10px; width:15px; height:15px; background: #203050; clip-path: polygon(50% 0%, 100% 100%, 0% 100%); }
.scn-mariana-agrees-trick .figure-mariana { position:absolute; bottom:28%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #385070 0%, #1a2840 100%); border-radius: 50% 50% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: mta-figure 6s ease-in-out infinite; }
.scn-mariana-agrees-trick .window-glow { position:absolute; bottom:38%; left:22%; width:10px; height:14px; background: radial-gradient(circle, #e8c880 0%, rgba(232,200,128,0.3) 60%, transparent 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(232,200,128,0.4); animation: mta-glow 4s ease-in-out infinite alternate; }
.scn-mariana-agrees-trick .reflection { position:absolute; bottom:30%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, rgba(176,192,208,0.3) 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(3px); animation: mta-reflection 7s ease-in-out infinite; }
@keyframes mta-moon { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-4px) scale(1.02); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.85; } }
@keyframes mta-water { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes mta-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mta-glow { 0% { opacity:0.7; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes mta-reflection { 0% { opacity:0.3; transform: translateY(0) scale(1); } 50% { opacity:0.6; transform: translateY(-2px) scale(0.95); } 100% { opacity:0.3; transform: translateY(0) scale(1); } }

.scn-pompey-brothel-crackdown { background: linear-gradient(180deg, #feedc0 0%, #f5d79a 30%, #d4a55e 70%, #a07030 100%), radial-gradient(ellipse at 50% 0%, #fffde8 0%, transparent 60%); }

.scn-pompey-brothel-crackdown .sky-warm { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fce8b0 0%, #f5d58a 60%, #e8c070 100%); animation: pb1-skydance 20s ease-in-out infinite alternate; }
.scn-pompey-brothel-crackdown .sun { position:absolute; top:8%; left:75%; width:50px; height:50px; background: radial-gradient(circle, #fffae0 0%, #fce8a0 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(252,232,160,.4), 0 0 120px 60px rgba(252,232,160,.2); animation: pb1-sunpulse 8s ease-in-out infinite alternate; }
.scn-pompey-brothel-crackdown .bldg-left { position:absolute; bottom:30%; left:2%; width:35%; height:55%; background: linear-gradient(180deg, #d4b080 0%, #b89060 40%, #8a6a3e 100%); border-radius: 6% 6% 0 0; box-shadow: inset -8px 0 20px rgba(0,0,0,.3); }
.scn-pompey-brothel-crackdown .bldg-right { position:absolute; bottom:30%; right:0; width:40%; height:62%; background: linear-gradient(180deg, #c8a070 0%, #a88050 40%, #7a5a30 100%); border-radius: 6% 6% 0 0; box-shadow: inset 8px 0 20px rgba(0,0,0,.25); }
.scn-pompey-brothel-crackdown .awning { position:absolute; bottom:52%; left:30%; width:28%; height:12%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: pb1-awntilt 6s ease-in-out infinite alternate; }
.scn-pompey-brothel-crackdown .figure-pompey { position:absolute; bottom:28%; left:38%; width:20px; height:42px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.3); animation: pb1-gesture 3s ease-in-out infinite; }
.scn-pompey-brothel-crackdown .figure-mistress { position:absolute; bottom:28%; left:44%; width:22px; height:46px; background: linear-gradient(180deg, #b87878 0%, #7a4a4a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pb1-listen 4s ease-in-out infinite; }
.scn-pompey-brothel-crackdown .figure-prisoner { position:absolute; bottom:26%; left:60%; width:18px; height:38px; background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pb1-march 6s ease-in-out infinite; }
.scn-pompey-brothel-crackdown .shadow-stripe { position:absolute; bottom:28%; left:0; right:0; height:6%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 30%, rgba(0,0,0,.25) 50%, rgba(0,0,0,.15) 70%, transparent 100%); animation: pb1-shadowmove 12s ease-in-out infinite alternate; }

@keyframes pb1-skydance { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes pb1-sunpulse { 0% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(252,232,160,.4); } 50% { transform: scale(1.05); box-shadow: 0 0 80px 40px rgba(252,232,160,.5); } 100% { transform: scale(.98); box-shadow: 0 0 50px 25px rgba(252,232,160,.35); } }
@keyframes pb1-awntilt { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes pb1-gesture { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(4deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes pb1-listen { 0% { transform: translateY(0); } 30% { transform: translateY(-2px); } 60% { transform: translateY(0); } 100% { transform: translateY(-1px); } }
@keyframes pb1-march { 0% { transform: translateX(-4px) rotate(0deg); } 20% { transform: translateX(-2px) rotate(2deg); } 40% { transform: translateX(0) rotate(-2deg); } 60% { transform: translateX(2px) rotate(2deg); } 80% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(6px) rotate(0deg); } }
@keyframes pb1-shadowmove { 0% { transform: translateX(-5%); opacity:.6; } 50% { transform: translateX(5%); opacity:.8; } 100% { transform: translateX(-5%); opacity:.6; } }

.scn-claudio-desperate-plea { background: linear-gradient(180deg, #d4c8b8 0%, #c0b09a 30%, #a89880 60%, #7a6a5a 100%), radial-gradient(ellipse at 20% 30%, #fffde8 0%, transparent 50%); }

.scn-claudio-desperate-plea .wall-bright { position:absolute; inset:0 55% 0 0; background: linear-gradient(135deg, #e8dec8 0%, #c8b8a0 60%, #a89880 100%); animation: cd1-lightshift 15s ease-in-out infinite alternate; }
.scn-claudio-desperate-plea .wall-dark { position:absolute; inset:0 0 0 55%; background: linear-gradient(225deg, #8a7a6a 0%, #5a4a3a 60%, #3a2a1a 100%); box-shadow: inset 12px 0 30px rgba(0,0,0,.5); }
.scn-claudio-desperate-plea .floor-stripe { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-claudio-desperate-plea .figure-lucio { position:absolute; bottom:14%; left:20%; width:22px; height:46px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: -3px 0 8px rgba(0,0,0,.4); animation: cd1-leanin 5s ease-in-out infinite; }
.scn-claudio-desperate-plea .figure-claudio { position:absolute; bottom:12%; right:22%; width:20px; height:44px; background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; box-shadow: 3px 0 8px rgba(0,0,0,.5); animation: cd1-despair 6s ease-in-out infinite; }
.scn-claudio-desperate-plea .grate-shadow { position:absolute; top:0; left:45%; width:12%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 30%, transparent 70%, rgba(0,0,0,.2) 100%); background-size: 12px 12px; animation: cd1-grateshift 20s linear infinite; }
.scn-claudio-desperate-plea .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,240,210,.15) 0%, transparent 50%); filter: blur(3px); animation: cd1-dust 8s ease-in-out infinite alternate; }

@keyframes cd1-lightshift { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes cd1-leanin { 0% { transform: translateX(0) rotate(4deg); } 30% { transform: translateX(3px) rotate(6deg); } 60% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(4deg); } }
@keyframes cd1-despair { 0% { transform: translateY(0) rotate(-2deg); } 20% { transform: translateY(2px) rotate(0deg); } 40% { transform: translateY(4px) rotate(-4deg); } 60% { transform: translateY(2px) rotate(-1deg); } 80% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cd1-grateshift { 0% { background-position: 0 0; } 100% { background-position: 0 24px; } }
@keyframes cd1-dust { 0% { transform: translateY(0); opacity:.4; } 50% { transform: translateY(-8px); opacity:.7; } 100% { transform: translateY(4px); opacity:.5; } }

.scn-duke-disguises-friar { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 70%, #6a5a4a 100%), radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 70%); }

.scn-duke-disguises-friar .arch-dark { position:absolute; inset:0 8% 0 8%; background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,.6); animation: dd1-breathe 18s ease-in-out infinite alternate; }
.scn-duke-disguises-friar .arch-mid { position:absolute; inset:10% 14% 0 14%; background: linear-gradient(180deg, #5a4a3a 0%, #6a5a4a 50%, #7a6a5a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.4); }
.scn-duke-disguises-friar .pillar-left { position:absolute; bottom:0; left:10%; width:6%; height:70%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 30%, #5a4a3a 70%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,.5); }
.scn-duke-disguises-friar .pillar-right { position:absolute; bottom:0; right:10%; width:6%; height:70%; background: linear-gradient(270deg, #4a3a2a 0%, #6a5a4a 30%, #5a4a3a 70%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,.5); }
.scn-duke-disguises-friar .table-wood { position:absolute; bottom:16%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 6px 16px rgba(0,0,0,.5); }
.scn-duke-disguises-friar .candle-glow { position:absolute; bottom:24%; left:35%; width:12px; height:12px; background: radial-gradient(circle, #ffe8a0 0%, #f0c060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(240,192,96,.5), 0 0 60px 20px rgba(240,192,96,.25); animation: dd1-flicker 3s ease-in-out infinite alternate; }
.scn-duke-disguises-friar .figure-duke { position:absolute; bottom:10%; left:34%; width:22px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: -2px 0 8px rgba(0,0,0,.5); animation: dd1-speak 7s ease-in-out infinite; }
.scn-duke-disguises-friar .figure-thomas { position:absolute; bottom:10%; right:24%; width:20px; height:44px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.4); animation: dd1-listen 6s ease-in-out infinite; }
.scn-duke-disguises-friar .shadow-pool { position:absolute; bottom:0; left:18%; right:18%; height:14%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%); animation: dd1-poolshift 12s ease-in-out infinite alternate; }

@keyframes dd1-breathe { 0% { transform: scale(1); opacity:.85; } 50% { transform: scale(1.005); opacity:1; } 100% { transform: scale(.995); opacity:.9; } }
@keyframes dd1-flicker { 0% { transform: scale(1); opacity:.8; box-shadow: 0 0 30px 10px rgba(240,192,96,.5); } 30% { transform: scale(1.08); opacity:1; box-shadow: 0 0 40px 15px rgba(240,192,96,.6); } 60% { transform: scale(.95); opacity:.85; box-shadow: 0 0 25px 8px rgba(240,192,96,.45); } 100% { transform: scale(1.02); opacity:.9; box-shadow: 0 0 35px 12px rgba(240,192,96,.5); } }
@keyframes dd1-speak { 0% { transform: translateY(0) rotate(-1deg); } 20% { transform: translateY(-2px) rotate(0deg); } 40% { transform: translateY(0) rotate(1deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 80% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dd1-listen { 0% { transform: translateY(0); } 25% { transform: translateY(1px); } 50% { transform: translateY(-1px); } 75% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes dd1-poolshift { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.1); opacity:.7; } 100% { transform: scaleX(.95); opacity:.5; } }

.scn-duke-explains-observation { background: linear-gradient(180deg, #4a3a2a 0%, #5a4a3a 40%, #6a5a4a 70%, #7a6a5a 100%), radial-gradient(ellipse at 40% 30%, #6a4a2a 0%, transparent 60%); }

.scn-duke-explains-observation .wall-stone { position:absolute; inset:0; background: linear-gradient(180deg, #5a4a3a 0%, #6a5a4a 50%, #7a6a5a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 0 80px rgba(0,0,0,.5); animation: de1-tremor 25s ease-in-out infinite alternate; }
.scn-duke-explains-observation .alcove { position:absolute; bottom:0; left:12%; right:12%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-duke-explains-observation .lectern { position:absolute; bottom:20%; left:44%; width:16%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 6% 6%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-duke-explains-observation .candle-pair { position:absolute; bottom:28%; left:46%; width:18px; height:20px; background: radial-gradient(ellipse at 50% 100%, #ffe8a0 0%, #f0c060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(240,192,96,.4), 0 0 80px 30px rgba(240,192,96,.2); animation: de1-flickerpair 4s ease-in-out infinite alternate; }
.scn-duke-explains-observation .figure-duke-alone { position:absolute; bottom:10%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: -2px 0 8px rgba(0,0,0,.5); animation: de1-lecture 8s ease-in-out infinite; }
.scn-duke-explains-observation .habit-folds { position:absolute; bottom:10%; left:38%; width:28px; height:34px; background: linear-gradient(180deg, rgba(90,74,58,.3) 0%, rgba(42,26,10,.1) 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; filter: blur(2px); animation: de1-folds 6s ease-in-out infinite alternate; }
.scn-duke-explains-observation .window-slit { position:absolute; top:18%; right:16%; width:4%; height:24%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: de1-slitglow 12s ease-in-out infinite alternate; }
.scn-duke-explains-observation .dust-drift { position:absolute; inset:0; background: radial-gradient(circle at 45% 35%, rgba(255,240,210,.08) 0%, transparent 60%); filter: blur(4px); animation: de1-dustdrift 14s ease-in-out infinite alternate; }

@keyframes de1-tremor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes de1-flickerpair { 0% { transform: scale(1); opacity:.8; box-shadow: 0 0 40px 15px rgba(240,192,96,.4); } 30% { transform: scale(1.05); opacity:1; box-shadow: 0 0 50px 20px rgba(240,192,96,.5); } 60% { transform: scale(.95); opacity:.85; box-shadow: 0 0 30px 10px rgba(240,192,96,.35); } 100% { transform: scale(1.02); opacity:.9; box-shadow: 0 0 45px 18px rgba(240,192,96,.45); } }
@keyframes de1-lecture { 0% { transform: translateY(0) rotate(-2deg); } 20% { transform: translateY(-1px) rotate(0deg); } 40% { transform: translateY(0) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 80% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes de1-folds { 0% { transform: scaleY(1); opacity:.3; } 50% { transform: scaleY(1.03); opacity:.5; } 100% { transform: scaleY(.98); opacity:.3; } }
@keyframes de1-slitglow { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes de1-dustdrift { 0% { transform: translateY(0); opacity:.4; } 50% { transform: translateY(-6px); opacity:.65; } 100% { transform: translateY(4px); opacity:.45; } }

.scn-pompey-hangman-trade { background: linear-gradient(180deg, #1a0e0a 0%, #2c1a14 50%, #3d241e 100%), radial-gradient(ellipse at 50% 100%, #3d241e 0%, transparent 70%); }
.scn-pompey-hangman-trade .pht-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2c1a14 0%, #3d241e 50%, #2c1a14 100%); animation: pht-wall 20s ease-in-out infinite alternate; }
.scn-pompey-hangman-trade .pht-bars { position:absolute; inset:10% 0 10% 10%; width:80%; background: repeating-linear-gradient(90deg, #5a3a2a 0px, #5a3a2a 4px, transparent 4px, transparent 20px); opacity:0.6; animation: pht-bars 15s linear infinite; }
.scn-pompey-hangman-trade .pht-torch { position:absolute; bottom:50%; left:20%; width:12px; height:24px; background: radial-gradient(circle at 50% 0%, #ffd680 0%, #e89840 40%, #1a0e0a 70%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 5px #e89840, 0 0 40px 10px rgba(232,152,64,0.5); animation: pht-torch 2s ease-in-out infinite alternate; }
.scn-pompey-hangman-trade .pht-figure1 { position:absolute; bottom:20%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: pht-figure1 4s ease-in-out infinite; }
.scn-pompey-hangman-trade .pht-figure2 { position:absolute; bottom:20%; left:55%; width:22px; height:42px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1e14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: pht-figure2 5s ease-in-out infinite; }
.scn-pompey-hangman-trade .pht-stool { position:absolute; bottom:18%; left:48%; width:16px; height:6px; background: #4a2a1a; border-radius:2px; box-shadow: 0 -6px 0 #3a1e14; animation: pht-stool 6s ease-in-out infinite; }
.scn-pompey-hangman-trade .pht-shadow { position:absolute; bottom:10%; left:30%; width:80px; height:20px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%); filter:blur(4px); animation: pht-shadow 10s ease-in-out infinite; }
@keyframes pht-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pht-bars { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes pht-torch { 0% { transform: scaleY(1) translateY(0); opacity:0.8 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(1) translateY(0); opacity:0.85 } }
@keyframes pht-figure1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pht-figure2 { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-3px) rotate(-2deg) } 66% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pht-stool { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes pht-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }

.scn-duke-delays-execution { background: linear-gradient(180deg, #0a0a14 0%, #141a2a 50%, #1a2430 100%), radial-gradient(ellipse at 50% 100%, #1a2430 0%, transparent 70%); }
.scn-duke-delays-execution .dde-wall { position:absolute; inset:0; background: linear-gradient(90deg, #141a2a 0%, #1a2430 50%, #141a2a 100%); animation: dde-wall 18s ease-in-out infinite alternate; }
.scn-duke-delays-execution .dde-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 50%, rgba(0,0,0,0.7) 100%); animation: dde-shadow 6s ease-in-out infinite alternate; }
.scn-duke-delays-execution .dde-candle { position:absolute; bottom:50%; left:35%; width:10px; height:20px; background: radial-gradient(circle at 50% 0%, #fff4d6 0%, #e8b870 40%, transparent 70%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 18px 4px #e8b870, 0 0 36px 8px rgba(232,184,112,0.4); animation: dde-candle 2.4s ease-in-out infinite alternate; }
.scn-duke-delays-execution .dde-duke { position:absolute; bottom:20%; left:45%; width:22px; height:44px; background: linear-gradient(180deg, #2a3a3a 0%, #0a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: dde-duke 3s ease-in-out infinite; }
.scn-duke-delays-execution .dde-provost { position:absolute; bottom:18%; left:58%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: dde-provost 4s ease-in-out infinite; }
.scn-duke-delays-execution .dde-table { position:absolute; bottom:14%; left:40%; width:40px; height:10px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e0a 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: dde-table 20s ease-in-out infinite; }
.scn-duke-delays-execution .dde-letter { position:absolute; bottom:20%; left:42%; width:16px; height:12px; background: linear-gradient(135deg, #b8a070 0%, #8a7050 100%); border-radius:2px; box-shadow: 0 0 6px rgba(0,0,0,0.6); animation: dde-letter 5s ease-in-out infinite; }
@keyframes dde-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dde-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes dde-candle { 0% { transform: scaleY(1) translateY(0); opacity:0.7 } 30% { transform: scaleY(1.15) translateY(-2px); opacity:1 } 60% { transform: scaleY(0.95) translateY(1px); opacity:0.9 } 100% { transform: scaleY(1.05) translateY(-1px); opacity:0.8 } }
@keyframes dde-duke { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(1px) rotate(1deg) } 40% { transform: translateX(-1px) rotate(-1deg) } 60% { transform: translateX(2px) rotate(2deg) } 80% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dde-provost { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(1px) rotate(1deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dde-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dde-letter { 0% { transform: rotate(0) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(0) } }

.scn-ragozine-head-substitute { background: linear-gradient(180deg, #0a0a0f 0%, #12121a 50%, #1a1a26 100%), radial-gradient(ellipse at 50% 100%, #1a1a26 0%, transparent 70%); }
.scn-ragozine-head-substitute .rht-wall { position:absolute; inset:0; background: linear-gradient(90deg, #12121a 0%, #1a1a26 50%, #0f0f18 100%); animation: rht-wall 25s ease-in-out infinite alternate; }
.scn-ragozine-head-substitute .rht-bars { position:absolute; inset:15% 0 15% 15%; width:70%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 3px, transparent 3px, transparent 18px); opacity:0.5; animation: rht-bars 12s linear infinite; }
.scn-ragozine-head-substitute .rht-barnardine { position:absolute; bottom:18%; left:35%; width:24px; height:44px; background: linear-gradient(180deg, #2a1a14 0%, #0e0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: rht-barnardine 2.5s ease-in-out infinite; }
.scn-ragozine-head-substitute .rht-duke { position:absolute; bottom:20%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #2a3a3a 0%, #0a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: rht-duke 4s ease-in-out infinite; }
.scn-ragozine-head-substitute .rht-provost { position:absolute; bottom:19%; left:62%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: rht-provost 3.5s ease-in-out infinite; }
.scn-ragozine-head-substitute .rht-head { position:absolute; bottom:35%; left:42%; width:16px; height:16px; background: radial-gradient(circle, #6a4a3a 0%, #4a2a1a 80%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(0,0,0,0.6); animation: rht-head 3s ease-in-out infinite; }
.scn-ragozine-head-substitute .rht-sack { position:absolute; bottom:30%; left:40%; width:20px; height:14px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%); border-radius:30% 30% 20% 20%; filter:blur(1px); animation: rht-sack 4s ease-in-out infinite; }
.scn-ragozine-head-substitute .rht-shadow { position:absolute; bottom:5%; left:25%; width:100px; height:30px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7) 0%, transparent 70%); filter:blur(5px); animation: rht-shadow 8s ease-in-out infinite; }
@keyframes rht-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rht-bars { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1) } }
@keyframes rht-barnardine { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(0) rotate(8deg) } 40% { transform: translateX(0) rotate(-8deg) } 60% { transform: translateX(0) rotate(6deg) } 80% { transform: translateX(0) rotate(-6deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rht-duke { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(-1px) rotate(-2deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rht-provost { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-2px) rotate(-2deg) } 66% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rht-head { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(5deg) } 60% { transform: translateY(2px) rotate(-5deg) } 80% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rht-sack { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) } }
@keyframes rht-shadow { 0%,100% { transform: scaleX(1) opacity:0.6 } 50% { transform: scaleX(1.3) opacity:0.8 } }

.scn-duke-tests-isabella { background: linear-gradient(180deg, #0a0508 0%, #1a0e14 50%, #2a1a22 100%), radial-gradient(ellipse at 50% 100%, #2a1a22 0%, transparent 70%); }
.scn-duke-tests-isabella .dti-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a0e14 0%, #2a1a22 50%, #140910 100%); animation: dti-wall 30s ease-in-out infinite alternate; }
.scn-duke-tests-isabella .dti-cross { position:absolute; bottom:30%; left:33%; width:6px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1e14 100%); border-radius:2px; box-shadow: 0 0 8px 2px rgba(90,58,42,0.4); transform:translateX(-50%); animation: dti-cross 12s ease-in-out infinite; }
.scn-duke-tests-isabella .dti-cross::after { content:''; position:absolute; top:4px; left:-8px; width:22px; height:4px; background: linear-gradient(90deg, #5a3a2a 0%, #3a1e14 100%); border-radius:2px; } /* crossbar */
.scn-duke-tests-isabella .dti-isabella { position:absolute; bottom:18%; left:40%; width:18px; height:36px; background: linear-gradient(180deg, #2a1a22 0%, #12080e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: dti-isabella 6s ease-in-out infinite; }
.scn-duke-tests-isabella .dti-duke { position:absolute; bottom:20%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: dti-duke 8s ease-in-out infinite; }
.scn-duke-tests-isabella .dti-glow { position:absolute; bottom:40%; left:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,180,140,0.15) 0%, transparent 70%); border-radius:50%; filter:blur(8px); animation: dti-glow 4s ease-in-out infinite alternate; }
.scn-duke-tests-isabella .dti-shadow { position:absolute; bottom:5%; left:20%; width:120px; height:20px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.8) 0%, transparent 60%); filter:blur(6px); animation: dti-shadow 15s ease-in-out infinite; }
@keyframes dti-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes dti-cross { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes dti-isabella { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(1px) rotate(1deg) } 66% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dti-duke { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(1px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dti-glow { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.2; transform: scale(0.85) } }
@keyframes dti-shadow { 0%,100% { transform: scaleX(1) opacity:0.5 } 50% { transform: scaleX(1.2) opacity:0.7 } }

/* Scene: duke-vienna-departure */
.scn-duke-vienna-departure {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 100%),
              radial-gradient(ellipse at 40% 20%, #fff7e0 0%, transparent 60%);
}
.scn-duke-vienna-departure .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e2cc 0%, #d4c4a8 100%);
}
.scn-duke-vienna-departure .window {
  position: absolute; top: 5%; left: 5%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #fff9e6 0%, #ffebcc 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px #fff2d6;
}
.scn-duke-vienna-departure .window-light {
  position: absolute; top: 5%; left: 5%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,245,200,.6) 0%, transparent 70%);
  animation: dv-light 4s ease-in-out infinite alternate;
}
.scn-duke-vienna-departure .duke-figure {
  position: absolute; bottom: 15%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1714 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: dv-duke 8s ease-in-out infinite;
}
.scn-duke-vienna-departure .escalus-figure {
  position: absolute; bottom: 15%; left: 60%; width: 36px; height: 76px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: dv-escalus 8s ease-in-out infinite 1s;
}
.scn-duke-vienna-departure .table {
  position: absolute; bottom: 10%; left: 40%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a45 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-duke-vienna-departure .document {
  position: absolute; bottom: 15%; left: 50%; width: 20px; height: 15px;
  background: #f5e6c8;
  border-radius: 1px;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: dv-doc 6s ease-in-out infinite alternate;
}
.scn-duke-vienna-departure .candle {
  position: absolute; bottom: 25%; left: 35%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #b09060 100%);
  border-radius: 2px;
  box-shadow: 0 -10px 20px 4px rgba(255,200,100,.5);
  animation: dv-candle 3s ease-in-out infinite;
}
@keyframes dv-light {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: .7; transform: scale(1); }
}
@keyframes dv-duke {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes dv-escalus {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes dv-doc {
  0% { transform: translateY(0) rotate(5deg); }
  50% { transform: translateY(-1px) rotate(8deg); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes dv-candle {
  0% { transform: scale(1); opacity: .9; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: .9; }
}

/* Scene: angelo-formal-commission */
.scn-angelo-formal-commission {
  background: linear-gradient(180deg, #eddcc8 0%, #c8b49a 100%),
              radial-gradient(ellipse at 50% 30%, #faf0e0 0%, transparent 70%);
}
.scn-angelo-formal-commission .chamber {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d9c4 0%, #c8b49a 100%);
}
.scn-angelo-formal-commission .throne {
  position: absolute; bottom: 10%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3520 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-angelo-formal-commission .window2 {
  position: absolute; top: 5%; right: 5%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #fff9e6 0%, #ffebcc 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px #fff2d6;
}
.scn-angelo-formal-commission .duke-hand {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1714 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ac-hand 6s ease-in-out infinite;
}
.scn-angelo-formal-commission .angelo-figure {
  position: absolute; bottom: 15%; left: 35%; width: 42px; height: 84px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0f0f0f 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ac-angelo 8s ease-in-out infinite 1s;
}
.scn-angelo-formal-commission .escalus-figure2 {
  position: absolute; bottom: 15%; left: 60%; width: 36px; height: 76px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ac-escalus 8s ease-in-out infinite 2s;
}
.scn-angelo-formal-commission .scroll-seal {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 18px;
  background: #f5e6c8;
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: ac-scroll 5s ease-in-out infinite alternate;
}
.scn-angelo-formal-commission .glow-orb {
  position: absolute; bottom: 35%; left: 42%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffdb80 0%, #c89040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,144,64,.5);
  animation: ac-orb 4s ease-in-out infinite;
}
@keyframes ac-hand {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ac-angelo {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ac-escalus {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ac-scroll {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-7deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ac-orb {
  0% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(1); opacity: .8; }
}

/* Scene: street-jest-war-disease */
.scn-street-jest-war-disease {
  background: linear-gradient(180deg, #ffeedd 0%, #f0d8b8 50%, #d4b894 100%),
              radial-gradient(ellipse at 50% 100%, #ffedd5 0%, transparent 60%);
}
.scn-street-jest-war-disease .sky-sunny {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fce4b8 0%, #ffd29a 100%);
  animation: sj-sky 20s ease-in-out infinite alternate;
}
.scn-street-jest-war-disease .buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8a078 0%, #a08050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
  animation: sj-bld 30s linear infinite alternate;
}
.scn-street-jest-war-disease .street-cobble {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 25%, #7a6a5a 50%, #5a4a3a 75%, #8a7a6a 100%);
  background-size: 20px 20px;
  border-radius: 20% 20% 0 0;
}
.scn-street-jest-war-disease .lucio-hat {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: sj-lucio 1.6s ease-in-out infinite alternate;
}
.scn-street-jest-war-disease .companion-left {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 46px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: sj-companion1 2s ease-in-out infinite alternate 0.2s;
}
.scn-street-jest-war-disease .companion-right {
  position: absolute; bottom: 20%; left: 55%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: sj-companion2 2.4s ease-in-out infinite alternate 0.4s;
}
.scn-street-jest-war-disease .mistress-overdone {
  position: absolute; bottom: 12%; left: 50%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: sj-mistress 1.5s ease-in-out infinite alternate;
}
.scn-street-jest-war-disease .tavern-sign {
  position: absolute; bottom: 40%; left: 20%; width: 20px; height: 20px;
  background: #d4a040;
  border-radius: 4px;
  box-shadow: 0 0 8px 2px rgba(255,200,80,.4);
  animation: sj-sign 4s ease-in-out infinite;
}
@keyframes sj-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes sj-bld {
  0% { transform: translateY(0); }
  100% { transform: translateY(-5px); }
}
@keyframes sj-lucio {
  0% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(-3px) rotate(5deg); }
}
@keyframes sj-companion1 {
  0% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-2px) rotate(-10deg); }
}
@keyframes sj-companion2 {
  0% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-2px) rotate(10deg); }
}
@keyframes sj-mistress {
  0% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-4px) rotate(5deg); }
}
@keyframes sj-sign {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(15deg); }
}

/* Scene: lucio-seeks-isabella */
.scn-lucio-seeks-isabella {
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a678 50%, #9a7a5a 100%),
              radial-gradient(ellipse at 60% 30%, #fff0d0 0%, transparent 60%);
}
.scn-lucio-seeks-isabella .sky-tense {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 40%, #8a6a4a 100%);
  animation: ls-sky 12s ease-in-out infinite alternate;
}
.scn-lucio-seeks-isabella .buildings-dark {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
  animation: ls-bld 25s linear infinite alternate;
}
.scn-lucio-seeks-isabella .street-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%);
  background-size: 15px 15px;
  border-radius: 10% 10% 0 0;
}
.scn-lucio-seeks-isabella .lucio-walk {
  position: absolute; bottom: 18%; left: 40%; width: 32px; height: 54px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0f0f0f 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ls-lucio 2.4s ease-in-out infinite;
}
.scn-lucio-seeks-isabella .mistress-point {
  position: absolute; bottom: 22%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #802a18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ls-mistress 2s ease-in-out infinite alternate 0.3s;
}
.scn-lucio-seeks-isabella .harsh-shadow {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 4px;
  background: linear-gradient(90deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.6) 50%, rgba(0,0,0,.3) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ls-shadow 1.5s ease-in-out infinite alternate;
}
.scn-lucio-seeks-isabella .spire {
  position: absolute; top: 5%; right: 15%; width: 10px; height: 35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: ls-spire 8s ease-in-out infinite;
}
@keyframes ls-sky {
  0% { opacity: .9; }
  50% { opacity: .7; }
  100% { opacity: .8; }
}
@keyframes ls-bld {
  0% { transform: translateY(0); }
  100% { transform: translateY(-3px); }
}
@keyframes ls-lucio {
  0% { transform: translateY(0) translateX(0) rotate(0); }
  25% { transform: translateY(-3px) translateX(5px) rotate(3deg); }
  50% { transform: translateY(0) translateX(10px) rotate(0); }
  75% { transform: translateY(-3px) translateX(15px) rotate(-3deg); }
  100% { transform: translateY(0) translateX(0) rotate(0); }
}
@keyframes ls-mistress {
  0% { transform: translateY(0) rotate(0); }
  100% { transform: translateY(-4px) rotate(15deg); }
}
@keyframes ls-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: .6; }
  100% { transform: scaleX(1.2) translateX(-10px); opacity: .9; }
}
@keyframes ls-spire {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
}
/* end per-scene blocks */
