/* 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) */
/* family-entreaty */
.scn-family-entreaty {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #251810 100%),
              radial-gradient(ellipse at 30% 60%, #3a2510 10%, transparent 80%);
}
.scn-family-entreaty .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a, #2a1e14);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-family-entreaty .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a05 100%);
  border-top: 2px solid #3a2510;
}
.scn-family-entreaty .window {
  position: absolute; top: 18%; left: 55%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at center, #c8955a 0%, #8a6040 70%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(200,149,90,0.4), inset 0 0 20px rgba(200,149,90,0.3);
  animation: fe-window 8s ease-in-out infinite alternate;
}
.scn-family-entreaty .furniture {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-family-entreaty .figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a1c, #1a120a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fe-figL 6s ease-in-out infinite;
}
.scn-family-entreaty .figure-right {
  position: absolute; bottom: 22%; right: 20%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #4a3520, #2a1a10);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fe-figR 7s ease-in-out infinite;
}
.scn-family-entreaty .flame {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at center bottom, #ffb040 0%, #d08020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,176,64,0.5), 0 0 60px 20px rgba(200,100,20,0.3);
  animation: fe-flame 2s ease-in-out infinite alternate;
}
@keyframes fe-window {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.02); }
  100% { opacity: 0.6; transform: scaleY(0.98); }
}
@keyframes fe-figL {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes fe-figR {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-3px) rotate(1deg); }
  66% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fe-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.7; }
}

/* volumnia-reconciliation */
.scn-volumnia-reconciliation {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #201510 100%),
              radial-gradient(ellipse at 70% 40%, #3a2a18 10%, transparent 80%);
}
.scn-volumnia-reconciliation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a, #2a1e14);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-volumnia-reconciliation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a05 100%);
}
.scn-volumnia-reconciliation .column-left {
  position: absolute; top: 10%; left: 15%; width: 18px; height: 70%;
  background: linear-gradient(90deg, #4a3a2a, #3a2a1a, #4a3a2a);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,0.6);
}
.scn-volumnia-reconciliation .column-right {
  position: absolute; top: 10%; right: 15%; width: 18px; height: 70%;
  background: linear-gradient(90deg, #4a3a2a, #3a2a1a, #4a3a2a);
  border-radius: 4px;
  box-shadow: -2px 0 10px rgba(0,0,0,0.6);
}
.scn-volumnia-reconciliation .table {
  position: absolute; bottom: 22%; left: 35%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a4030, #3a2a1a);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-volumnia-reconciliation .figure {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a2a1c, #1a120a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rc-fig 8s ease-in-out infinite;
}
.scn-volumnia-reconciliation .scroll {
  position: absolute; bottom: 30%; left: 46%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #b89860, #8a7040);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: rc-scroll 10s ease-in-out infinite alternate;
}
.scn-volumnia-reconciliation .lamp {
  position: absolute; bottom: 20%; right: 28%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at center, #ffb040 0%, #d08020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 12px rgba(255,176,64,0.4);
  animation: rc-lamp 4s ease-in-out infinite alternate;
}
@keyframes rc-fig {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rc-scroll {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-7deg) translateX(-2px); }
}
@keyframes rc-lamp {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.8; }
}

/* volumnia-legacy */
.scn-volumnia-legacy {
  background: linear-gradient(180deg, #1e1410 0%, #0f0a06 50%, #1a100a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2018 10%, transparent 70%);
}
.scn-volumnia-legacy .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2a1e14, #1a120a);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-volumnia-legacy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a120a, #0d0805);
}
.scn-volumnia-legacy .alcove {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 60%;
  background: linear-gradient(180deg, #3a2a1a, #2a1a10);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-volumnia-legacy .statue {
  position: absolute; top: 15%; left: 44%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.6);
  animation: lg-statue 15s ease-in-out infinite alternate;
}
.scn-volumnia-legacy .figure {
  position: absolute; bottom: 20%; left: 50%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #2a1e14, #0f0a06);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: lg-fig 10s ease-in-out infinite;
}
.scn-volumnia-legacy .shadow {
  position: absolute; bottom: 20%; left: 45%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: lg-shadow 10s ease-in-out infinite;
}
.scn-volumnia-legacy .glow {
  position: absolute; top: 12%; right: 28%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, #c8955a 0%, transparent 100%);
  opacity: 0.3;
  animation: lg-glow 8s ease-in-out infinite alternate;
}
@keyframes lg-statue {
  0% { transform: translateY(0); opacity: 0.5; }
  50% { transform: translateY(-2px); opacity: 0.8; }
  100% { transform: translateY(1px); opacity: 0.6; }
}
@keyframes lg-fig {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-48%) translateY(-3px) rotate(1deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(-1deg); }
}
@keyframes lg-shadow {
  0%, 100% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.2; }
}
@keyframes lg-glow {
  0% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.3); opacity: 0.4; }
  100% { transform: scale(0.9); opacity: 0.3; }
}

/* volumnia-reminder */
.scn-volumnia-reminder {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #1e1410 100%),
              radial-gradient(ellipse at 40% 50%, #3a2018 10%, transparent 80%);
}
.scn-volumnia-reminder .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #3a2a1a, #2a1e14);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-volumnia-reminder .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a120a, #0d0805);
}
.scn-volumnia-reminder .chair {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
}
.scn-volumnia-reminder .figure {
  position: absolute; bottom: 18%; left: 50%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1c, #1a120a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: rm-fig 7s ease-in-out infinite;
}
.scn-volumnia-reminder .sword {
  position: absolute; bottom: 25%; left: 38%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a, #5a4a30);
  border-radius: 2px;
  transform: rotate(20deg);
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: rm-sword 9s ease-in-out infinite alternate;
}
.scn-volumnia-reminder .lamp {
  position: absolute; bottom: 12%; right: 25%; width: 18px; height: 24px;
  background: radial-gradient(ellipse at center, #ffb040 0%, #d08020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 10px rgba(255,176,64,0.4);
  animation: rm-lamp 3s ease-in-out infinite alternate;
}
.scn-volumnia-reminder .smoke {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: rm-smoke 12s ease-in-out infinite;
}
@keyframes rm-fig {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-48%) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(-52%) translateY(0) rotate(-1deg); }
}
@keyframes rm-sword {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(22deg) translateY(0); }
}
@keyframes rm-lamp {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
@keyframes rm-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-10px) scale(1.3); opacity: 0.1; }
  100% { transform: translateY(5px) scale(0.8); opacity: 0.2; }
}

/* aufidius-accusation */
.scn-aufidius-accusation {
  background: linear-gradient(180deg, #f0e6d0 0%, #c8b89a 40%, #9a7a5a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-aufidius-accusation .sun-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f0d090 60%, transparent 100%);
  animation: ac-sunpulse 6s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .col-left {
  position:absolute; bottom:20%; left:10%; width:30px; height:80%;
  background: linear-gradient(90deg, #8a7a5a 0%, #b0a080 30%, #8a7a5a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: ac-colshrink 12s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .col-right {
  position:absolute; bottom:20%; right:10%; width:30px; height:80%;
  background: linear-gradient(90deg, #8a7a5a 0%, #b0a080 30%, #8a7a5a 100%);
  border-radius: 10% 10% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  animation: ac-colshrink 12s ease-in-out infinite alternate-reverse;
}
.scn-aufidius-accusation .figure-left {
  position:absolute; bottom:15%; left:20%; width:34px; height:80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-figleft 4s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .figure-right {
  position:absolute; bottom:15%; right:20%; width:34px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-figright 4s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .arm-point {
  position:absolute; bottom:40%; left:30%; width:20px; height:4px;
  background: #3a2a1a; border-radius: 2px; transform: rotate(-20deg);
  transform-origin: right center;
  animation: ac-point 2s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .shadow-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.35) 100%);
  border-radius: 30% 30% 0 0;
  animation: ac-floor 8s ease-in-out infinite alternate;
}
@keyframes ac-sunpulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ac-colshrink {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.98) translateY(2px); }
  100% { transform: scaleY(1.01) translateY(-1px); }
}
@keyframes ac-figleft {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(-4px) rotate(-2deg); }
}
@keyframes ac-figright {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-6px) rotate(-3deg); }
  100% { transform: translateX(4px) rotate(2deg); }
}
@keyframes ac-point {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.1); }
  100% { transform: rotate(-25deg) scaleX(0.9); }
}
@keyframes ac-floor {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.05); }
  100% { opacity: 0.6; transform: scaleY(0.95); }
}

/* coriolanus-rage */
.scn-coriolanus-rage {
  background: linear-gradient(180deg, #e8d8b8 0%, #c0a880 40%, #907050 100%), radial-gradient(ellipse at 50% 100%, #b09070 0%, transparent 80%);
}
.scn-coriolanus-rage .sun-bg {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffd8a0 0%, #f0b870 60%, transparent 100%);
  animation: cr-sunflame 4s ease-in-out infinite alternate;
}
.scn-coriolanus-rage .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 20% 20% 0 0;
  animation: cr-ground 10s ease-in-out infinite alternate;
}
.scn-coriolanus-rage .figure-central {
  position:absolute; bottom:35%; left:50%; width:50px; height:100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 30px 5px rgba(0,0,0,0.5);
  animation: cr-figcentral 3s ease-in-out infinite alternate;
}
.scn-coriolanus-rage .rage-particles {
  position:absolute; bottom:45%; left:40%; width:60px; height:60px;
  background: radial-gradient(circle, #d08040 0%, transparent 60%);
  filter: blur(4px);
  animation: cr-particles 2s ease-in-out infinite;
}
.scn-coriolanus-rage .shadow-figure {
  position:absolute; bottom:30%; left:50%; width:40px; height:20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: cr-shadow 3s ease-in-out infinite alternate;
}
.scn-coriolanus-rage .sunburst {
  position:absolute; top:10%; left:50%; width:80px; height:80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff0c0 0%, #ffd080 30%, transparent 60%);
  animation: cr-burst 6s ease-in-out infinite alternate;
}
@keyframes cr-sunflame {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes cr-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(5px); }
  100% { transform: translateY(-3px); }
}
@keyframes cr-figcentral {
  0% { transform: translateX(-50%) rotate(-3deg) scale(1); }
  50% { transform: translateX(-50%) rotate(5deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-1deg) scale(0.95); }
}
@keyframes cr-particles {
  0% { opacity: 0; transform: translate(0,0) scale(0.5); }
  33% { opacity: 0.8; transform: translate(10px,-10px) scale(1.2); }
  66% { opacity: 0.5; transform: translate(-5px,-20px) scale(0.8); }
  100% { opacity: 0; transform: translate(5px,-30px) scale(0.3); }
}
@keyframes cr-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scaleX(1.3); opacity: 0.8; }
  100% { transform: translateX(-50%) scaleX(0.9); opacity: 0.4; }
}
@keyframes cr-burst {
  0% { transform: translateX(-50%) scale(0.8); opacity: 0.6; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; }
}

/* lords-intervention */
.scn-lords-intervention {
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a080 40%, #907050 100%), radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 70%);
}
.scn-lords-intervention .sun-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #f0c890 50%, transparent 100%);
  animation: li-sunglow 8s ease-in-out infinite alternate;
}
.scn-lords-intervention .floor-tiled {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px, #8a7a5a 20px, #a09070 20px, #a09070 40px);
  border-radius: 10% 10% 0 0;
  animation: li-floor 12s ease-in-out infinite alternate;
}
.scn-lords-intervention .lord-left {
  position:absolute; bottom:20%; left:15%; width:30px; height:70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-lordleft 5s ease-in-out infinite alternate;
}
.scn-lords-intervention .lord-center {
  position:absolute; bottom:20%; left:50%; width:35px; height:75px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: li-lordcenter 4s ease-in-out infinite alternate;
}
.scn-lords-intervention .lord-right {
  position:absolute; bottom:20%; right:15%; width:30px; height:70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-lordright 5s ease-in-out infinite alternate-reverse;
}
.scn-lords-intervention .arm-extend {
  position:absolute; bottom:40%; left:45%; width:50px; height:4px;
  background: #3a2a1a; border-radius: 2px; transform: rotate(-10deg);
  transform-origin: left center;
  animation: li-arm 2s ease-in-out infinite alternate;
}
.scn-lords-intervention .shadow-group {
  position:absolute; bottom:18%; left:10%; right:10%; height:15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: li-shadow 6s ease-in-out infinite alternate;
}
@keyframes li-sunglow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes li-floor {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(2px); }
  100% { transform: scaleX(0.98) translateY(-1px); }
}
@keyframes li-lordleft {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes li-lordcenter {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-3deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes li-lordright {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes li-arm {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-5deg) scaleX(1.2); }
  100% { transform: rotate(-15deg) scaleX(0.8); }
}
@keyframes li-shadow {
  0% { transform: scaleY(1); opacity: 0.5; }
  50% { transform: scaleY(1.2); opacity: 0.8; }
  100% { transform: scaleY(0.8); opacity: 0.4; }
}

/* mob-chaos */
.scn-mob-chaos {
  background: linear-gradient(180deg, #c8b090 0%, #a08060 40%, #705030 100%), radial-gradient(ellipse at 50% 100%, #a08060 0%, transparent 70%);
}
.scn-mob-chaos .sun-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffd090 0%, #e8b870 50%, transparent 100%);
  animation: mc-sunflicker 4s ease-in-out infinite alternate;
}
.scn-mob-chaos .ground-rough {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0;
  animation: mc-ground 8s ease-in-out infinite alternate;
}
.scn-mob-chaos .mob-figures {
  position:absolute; bottom:20%; left:5%; right:5%; height:50%;
  background: repeating-linear-gradient(90deg, 
    rgba(50,30,20,0.6) 0px, rgba(50,30,20,0.6) 12px,
    rgba(40,20,10,0.4) 12px, rgba(40,20,10,0.4) 18px,
    rgba(60,40,30,0.5) 18px, rgba(60,40,30,0.5) 30px);
  mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 70%);
  animation: mc-mob 3s ease-in-out infinite alternate;
}
.scn-mob-chaos .central-figure {
  position:absolute; bottom:25%; left:50%; width:40px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.6);
  animation: mc-central 2s ease-in-out infinite alternate;
}
.scn-mob-chaos .weapons {
  position:absolute; bottom:30%; left:15%; right:15%; height:20%;
  background: repeating-linear-gradient(45deg, 
    #8a5a3a 0px, #8a5a3a 3px,
    transparent 3px, transparent 10px,
    #6a3a1a 10px, #6a3a1a 13px,
    transparent 13px, transparent 20px);
  mask-image: linear-gradient(180deg, black 0%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, black 0%, transparent 100%);
  animation: mc-weapons 1.5s ease-in-out infinite alternate;
}
.scn-mob-chaos .dust-clouds {
  position:absolute; bottom:15%; left:0; right:0; height:30%;
  background: radial-gradient(ellipse at 20% 50%, rgba(180,140,100,0.3) 0%, transparent 50%);
  filter: blur(8px);
  animation: mc-dust 6s ease-in-out infinite alternate;
}
.scn-mob-chaos .shadow-mob {
  position:absolute; bottom:15%; left:10%; right:10%; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: mc-shadow 4s ease-in-out infinite alternate;
}
@keyframes mc-sunflicker {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes mc-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(-2px); }
}
@keyframes mc-mob {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(1.05); }
  100% { transform: translateX(-4px) scaleX(0.95); }
}
@keyframes mc-central {
  0% { transform: translateX(-50%) rotate(-5deg) scale(1); }
  33% { transform: translateX(-50%) rotate(8deg) scale(1.1); }
  66% { transform: translateX(-50%) rotate(-3deg) scale(0.9); }
  100% { transform: translateX(-50%) rotate(4deg) scale(1.05); }
}
@keyframes mc-weapons {
  0% { transform: rotate(-2deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.15); }
  100% { transform: rotate(-3deg) scaleX(0.85); }
}
@keyframes mc-dust {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-8px) scale(1.2); opacity: 0.7; }
  100% { transform: translateY(4px) scale(0.9); opacity: 0.3; }
}
@keyframes mc-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.4); opacity: 0.8; }
  100% { transform: scaleX(0.8); opacity: 0.5; }
}

/* -------------- virgilia-begs -------------- */
.scn-virgilia-begs {
  background:
    linear-gradient(180deg, #c8a678 0%, #a08050 40%),
    radial-gradient(ellipse at 30% 60%, #e0c090 0%, transparent 60%);
}
.scn-virgilia-begs .vb-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b89868 0%, #8a7050 100%);
}
.scn-virgilia-begs .vb-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #5a4030 0%, #7a5a40 100%);
}
.scn-virgilia-begs .vb-window {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #ffecb0 0%, #ffe090 50%, #d4a060 100%);
  border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,230,150,.5);
  animation: vb-window 6s ease-in-out infinite alternate;
}
.scn-virgilia-begs .vb-light {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 35% 40%, rgba(255,240,180,.3) 0%, transparent 60%);
  pointer-events: none;
}
.scn-virgilia-begs .vb-figure-kneel {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: vb-kneel 4s ease-in-out infinite alternate;
}
.scn-virgilia-begs .vb-figure-stand {
  position: absolute; bottom: 10%; right: 20%; width: 24px; height: 72px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 35% 35%;
  animation: vb-stand 5s ease-in-out infinite;
}
.scn-virgilia-begs .vb-dust {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 20% 40%, rgba(255,220,150,.15) 0%, transparent 40%),
              radial-gradient(circle at 80% 60%, rgba(255,200,130,.1) 0%, transparent 50%);
  animation: vb-dust 12s linear infinite;
}
@keyframes vb-window {
  0% { opacity: .85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: .9; filter: brightness(1); }
}
@keyframes vb-kneel {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes vb-stand {
  0% { transform: translateX(0) rotate(-0.5deg); }
  33% { transform: translateX(3px) rotate(0.5deg); }
  66% { transform: translateX(-2px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vb-dust {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.05) rotate(5deg); }
}

/* -------------- volumnia-kneels -------------- */
.scn-volumnia-kneels {
  background:
    linear-gradient(180deg, #b08858 0%, #7a5a3a 60%),
    radial-gradient(ellipse at 50% 80%, #a08050 0%, transparent 60%);
}
.scn-volumnia-kneels .vk-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #9a7850 0%, #705030 100%);
}
.scn-volumnia-kneels .vk-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #4a3020 0%, #6a4a30 100%);
}
.scn-volumnia-kneels .vk-column-left {
  position: absolute; bottom: 20%; left: 10%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 4px;
  animation: vk-col 8s ease-in-out infinite alternate;
}
.scn-volumnia-kneels .vk-column-right {
  position: absolute; bottom: 20%; right: 10%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 4px;
  animation: vk-col 8s ease-in-out infinite alternate-reverse;
}
.scn-volumnia-kneels .vk-figure-kneel {
  position: absolute; bottom: 25%; left: 42%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: vk-kneel 4s ease-in-out infinite;
}
.scn-volumnia-kneels .vk-figure-stand {
  position: absolute; bottom: 15%; right: 42%; width: 22px; height: 68px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 35% 35%;
  animation: vk-stand 5s ease-in-out infinite alternate;
}
.scn-volumnia-kneels .vk-drapes {
  position: absolute; top: 5%; left: 5%; width: 90%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  filter: blur(4px); opacity: .6;
  animation: vk-drapes 10s ease-in-out infinite alternate;
}
@keyframes vk-col {
  0% { box-shadow: 0 0 4px rgba(0,0,0,.3); transform: scaleY(1); }
  50% { box-shadow: 0 0 8px rgba(0,0,0,.2); transform: scaleY(1.01); }
  100% { box-shadow: 0 0 4px rgba(0,0,0,.3); transform: scaleY(1); }
}
@keyframes vk-kneel {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vk-stand {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes vk-drapes {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}

/* -------------- blessing-on-grandson -------------- */
.scn-blessing-on-grandson {
  background:
    linear-gradient(180deg, #c09870 0%, #8a6a4a 50%),
    radial-gradient(ellipse at 50% 30%, #d4a880 0%, transparent 60%);
}
.scn-blessing-on-grandson .bg-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #b08860 0%, #6a4a30 100%);
}
.scn-blessing-on-grandson .bg-halo {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,230,180,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: bg-halo 6s ease-in-out infinite alternate;
}
.scn-blessing-on-grandson .bg-grandma {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bg-grandma 5s ease-in-out infinite;
}
.scn-blessing-on-grandson .bg-grandson {
  position: absolute; bottom: 15%; right: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bg-grandson 4s ease-in-out infinite alternate;
}
.scn-blessing-on-grandson .bg-hand {
  position: absolute; bottom: 30%; left: 37%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 40%;
  transform: rotate(-30deg);
  animation: bg-hand 3s ease-in-out infinite alternate;
}
.scn-blessing-on-grandson .bg-light-rays {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,.15) 0%, transparent 50%),
              linear-gradient(225deg, rgba(255,240,200,.1) 0%, transparent 50%);
  pointer-events: none;
  animation: bg-rays 8s ease-in-out infinite alternate;
}
.scn-blessing-on-grandson .bg-particles {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 45% 40%, rgba(255,220,150,.2) 0%, transparent 30%),
              radial-gradient(circle at 55% 50%, rgba(255,200,130,.15) 0%, transparent 30%);
  animation: bg-particles 10s linear infinite;
}
@keyframes bg-halo {
  0% { transform: translateX(-50%) scale(1); opacity: .6; }
  50% { transform: translateX(-50%) scale(1.08); opacity: .8; }
  100% { transform: translateX(-50%) scale(1); opacity: .65; }
}
@keyframes bg-grandma {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bg-grandson {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bg-hand {
  0% { transform: rotate(-35deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-2px); }
  100% { transform: rotate(-35deg) translateY(0); }
}
@keyframes bg-rays {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes bg-particles {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.03) rotate(3deg); }
}

/* -------------- volumnia-persuades -------------- */
.scn-volumnia-persuades {
  background:
    linear-gradient(180deg, #a88860 0%, #70503a 50%),
    radial-gradient(ellipse at 50% 70%, #8a6a4a 0%, transparent 50%);
}
.scn-volumnia-persuades .vp-room {
  position: absolute; inset: 0;
  background: 
    radial-gradient(ellipse at 30% 50%, rgba(180,140,100,.3) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 30%, rgba(160,120,80,.2) 0%, transparent 40%);
}
.scn-volumnia-persuades .vp-wall-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #8a6a4a 0%, #50382a 100%);
  border-right: 2px solid #604030;
}
.scn-volumnia-persuades .vp-wall-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #8a6a4a 0%, #50382a 100%);
  border-left: 2px solid #604030;
}
.scn-volumnia-persuades .vp-fireplace {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: inset 0 -4px 12px rgba(0,0,0,.5);
}
.scn-volumnia-persuades .vp-fire-glow {
  position: absolute; bottom: 12%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffa050 0%, #e06020 40%, transparent 70%);
  border-radius: 50%;
  animation: vp-fire 2s ease-in-out infinite alternate;
}
.scn-volumnia-persuades .vp-figure-volumnia {
  position: absolute; bottom: 15%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: vp-fig1 5s ease-in-out infinite alternate;
}
.scn-volumnia-persuades .vp-figure-audio {
  position: absolute; bottom: 10%; right: 20%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 40% 40%;
  transform-origin: bottom center;
  animation: vp-fig2 6s ease-in-out infinite;
}
.scn-volumnia-persuades .vp-figure-martius {
  position: absolute; bottom: 12%; left: 45%; width: 22px; height: 62px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 40% 40%;
  transform-origin: bottom center;
  animation: vp-fig3 4.5s ease-in-out infinite alternate-reverse;
}
@keyframes vp-fire {
  0% { transform: translateX(-50%) scale(1); opacity: .8; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(.95); opacity: .9; }
}
@keyframes vp-fig1 {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vp-fig2 {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); }
  66% { transform: translateX(-2px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vp-fig3 {
  0% { transform: translateX(0) rotate(-0.5deg); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-menenius-at-camp-gate {
  background: linear-gradient(180deg, #f5d6a8 0%, #e8c48a 30%, #d4a96a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 50%);
}
.scn-menenius-at-camp-gate .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fae6c8 0%, #f0ce9c 100%); animation: mgc-sky 10s ease-in-out infinite alternate; }
.scn-menenius-at-camp-gate .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fffbe0 0%, #f4d48a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(244,212,138,0.3); animation: mgc-sun 8s ease-in-out infinite; }
.scn-menenius-at-camp-gate .gate { position:absolute; bottom:22%; left:30%; width:40%; height:45%; background: linear-gradient(180deg, #8b6b4a 0%, #6e4f2e 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.3); }
.scn-menenius-at-camp-gate .guard-left { position:absolute; bottom:20%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #b08060 0%, #8a5e3e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mgc-guard 3s ease-in-out infinite; }
.scn-menenius-at-camp-gate .guard-right { position:absolute; bottom:20%; left:65%; width:22px; height:52px; background: linear-gradient(180deg, #b08060 0%, #8a5e3e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mgc-guard 3s ease-in-out infinite 1.5s; }
.scn-menenius-at-camp-gate .menenius { position:absolute; bottom:18%; left:8%; width:18px; height:45px; background: linear-gradient(180deg, #c09070 0%, #906848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mgc-menenius 4s ease-in-out infinite; }
.scn-menenius-at-camp-gate .ground { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #c9a86a 0%, #a07a4a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-menenius-at-camp-gate .dust { position:absolute; bottom:10%; left:30%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,170,120,0.4) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: mgc-dust 6s ease-in-out infinite; }
@keyframes mgc-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes mgc-sun { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-4px); } }
@keyframes mgc-guard { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes mgc-menenius { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(1deg); } }
@keyframes mgc-dust { 0% { transform: translateX(0) scale(1); opacity:0.4; } 50% { transform: translateX(10px) scale(1.2); opacity:0.6; } 100% { transform: translateX(-5px) scale(0.9); opacity:0.3; } }

.scn-menenius-pleads-entry {
  background: linear-gradient(180deg, #eed6aa 0%, #dbbf8a 50%, #c4a26a 100%), radial-gradient(ellipse at 60% 30%, #fff5d0 0%, transparent 50%);
}
.scn-menenius-pleads-entry .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fae6c8 0%, #edd4a0 100%); animation: mpe-sky 12s ease-in-out infinite alternate; }
.scn-menenius-pleads-entry .sun { position:absolute; top:5%; right:15%; width:50px; height:50px; background: radial-gradient(circle, #fffce0 0%, #f4d48a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(244,212,138,0.3); animation: mpe-sun 9s ease-in-out infinite; }
.scn-menenius-pleads-entry .shield-guard { position:absolute; bottom:20%; left:50%; width:35px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: mpe-shield 3s ease-in-out infinite; }
.scn-menenius-pleads-entry .guard-body { position:absolute; bottom:18%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #b08060 0%, #805030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mpe-guard 4s ease-in-out infinite; }
.scn-menenius-pleads-entry .menenius-hand { position:absolute; bottom:25%; left:18%; width:12px; height:20px; background: linear-gradient(180deg, #d0a080 0%, #b08060 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform: rotate(30deg); transform-origin: bottom left; animation: mpe-hand 5s ease-in-out infinite; }
.scn-menenius-pleads-entry .menenius-body { position:absolute; bottom:15%; left:12%; width:18px; height:50px; background: linear-gradient(180deg, #c09070 0%, #906848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mpe-menenius 6s ease-in-out infinite; }
.scn-menenius-pleads-entry .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c9a86a 0%, #a07a4a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-menenius-pleads-entry .shadow { position:absolute; bottom:18%; left:10%; width:30%; height:8px; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(4px); animation: mpe-shadow 6s ease-in-out infinite; }
@keyframes mpe-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mpe-sun { 0%,100% { transform: scale(1); } 50% { transform: scale(1.03); } }
@keyframes mpe-shield { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes mpe-guard { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-1deg); } 70% { transform: translateX(3px) rotate(1deg); } }
@keyframes mpe-hand { 0%,100% { transform: rotate(25deg); } 50% { transform: rotate(35deg) translateX(2px); } }
@keyframes mpe-menenius { 0%,100% { transform: translateX(0) rotate(-2deg); } 40% { transform: translateX(4px) rotate(1deg); } 80% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes mpe-shadow { 0%,100% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } }

.scn-menenius-baits-guard {
  background: linear-gradient(180deg, #f7e0b0 0%, #e6c88a 40%, #c9a86a 100%), radial-gradient(ellipse at 70% 40%, #fff5d0 0%, transparent 50%);
}
.scn-menenius-baits-guard .sky { position:absolute; inset:0 0 48% 0; background: linear-gradient(180deg, #fdeac8 0%, #f0d09c 100%); animation: mbg-sky 10s ease-in-out infinite alternate; }
.scn-menenius-baits-guard .table { position:absolute; bottom:18%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #8b6b4a 0%, #5a4028 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 6px 10px rgba(0,0,0,0.4); }
.scn-menenius-baits-guard .plate { position:absolute; bottom:24%; left:40%; width:30px; height:8px; background: radial-gradient(ellipse, #e0c090 0%, #b08060 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: mbg-plate 4s ease-in-out infinite; }
.scn-menenius-baits-guard .guard-head { position:absolute; bottom:28%; left:50%; width:28px; height:28px; background: linear-gradient(180deg, #c09070 0%, #a06848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: mbg-guard-head 3s ease-in-out infinite; }
.scn-menenius-baits-guard .guard-body { position:absolute; bottom:8%; left:46%; width:24px; height:40px; background: linear-gradient(180deg, #b08060 0%, #805030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mbg-guard-body 3s ease-in-out infinite reverse; }
.scn-menenius-baits-guard .menenius-head { position:absolute; bottom:30%; left:20%; width:22px; height:22px; background: linear-gradient(180deg, #d0a080 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mbg-menenius-head 5s ease-in-out infinite; }
.scn-menenius-baits-guard .menenius-body { position:absolute; bottom:8%; left:16%; width:18px; height:42px; background: linear-gradient(180deg, #c09070 0%, #906848 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mbg-menenius-body 5s ease-in-out infinite alternate; }
.scn-menenius-baits-guard .ground { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #c9a86a 0%, #a07a4a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
@keyframes mbg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mbg-plate { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(5deg); } }
@keyframes mbg-guard-head { 0%,100% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-48%) rotate(-5deg); } 70% { transform: translateX(-52%) rotate(5deg); } }
@keyframes mbg-guard-body { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes mbg-menenius-head { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(6px) rotate(8deg); } 70% { transform: translateX(-3px) rotate(-5deg); } }
@keyframes mbg-menenius-body { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(3deg); } }

.scn-menenius-greets-coriolanus {
  background: linear-gradient(180deg, #eed6aa 0%, #dbbf8a 60%, #c4a26a 100%), radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 50%);
}
.scn-menenius-greets-coriolanus .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fae6c8 0%, #edd4a0 100%); animation: mgc2-sky 10s ease-in-out infinite alternate; }
.scn-menenius-greets-coriolanus .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c9a86a 0%, #a07a4a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-menenius-greets-coriolanus .coriolanus { position:absolute; bottom:10%; left:45%; width:30px; height:75px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mgc2-cor 4s ease-in-out infinite; }
.scn-menenius-greets-coriolanus .aufidius { position:absolute; bottom:10%; left:60%; width:28px; height:70px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mgc2-auf 4s ease-in-out infinite 2s; }
.scn-menenius-greets-coriolanus .menenius { position:absolute; bottom:12%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #c09070 0%, #906848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mgc2-men 5s ease-in-out infinite; }
.scn-menenius-greets-coriolanus .spear-cor { position:absolute; bottom:10%; left:55%; width:4px; height:80px; background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%); border-radius: 10%; transform: rotate(10deg); transform-origin: bottom center; animation: mgc2-spear 6s ease-in-out infinite; }
.scn-menenius-greets-coriolanus .spear-auf { position:absolute; bottom:10%; left:68%; width:4px; height:75px; background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%); border-radius: 10%; transform: rotate(-5deg); transform-origin: bottom center; animation: mgc2-spear 6s ease-in-out infinite 3s; }
.scn-menenius-greets-coriolanus .shadow { position:absolute; bottom:8%; left:15%; width:60%; height:8px; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(5px); animation: mgc2-shadow 6s ease-in-out infinite; }
@keyframes mgc2-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mgc2-cor { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(1deg); } 70% { transform: translateX(2px) rotate(-1deg); } }
@keyframes mgc2-auf { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-1deg); } 70% { transform: translateX(-2px) rotate(1deg); } }
@keyframes mgc2-men { 0%,100% { transform: translateX(0) rotate(-3deg) scale(1); } 50% { transform: translateX(6px) rotate(2deg) scale(1.05); } }
@keyframes mgc2-spear { 0%,100% { transform: rotate(8deg); } 50% { transform: rotate(12deg); } }
@keyframes mgc2-shadow { 0%,100% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.15); opacity:0.5; } }

.scn-scene-ladies-approach {
  background: linear-gradient(180deg, #fce4b8 0%, #f9d08e 40%, #e0b06a 100%), radial-gradient(ellipse at 60% 20%, #ffe4a0 0%, transparent 60%);
}
.scn-scene-ladies-approach .sky-ladies {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce4b8 0%, #f9d08e 100%);
  animation: la-sky 12s ease-in-out infinite alternate;
}
.scn-scene-ladies-approach .sun-ladies {
  position: absolute; top: 12%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8d0 0%, #fce4b8 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,220,140,0.6);
  animation: la-sun 8s ease-in-out infinite alternate;
}
.scn-scene-ladies-approach .ground-ladies {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #d4a56a 0%, #b0854a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
}
.scn-scene-ladies-approach .arch-ladies {
  position: absolute; bottom: 35%; left: 50%; width: 180px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8985a 0%, #a06e3a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.2);
}
.scn-scene-ladies-approach .lady-1,
.scn-scene-ladies-approach .lady-2,
.scn-scene-ladies-approach .lady-3 {
  position: absolute; bottom: 22%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #8a603a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-scene-ladies-approach .lady-1 { left: 30%; animation: la-walk 4s ease-in-out infinite; }
.scn-scene-ladies-approach .lady-2 { left: 46%; animation: la-walk 4.2s ease-in-out infinite 0.2s; width: 22px; height: 46px; }
.scn-scene-ladies-approach .lady-3 { left: 62%; animation: la-walk 3.8s ease-in-out infinite 0.4s; width: 20px; height: 42px; }
.scn-scene-ladies-approach .dust-ladies {
  position: absolute; bottom: 20%; left: 28%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(200,160,100,0.6) 0%, transparent 100%);
  filter: blur(4px); animation: la-dust 6s ease-in-out infinite alternate;
}
@keyframes la-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes la-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes la-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes la-dust { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.3); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-item-scars-wounds {
  background: linear-gradient(180deg, #d9b382 0%, #c09a6a 50%, #a67a4a 100%), radial-gradient(ellipse at 50% 30%, #e0c090 0%, transparent 70%);
}
.scn-item-scars-wounds .bg-scars {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #c8a070 0%, transparent 70%);
}
.scn-item-scars-wounds .figure-scars {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: sw-figure 6s ease-in-out infinite;
}
.scn-item-scars-wounds .arm-scars {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 22px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 20% 20% 40% / 80% 30% 30% 80%;
  transform: rotate(-15deg);
  animation: sw-arm 4s ease-in-out infinite alternate;
}
.scn-item-scars-wounds .scar-line-1,
.scn-item-scars-wounds .scar-line-2,
.scn-item-scars-wounds .scar-line-3 {
  position: absolute; height: 3px; background: linear-gradient(90deg, #d8a080, #f0c8a0, #d8a080);
  border-radius: 2px; box-shadow: 0 0 6px rgba(255,200,160,0.5);
  opacity: 0.8;
}
.scn-item-scars-wounds .scar-line-1 { top: 42%; left: 42%; width: 30px; transform: rotate(10deg); animation: sw-scar 3s ease-in-out infinite; }
.scn-item-scars-wounds .scar-line-2 { top: 48%; left: 44%; width: 20px; transform: rotate(-5deg); animation: sw-scar 3.2s ease-in-out infinite 0.4s; }
.scn-item-scars-wounds .scar-line-3 { top: 55%; left: 43%; width: 25px; transform: rotate(20deg); animation: sw-scar 2.8s ease-in-out infinite 0.8s; }
.scn-item-scars-wounds .glow-scars {
  position: absolute; top: 35%; left: 35%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,220,180,0.3) 0%, transparent 70%);
  filter: blur(8px); animation: sw-glow 4s ease-in-out infinite alternate;
}
@keyframes sw-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sw-arm { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.05); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes sw-scar { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes sw-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }

.scn-scene-coriolanus-arrival {
  background: linear-gradient(180deg, #fde8c0 0%, #f5d4a0 40%, #d4a86a 100%), radial-gradient(ellipse at 50% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-scene-coriolanus-arrival .sky-arrival {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fde8c0 0%, #f5d4a0 100%);
  animation: ca-sky 15s ease-in-out infinite alternate;
}
.scn-scene-coriolanus-arrival .sunburst-arrival {
  position: absolute; top: 15%; left: 50%; width: 160px; height: 160px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff8d0 0%, #fce4a0 30%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 40px rgba(255,220,140,0.5);
  animation: ca-sunburst 10s ease-in-out infinite alternate;
}
.scn-scene-coriolanus-arrival .ground-arrival {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d0a86a 0%, #b08a4a 100%);
  border-radius: 40% 60% 0 0 / 70% 50% 0 0;
}
.scn-scene-coriolanus-arrival .coriolanus {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ca-hero 5s ease-in-out infinite;
}
.scn-scene-coriolanus-arrival .trumpet-left,
.scn-scene-coriolanus-arrival .trumpet-right {
  position: absolute; bottom: 28%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #c8985a 0%, #a06e3a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  animation: ca-trumpet 3s ease-in-out infinite alternate;
}
.scn-scene-coriolanus-arrival .trumpet-left { left: 35%; transform: rotate(10deg); }
.scn-scene-coriolanus-arrival .trumpet-right { right: 35%; transform: rotate(-10deg); }
.scn-scene-coriolanus-arrival .crowd-left,
.scn-scene-coriolanus-arrival .crowd-right {
  position: absolute; bottom: 18%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
  filter: blur(3px);
  animation: ca-crowd 7s ease-in-out infinite alternate;
}
.scn-scene-coriolanus-arrival .crowd-left { left: 10%; transform-origin: bottom center; }
.scn-scene-coriolanus-arrival .crowd-right { right: 10%; transform-origin: bottom center; }
@keyframes ca-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ca-sunburst { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.85; } }
@keyframes ca-hero { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-4px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes ca-trumpet { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes ca-crowd { 0% { transform: scaleY(0.9); opacity: 0.6; } 50% { transform: scaleY(1.1); opacity: 0.8; } 100% { transform: scaleY(0.9); opacity: 0.6; } }

.scn-scene-tribunes-scheme {
  background: linear-gradient(180deg, #6b7b8a 0%, #4a5a6a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-scene-tribunes-scheme .sky-scheme {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7b8b9a 0%, #4a5a6a 100%);
  animation: ts-sky 20s ease-in-out infinite alternate;
}
.scn-scene-tribunes-scheme .wall-scheme {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-scene-tribunes-scheme .malkin-figure {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts-climb 5s ease-in-out infinite alternate;
}
.scn-scene-tribunes-scheme .crowd-base {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
  filter: blur(4px);
  animation: ts-crowd 8s ease-in-out infinite alternate;
}
.scn-scene-tribunes-scheme .whisper-1,
.scn-scene-tribunes-scheme .whisper-2 {
  position: absolute; bottom: 40%; width: 30px; height: 10px;
  background: linear-gradient(90deg, transparent, rgba(200,200,220,0.3), transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: ts-whisper 3s ease-in-out infinite alternate;
}
.scn-scene-tribunes-scheme .whisper-1 { left: 25%; top: 20%; }
.scn-scene-tribunes-scheme .whisper-2 { right: 30%; top: 25%; animation-delay: 1.5s; }
.scn-scene-tribunes-scheme .baby-scheme {
  position: absolute; bottom: 35%; left: 55%; width: 16px; height: 14px;
  background: radial-gradient(circle, #d0b080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ts-baby 4s ease-in-out infinite alternate;
}
@keyframes ts-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ts-climb { 0% { transform: translateY(0) translateX(0) rotate(-2deg); } 50% { transform: translateY(-8px) translateX(4px) rotate(2deg); } 100% { transform: translateY(0) translateX(0) rotate(-2deg); } }
@keyframes ts-crowd { 0% { opacity: 0.5; transform: scaleY(0.9); } 50% { opacity: 0.8; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(0.9); } }
@keyframes ts-whisper { 0% { opacity: 0.2; transform: scaleX(0.5); } 50% { opacity: 0.6; transform: scaleX(1.5); } 100% { opacity: 0.2; transform: scaleX(0.5); } }
@keyframes ts-baby { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }

/* Scene 1: coriolanus-rejects-menenius */
.scn-coriolanus-rejects-menenius {
  background: linear-gradient(180deg, #f9d68a 0%, #e8b86a 30%, #b87a4a 60%, #7a4a2a 100%),
              radial-gradient(ellipse at 50% 0%, #f9e0a0 0%, transparent 70%);
}
.scn-coriolanus-rejects-menenius .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f0c878 0%, #f8d890 100%);
  animation: cor-skys 8s ease-in-out infinite alternate;
}
.scn-coriolanus-rejects-menenius .sun {
  position: absolute; top: 8%; left: 70%;
  width: 70px; height: 70px;
  background: radial-gradient(circle at 50% 50%, #fff6e0 0%, #ffcc80 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #fff4d0, 0 0 120px 40px rgba(255,200,100,.4);
  animation: cor-sun 20s ease-in-out infinite alternate;
}
.scn-coriolanus-rejects-menenius .hills {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 30% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: cor-hills 12s ease-in-out infinite alternate;
}
.scn-coriolanus-rejects-menenius .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 0 0 0 0;
}
.scn-coriolanus-rejects-menenius .figure-a {
  position: absolute; bottom: 20%; left: 30%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cor-fig-a 5s ease-in-out infinite;
}
.scn-coriolanus-rejects-menenius .figure-b {
  position: absolute; bottom: 18%; left: 55%;
  width: 36px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cor-fig-b 6s ease-in-out infinite;
}
.scn-coriolanus-rejects-menenius .shadow {
  position: absolute; bottom: 15%; left: 28%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: cor-shadow 5s ease-in-out infinite alternate;
}
.scn-coriolanus-rejects-menenius .dust {
  position: absolute; bottom: 35%; left: 10%; width: 100px; height: 20px;
  background: rgba(200,170,120,.15);
  filter: blur(10px);
  border-radius: 50%;
  animation: cor-dust 30s linear infinite;
}
@keyframes cor-skys { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes cor-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes cor-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cor-fig-a { 0% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes cor-fig-b { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes cor-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.1) } 100% { opacity: .4; transform: scaleX(.9) } }
@keyframes cor-dust { 0% { transform: translateX(-50px) } 100% { transform: translateX(100vw) } }

/* Scene 2: menenius-dismissed */
.scn-menenius-dismissed {
  background: linear-gradient(180deg, #b87a4a 0%, #8a5a3a 30%, #5a3a1a 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 0%, #d8a868 0%, transparent 60%);
}
.scn-menenius-dismissed .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #d8b078 0%, #b08050 100%);
  animation: men-skys 10s ease-in-out infinite alternate;
}
.scn-menenius-dismissed .sunset {
  position: absolute; top: 5%; left: 75%;
  width: 80px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #f0c880 0%, #c89050 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #e0b060, 0 0 100px 40px rgba(200,140,60,.3);
  animation: men-sunset 15s ease-in-out infinite alternate;
}
.scn-menenius-dismissed .road {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%);
  animation: men-road 8s ease-in-out infinite alternate;
}
.scn-menenius-dismissed .figure-walk {
  position: absolute; bottom: 18%; left: 40%;
  width: 38px; height: 110px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: men-walk 4s ease-in-out infinite;
}
.scn-menenius-dismissed .cape {
  position: absolute; bottom: 20%; left: 36%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 20% 50% 50%;
  transform-origin: top left;
  animation: men-cape 3s ease-in-out infinite alternate;
}
.scn-menenius-dismissed .staff {
  position: absolute; bottom: 22%; left: 48%;
  width: 4px; height: 70px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: men-staff 5s ease-in-out infinite;
}
.scn-menenius-dismissed .ghost {
  position: absolute; bottom: 25%; left: 20%;
  width: 30px; height: 80px;
  background: rgba(200,180,160,.08);
  filter: blur(8px);
  border-radius: 50%;
  animation: men-ghost 20s ease-in-out infinite alternate;
}
@keyframes men-skys { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes men-sunset { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.03) translateX(-5px) } 100% { transform: scale(.97) translateX(5px) } }
@keyframes men-road { 0% { transform: skewX(0deg) } 50% { transform: skewX(-2deg) } 100% { transform: skewX(0deg) } }
@keyframes men-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(-3deg) } 50% { transform: translateX(16px) rotate(0deg) } 75% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes men-cape { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes men-staff { 0% { transform: translateX(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) } }
@keyframes men-ghost { 0% { opacity: .05 } 50% { opacity: .15 } 100% { opacity: .05 } }

/* Scene 3: coriolanus-resolves */
.scn-coriolanus-resolves {
  background: linear-gradient(180deg, #c8a878 0%, #a88868 40%, #7a6a5a 100%),
              radial-gradient(ellipse at 50% 0%, #d8b898 0%, transparent 70%);
}
.scn-coriolanus-resolves .tent-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b09880 0%, #8a7a6a 100%);
  clip-path: polygon(0 0, 100% 0, 95% 90%, 5% 90%);
}
.scn-coriolanus-resolves .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-coriolanus-resolves .table {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-coriolanus-resolves .map {
  position: absolute; bottom: 14%; left: 35%; right: 35%; height: 4%;
  background: linear-gradient(180deg, #d8c0a0 0%, #b8a080 100%);
  border-radius: 2px;
  animation: corr-map 6s ease-in-out infinite alternate;
}
.scn-coriolanus-resolves .figure-leader {
  position: absolute; bottom: 0; left: 40%;
  width: 50px; height: 140px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: corr-leader 4s ease-in-out infinite;
}
.scn-coriolanus-resolves .figure-officer {
  position: absolute; bottom: 0; left: 55%;
  width: 44px; height: 130px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: corr-officer 5s ease-in-out infinite alternate;
}
.scn-coriolanus-resolves .lamp {
  position: absolute; top: 25%; left: 50%;
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #f0c868 0%, #c89040 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 10px #e0b050, 0 0 60px 20px rgba(200,140,60,.4);
  animation: corr-lamp 3s ease-in-out infinite alternate;
}
.scn-coriolanus-resolves .shadowcast {
  position: absolute; bottom: 10%; left: 38%; width: 80px; height: 15px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: corr-shadow 4s ease-in-out infinite alternate;
}
@keyframes corr-map { 0% { opacity: .8; transform: scaleX(1) } 50% { opacity: 1; transform: scaleX(1.05) } 100% { opacity: .9; transform: scaleX(1) } }
@keyframes corr-leader { 0% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) translateY(-2px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) translateY(1px) } 100% { transform: rotate(0deg) } }
@keyframes corr-officer { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes corr-lamp { 0% { box-shadow: 0 0 20px 6px #e0b050, 0 0 40px 12px rgba(200,140,60,.3); opacity: .8 } 50% { box-shadow: 0 0 40px 14px #f0c060, 0 0 80px 24px rgba(200,140,60,.5); opacity: 1 } 100% { box-shadow: 0 0 25px 8px #e0b050, 0 0 50px 16px rgba(200,140,60,.35); opacity: .9 } }
@keyframes corr-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.2) } 100% { opacity: .4; transform: scaleX(1) } }

/* Scene 4: family-entreats-coriolanus */
.scn-family-entreats-coriolanus {
  background: linear-gradient(180deg, #c0a080 0%, #a08060 40%, #7a604a 100%),
              radial-gradient(ellipse at 50% 0%, #d8b898 0%, transparent 70%);
}
.scn-family-entreats-coriolanus .chamber-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b09880 0%, #8a7a6a 100%);
  clip-path: polygon(5% 0, 95% 0, 100% 100%, 0% 100%);
}
.scn-family-entreats-coriolanus .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-family-entreats-coriolanus .column {
  position: absolute; top: 0; left: 50%;
  width: 12px; height: 100%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  animation: fam-column 10s ease-in-out infinite alternate;
}
.scn-family-entreats-coriolanus .figure-corio {
  position: absolute; bottom: 10%; left: 60%;
  width: 48px; height: 130px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fam-corio 5s ease-in-out infinite;
}
.scn-family-entreats-coriolanus .figure-volumnia {
  position: absolute; bottom: 10%; left: 20%;
  width: 40px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fam-vol 6s ease-in-out infinite alternate;
}
.scn-family-entreats-coriolanus .figure-virgilia {
  position: absolute; bottom: 10%; left: 32%;
  width: 36px; height: 110px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fam-vir 7s ease-in-out infinite alternate;
}
.scn-family-entreats-coriolanus .figure-young {
  position: absolute; bottom: 10%; left: 38%;
  width: 28px; height: 70px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fam-young 4s ease-in-out infinite;
}
.scn-family-entreats-coriolanus .altar {
  position: absolute; bottom: 0; left: 45%;
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #7a604a 0%, #5a402a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-family-entreats-coriolanus .glow {
  position: absolute; top: 20%; left: 50%;
  width: 80px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #f0c868 0%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: fam-glow 3s ease-in-out infinite alternate;
}
@keyframes fam-column { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes fam-corio { 0% { transform: rotate(0deg) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) translateY(1px) } 100% { transform: rotate(0deg) } }
@keyframes fam-vol { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes fam-vir { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes fam-young { 0% { transform: translateX(0) } 25% { transform: translateX(3px) } 50% { transform: translateX(0) } 75% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes fam-glow { 0% { opacity: .6; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .7; transform: scale(.9) } }

/* cominius-berates-tribunes */
.scn-cominius-berates-tribunes {
  background: linear-gradient(180deg, #1a1423 0%, #2a1e2e 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-cominius-berates-tribunes .hall-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a1423 100%);
  animation: cb-hall 10s ease-in-out infinite alternate;
}
.scn-cominius-berates-tribunes .dais {
  position:absolute; bottom:18%; left:25%; right:25%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 30% 10% 10% / 60% 50% 20% 20%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: cb-dais 8s ease-in-out infinite;
}
.scn-cominius-berates-tribunes .tribune-left {
  position:absolute; bottom:15%; left:15%; width:40px; height:60px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120a 100%);
  border-radius: 45% 40% 30% 30% / 55% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cb-figure 4s ease-in-out infinite;
}
.scn-cominius-berates-tribunes .tribune-right {
  position:absolute; bottom:15%; right:15%; width:40px; height:60px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120a 100%);
  border-radius: 40% 45% 30% 30% / 50% 55% 30% 30%;
  transform-origin: bottom center;
  animation: cb-figure 4s ease-in-out infinite -1.2s;
}
.scn-cominius-berates-tribunes .figure-cominius {
  position:absolute; bottom:25%; left:50%; width:50px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1423 0%, #0a0a1a 100%);
  border-radius: 50% 45% 40% 40% / 60% 55% 40% 40%;
  box-shadow: 0 0 20px rgba(180,120,60,0.3);
  animation: cb-cominius 6s ease-in-out infinite;
}
.scn-cominius-berates-tribunes .torch {
  position:absolute; bottom:30%; left:10%; width:8px; height:24px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: cb-torch 2s ease-in-out infinite alternate;
}
.scn-cominius-berates-tribunes .torch-glow {
  position:absolute; bottom:35%; left:10%; width:40px; height:40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffc060 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cb-glow 3s ease-in-out infinite alternate;
}
@keyframes cb-hall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cb-dais { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } }
@keyframes cb-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cb-cominius { 0%,100% { transform: translateX(-50%) } 25% { transform: translateX(-50%) translateY(-1px) scale(1.01) } 50% { transform: translateX(-50%) translateY(2px) } 75% { transform: translateX(-50%) translateY(-1px) } }
@keyframes cb-torch { 0% { opacity:0.8; transform: scaleY(1) } 100% { opacity:1; transform: scaleY(1.1) } }
@keyframes cb-glow { 0% { opacity:0.7; transform: translate(-50%, -50%) scale(0.9) } 100% { opacity:1; transform: translate(-50%, -50%) scale(1.1) } }

/* rome-in-panic */
.scn-rome-in-panic {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e3a 40%, #1a141e 100%),
              radial-gradient(ellipse at 70% 60%, #4a2a3a 0%, transparent 60%);
}
.scn-rome-in-panic .room-bg {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, #2a1e3a 0%, #1a1423 100%);
  animation: rp-room 12s ease-in-out infinite alternate;
}
.scn-rome-in-panic .column-left {
  position:absolute; bottom:10%; left:12%; width:20px; height:60%;
  background: linear-gradient(90deg, #3a2a3a 0%, #4a3a4a 50%, #2a1a2a 100%);
  border-radius: 6px;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-rome-in-panic .column-right {
  position:absolute; bottom:10%; right:12%; width:20px; height:60%;
  background: linear-gradient(90deg, #3a2a3a 0%, #4a3a4a 50%, #2a1a2a 100%);
  border-radius: 6px;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-rome-in-panic .crowd-back {
  position:absolute; bottom:15%; left:20%; right:20%; height:40%;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a120a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.6;
  animation: rp-crowd 5s ease-in-out infinite alternate;
}
.scn-rome-in-panic .crowd-front {
  position:absolute; bottom:10%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #3a2a2e 0%, #1a1423 100%);
  border-radius: 40% 60% 0 0 / 80% 80% 0 0;
  animation: rp-crowd 5s ease-in-out infinite alternate -1.5s;
}
.scn-rome-in-panic .messenger {
  position:absolute; bottom:25%; left:50%; transform: translateX(-50%);
  width:35px; height:70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 45% 40% 35% 35% / 55% 50% 35% 35%;
  animation: rp-messenger 3s ease-in-out infinite;
}
.scn-rome-in-panic .falling-figure {
  position:absolute; bottom:35%; left:30%; width:30px; height:50px;
  background: linear-gradient(180deg, #2a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rp-fall 4s ease-in-out infinite;
}
@keyframes rp-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rp-crowd { 0% { transform: translateY(0) } 100% { transform: translateY(-5px) } }
@keyframes rp-messenger { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(1px) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } }
@keyframes rp-fall { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-10px) scaleY(0.9) } 50% { transform: translateY(0) scaleY(1) } 75% { transform: translateY(10px) scaleY(1.1) } 100% { transform: translateY(0) scaleY(1) } }

/* citizens-regret */
.scn-citizens-regret {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e2e 40%, #1a141e 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 60%);
}
.scn-citizens-regret .bg-deep {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a1423 100%);
  animation: cr-bg 10s ease-in-out infinite alternate;
}
.scn-citizens-regret .table {
  position:absolute; bottom:10%; left:15%; right:15%; height:20%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-citizens-regret .citizen-a {
  position:absolute; bottom:18%; left:22%; width:35px; height:65px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 50% 45% 35% 35% / 55% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cr-citizen 4s ease-in-out infinite;
}
.scn-citizens-regret .citizen-b {
  position:absolute; bottom:18%; left:45%; width:35px; height:65px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 45% 50% 35% 35% / 50% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cr-citizen 4s ease-in-out infinite -1s;
}
.scn-citizens-regret .citizen-c {
  position:absolute; bottom:18%; right:22%; width:35px; height:65px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 50% 45% 35% 35% / 55% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cr-citizen 4s ease-in-out infinite -2s;
}
.scn-citizens-regret .lamp {
  position:absolute; bottom:35%; left:50%; transform: translateX(-50%);
  width:10px; height:20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 3px;
  box-shadow: 0 0 6px rgba(100,70,30,0.5);
}
.scn-citizens-regret .lamp-glow {
  position:absolute; bottom:38%; left:50%; transform: translateX(-50%);
  width:50px; height:50px;
  background: radial-gradient(circle, #d09040 0%, #a07030 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cr-glow 3s ease-in-out infinite alternate;
}
@keyframes cr-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cr-citizen { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes cr-glow { 0% { opacity:0.7; transform: translateX(-50%) scale(0.9) } 100% { opacity:1; transform: translateX(-50%) scale(1.1) } }

/* citizens-admit-fault */
.scn-citizens-admit-fault {
  background: linear-gradient(90deg, #1a1423 0%, #2a1e2e 50%, #1a1423 100%),
              radial-gradient(ellipse at 50% 60%, #4a2a3a 0%, transparent 70%);
}
.scn-citizens-admit-fault .bg-floor {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a1423 100%);
  animation: ca-floor 8s ease-in-out infinite alternate;
}
.scn-citizens-admit-fault .figure-center {
  position:absolute; bottom:20%; left:50%; transform: translateX(-50%);
  width:45px; height:85px;
  background: linear-gradient(180deg, #2a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 45% 40% 40% / 60% 50% 40% 40%;
  animation: ca-center 5s ease-in-out infinite;
}
.scn-citizens-admit-fault .figure-left {
  position:absolute; bottom:20%; left:25%; width:35px; height:70px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 45% 50% 35% 35% / 50% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ca-side 4s ease-in-out infinite -0.5s;
}
.scn-citizens-admit-fault .figure-right {
  position:absolute; bottom:20%; right:25%; width:35px; height:70px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 50% 45% 35% 35% / 55% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ca-side 4s ease-in-out infinite -1.5s;
}
.scn-citizens-admit-fault .hands-up {
  position:absolute; bottom:32%; left:50%; transform: translateX(-50%);
  width:30px; height:20px;
  background: linear-gradient(180deg, #1a1423 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: ca-hands 2s ease-in-out infinite alternate;
}
.scn-citizens-admit-fault .light-source {
  position:absolute; bottom:40%; left:50%; transform: translateX(-50%);
  width:20px; height:20px;
  background: radial-gradient(circle, #ffc060 0%, #b08040 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ca-light 3s ease-in-out infinite alternate;
}
@keyframes ca-floor { 0% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ca-center { 0%,100% { transform: translateX(-50%) } 25% { transform: translateX(-50%) translateY(-2px) scale(1.02) } 50% { transform: translateX(-50%) translateY(1px) } 75% { transform: translateX(-50%) translateY(-2px) } }
@keyframes ca-side { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-3px) } 50% { transform: translateY(0) } 75% { transform: translateY(-3px) } }
@keyframes ca-hands { 0% { transform: translateX(-50%) translateY(0) scaleY(1) } 100% { transform: translateX(-50%) translateY(-5px) scaleY(1.2) } }
@keyframes ca-light { 0% { opacity:0.8; transform: translateX(-50%) scale(0.9) } 100% { opacity:1; transform: translateX(-50%) scale(1.1) } }

/* coriolanus-house-defiance */
.scn-coriolanus-house-defiance {
  background: linear-gradient(180deg, #0d0806 0%, #1a0f0a 40%, #2b1a10 70%, #0f0a08 100%), 
              radial-gradient(ellipse at 30% 40%, #3a1e10 0%, transparent 60%);
}
.scn-coriolanus-house-defiance .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #0a050400 0%, #1a0f0a 100%);
  animation: cd-bg 8s ease-in-out infinite alternate;
}
.scn-coriolanus-house-defiance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-coriolanus-house-defiance .wall-left {
  position: absolute; top: 0; left: 0; width: 18%; height: 72%;
  background: linear-gradient(90deg, #0f0804 0%, #1a0f0a 100%);
  box-shadow: 4px 0 20px rgba(0,0,0,0.8);
}
.scn-coriolanus-house-defiance .wall-right {
  position: absolute; top: 0; right: 0; width: 18%; height: 72%;
  background: linear-gradient(-90deg, #0f0804 0%, #1a0f0a 100%);
  box-shadow: -4px 0 20px rgba(0,0,0,0.8);
}
.scn-coriolanus-house-defiance .window-frame {
  position: absolute; top: 12%; left: 38%; width: 24%; height: 35%;
  border: 6px solid #2a1a0e; border-radius: 4px;
  background: linear-gradient(180deg, #0a0d12 0%, #141a24 60%, #0f1218 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 0 0 20px rgba(0,0,0,0.5);
  animation: cd-window 12s ease-in-out infinite alternate;
}
.scn-coriolanus-house-defiance .figure-defiant {
  position: absolute; bottom: 28%; left: 42%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: cd-figure 4s ease-in-out infinite alternate;
}
.scn-coriolanus-house-defiance .candle {
  position: absolute; bottom: 30%; left: 54%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #d06a30 0%, #a84a20 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 8px #a84a2040, 0 0 40px 16px #a84a2020;
  animation: cd-candle 3s ease-in-out infinite alternate;
}
.scn-coriolanus-house-defiance .table {
  position: absolute; bottom: 26%; left: 50%; width: 14%; height: 4%;
  background: linear-gradient(90deg, #3a1e0e 0%, #2a1406 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
@keyframes cd-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes cd-window { 0% { background: linear-gradient(180deg, #0a0d12 0%, #141a24 60%, #0f1218 100%); } 50% { background: linear-gradient(180deg, #0e1118 0%, #181e30 60%, #121620 100%); } 100% { background: linear-gradient(180deg, #080b10 0%, #10151c 60%, #0c0f14 100%); } }
@keyframes cd-figure { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02) rotate(1deg); } 100% { transform: translateX(-1px) scale(0.98) rotate(-0.5deg); } }
@keyframes cd-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.85; transform: scaleY(0.95); } }

/* volumnia-enters */
.scn-volumnia-enters {
  background: linear-gradient(180deg, #120a06 0%, #1a0f0a 40%, #2a1810 70%, #0e0804 100%),
              radial-gradient(ellipse at 50% 30%, #3a1e10 0%, transparent 70%);
}
.scn-volumnia-enters .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a050400 0%, #1a0f0a 100%);
  animation: ve-bg 10s ease-in-out infinite alternate;
}
.scn-volumnia-enters .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-volumnia-enters .doorway {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 70%;
  background: linear-gradient(180deg, #0f0804 0%, #1a0f0a 100%);
  border-radius: 0 0 6px 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 4px 0 20px rgba(0,0,0,0.6);
}
.scn-volumnia-enters .doorlight {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, #c0804040 0%, transparent 70%);
  animation: ve-light 4s ease-in-out infinite alternate;
}
.scn-volumnia-enters .figure-volumnia {
  position: absolute; bottom: 32%; left: 42%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: ve-figure 6s ease-in-out infinite alternate;
}
.scn-volumnia-enters .shadow {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #00000060 100%);
  filter: blur(8px);
  animation: ve-shadow 6s ease-in-out infinite alternate;
}
.scn-volumnia-enters .chair {
  position: absolute; bottom: 28%; left: 56%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  transform: rotate(2deg);
}
@keyframes ve-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes ve-light { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.1); } 100% { opacity:0.65; transform: scaleY(0.95); } }
@keyframes ve-figure { 0% { transform: translateX(0) scale(1) rotate(0deg); } 50% { transform: translateX(3px) scale(1.03) rotate(2deg); } 100% { transform: translateX(-2px) scale(0.98) rotate(-1deg); } }
@keyframes ve-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.55; } }

/* menenius-senators-enter-house */
.scn-menenius-senators-enter-house {
  background: linear-gradient(180deg, #0d0804 0%, #1a0f0a 40%, #2a1810 70%, #0e0804 100%),
              radial-gradient(ellipse at 40% 60%, #3a1e10 0%, transparent 60%);
}
.scn-menenius-senators-enter-house .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a050400 0%, #1a0f0a 100%);
  animation: ms-bg 12s ease-in-out infinite alternate;
}
.scn-menenius-senators-enter-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-menenius-senators-enter-house .arch {
  position: absolute; bottom: 32%; left: 30%; width: 40%; height: 68%;
  background: linear-gradient(180deg, #0f0804 0%, #1a0f0a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
}
.scn-menenius-senators-enter-house .figures-senators {
  position: absolute; bottom: 34%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  filter: blur(2px);
  animation: ms-figures 5s ease-in-out infinite alternate;
}
.scn-menenius-senators-enter-house .table-round {
  position: absolute; bottom: 28%; left: 50%; width: 16%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, #3a1e0e 0%, #2a1406 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-menenius-senators-enter-house .candle-two {
  position: absolute; bottom: 30%; left: 50%; width: 2%; height: 5%;
  background: linear-gradient(180deg, #d06a30 0%, #a84a20 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 8px #a84a2040, 0 0 40px 16px #a84a2020;
  transform: translateX(-50%);
  animation: ms-candle 3s ease-in-out infinite alternate;
}
.scn-menenius-senators-enter-house .chair-back {
  position: absolute; bottom: 28%; left: 36%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
@keyframes ms-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ms-figures { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); } 100% { transform: translateX(-1px) scale(0.98); } }
@keyframes ms-candle { 0% { opacity:0.8; transform: scaleY(1) translateX(-50%); } 50% { opacity:1; transform: scaleY(1.05) translateX(-50%); } 100% { opacity:0.85; transform: scaleY(0.95) translateX(-50%); } }

/* coriolanus-reluctant-compromise */
.scn-coriolanus-reluctant-compromise {
  background: linear-gradient(180deg, #0d0806 0%, #1a0f0a 40%, #2b1a10 70%, #0f0a08 100%),
              radial-gradient(ellipse at 60% 50%, #3a1e10 0%, transparent 60%);
}
.scn-coriolanus-reluctant-compromise .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a050400 0%, #1a0f0a 100%);
  animation: cc-bg 8s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-coriolanus-reluctant-compromise .table-desk {
  position: absolute; bottom: 26%; left: 38%; width: 24%; height: 6%;
  background: linear-gradient(90deg, #3a1e0e 0%, #2a1406 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-coriolanus-reluctant-compromise .figure-coriolanus {
  position: absolute; bottom: 30%; left: 40%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: cc-coriolanus 4s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .figure-senator {
  position: absolute; bottom: 30%; left: 52%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: cc-senator 4s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .scroll {
  position: absolute; bottom: 28%; left: 45%; width: 6%; height: 4%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: cc-scroll 6s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .candle-three {
  position: absolute; bottom: 30%; left: 50%; width: 2%; height: 5%;
  background: linear-gradient(180deg, #d06a30 0%, #a84a20 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 8px #a84a2040, 0 0 40px 16px #a84a2020;
  animation: cc-candle 3s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .wall-shadow {
  position: absolute; bottom: 30%; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #00000030 100%);
  pointer-events: none;
}
@keyframes cc-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes cc-coriolanus { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(-2px) rotate(-2deg) scale(1.02); } 100% { transform: translateX(1px) rotate(1deg) scale(0.98); } }
@keyframes cc-senator { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(2px) rotate(2deg) scale(1.02); } 100% { transform: translateX(-1px) rotate(-1deg) scale(0.98); } }
@keyframes cc-scroll { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-12deg) translateX(-1px); } }
@keyframes cc-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.85; transform: scaleY(0.95); } }

/* mother-advises: tense, sunlit interior */
.scn-mother-advises {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #f0e0b0 100%),
    linear-gradient(135deg, rgba(255,230,180,0.5) 0%, transparent 60%),
    #f5e6c8;
}
.scn-mother-advises .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #dec78a 0%, #ccb070 100%); }
.scn-mother-advises .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b89a68 0%, #a08050 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.15); }
.scn-mother-advises .window { position:absolute; top:10%; left:20%; width:30%; height:45%; background: linear-gradient(180deg, #fff8e0 0%, #ffe680 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 0 60px 20px rgba(255,230,128,0.6); animation: ma-window 6s ease-in-out infinite alternate; }
.scn-mother-advises .light-shaft { position:absolute; top:0; left:22%; width:26%; height:100%; background: linear-gradient(180deg, rgba(255,245,200,0.5) 0%, rgba(255,245,200,0.05) 100%); filter: blur(8px); animation: ma-shaft 8s ease-in-out infinite alternate; }
.scn-mother-advises .mother { position:absolute; bottom:38%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-mother 5s ease-in-out infinite; }
.scn-mother-advises .son { position:absolute; bottom:38%; left:50%; width:36px; height:44px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-son 7s ease-in-out infinite; }
.scn-mother-advises .shadow { position:absolute; bottom:0; left:28%; width:20%; height:8%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 100%); animation: ma-shadow 5s ease-in-out infinite alternate; }
@keyframes ma-window { 0% { opacity:0.7; transform: scaleX(1) scaleY(1); } 50% { opacity:1; transform: scaleX(1.02) scaleY(1.01); } 100% { opacity:0.8; transform: scaleX(0.98) scaleY(0.99); } }
@keyframes ma-shaft { 0% { opacity:0.4; transform: rotate(-2deg); } 50% { opacity:0.7; transform: rotate(2deg); } 100% { opacity:0.5; transform: rotate(-1deg); } }
@keyframes ma-mother { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(0.5deg); } 50% { transform: translateX(0) translateY(-3px) rotate(1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-0.5deg); } }
@keyframes ma-son { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 33% { transform: translateX(-3px) translateY(-1px) rotate(-0.5deg); } 66% { transform: translateX(2px) translateY(-2px) rotate(0.5deg); } 100% { transform: translateX(0) translateY(-0.5px) rotate(0deg); } }
@keyframes ma-shadow { 0% { opacity:0.3; scale:1; } 50% { opacity:0.5; scale:1.1; } 100% { opacity:0.4; scale:0.95; } }

/* final-farewell: warm, sunlit outdoor farewell */
.scn-final-farewell {
  background:
    linear-gradient(180deg, #f4d9a0 0%, #e8b870 40%, #c89050 100%),
    radial-gradient(ellipse at 80% 60%, rgba(255,200,100,0.4) 0%, transparent 50%),
    #f4d9a0;
}
.scn-final-farewell .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffd080 0%, #f4c070 100%); animation: ff-sky 10s ease-in-out infinite alternate; }
.scn-final-farewell .sun { position:absolute; top:10%; right:25%; width:80px; height:80px; background: radial-gradient(circle, #ffe080 0%, #f4b040 70%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,200,100,0.5); animation: ff-sun 8s ease-in-out infinite alternate; }
.scn-final-farewell .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a7a50 0%, #7a5a30 100%); border-radius: 40% 60% 0 0 / 30% 20% 0 0; }
.scn-final-farewell .figure-left { position:absolute; bottom:28%; left:35%; width:30px; height:45px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ff-figure-l 6s ease-in-out infinite; }
.scn-final-farewell .figure-right { position:absolute; bottom:28%; left:55%; width:32px; height:48px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ff-figure-r 7s ease-in-out infinite; }
.scn-final-farewell .dust { position:absolute; bottom:25%; left:30%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 100%); filter: blur(4px); animation: ff-dust 5s ease-in-out infinite alternate; }
@keyframes ff-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ff-sun { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-5px) translateY(-3px) scale(1.05); } 100% { transform: translateX(3px) translateY(2px) scale(0.95); } }
@keyframes ff-figure-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(-3px) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes ff-figure-r { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 33% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 66% { transform: translateX(1px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes ff-dust { 0% { opacity:0.2; transform: scale(1) translateY(0); } 50% { opacity:0.6; transform: scale(1.2) translateY(-4px); } 100% { opacity:0.3; transform: scale(0.9) translateY(2px); } }

/* tribunes-after-banishment: tense, bright interior scene */
.scn-tribunes-after-banishment {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8ccb0 50%, #c8b898 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,240,210,0.3) 0%, transparent 70%),
    #f0e8d0;
}
.scn-tribunes-after-banishment .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #d8c8a8 0%, #c0b090 100%); }
.scn-tribunes-after-banishment .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0a080 0%, #908060 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); }
.scn-tribunes-after-banishment .pillar-left { position:absolute; bottom:25%; left:15%; width:12px; height:65%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.15); animation: tb-pillar 9s ease-in-out infinite alternate; }
.scn-tribunes-after-banishment .pillar-right { position:absolute; bottom:25%; right:15%; width:12px; height:65%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,0.15); animation: tb-pillar 9s ease-in-out infinite alternate-reverse; }
.scn-tribunes-after-banishment .tribune-a { position:absolute; bottom:28%; left:35%; width:28px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tb-figure 5s ease-in-out infinite; }
.scn-tribunes-after-banishment .tribune-b { position:absolute; bottom:28%; left:55%; width:30px; height:42px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tb-figure 6s ease-in-out infinite 0.5s; }
.scn-tribunes-after-banishment .table { position:absolute; bottom:30%; left:42%; width:16%; height:10%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: tb-table 4s ease-in-out infinite alternate; }
@keyframes tb-pillar { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.9; transform: scaleY(0.98); } }
@keyframes tb-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(1px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(-1px) rotate(0deg); } 75% { transform: translateX(2px) translateY(-3px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes tb-table { 0% { transform: scaleX(1) skewX(0deg); } 50% { transform: scaleX(1.01) skewX(-1deg); } 100% { transform: scaleX(0.99) skewX(1deg); } }

/* volumnia-confronts-tribunes: dark mood, bright interior */
.scn-volumnia-confronts-tribunes {
  background:
    linear-gradient(180deg, #e8ddd0 0%, #c8bcb0 40%, #a89888 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,230,200,0.2) 0%, transparent 60%),
    #e8ddd0;
}
.scn-volumnia-confronts-tribunes .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b8a898 0%, #988878 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.2); }
.scn-volumnia-confronts-tribunes .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d8ccc0 0%, #b8ac9c 100%); }
.scn-volumnia-confronts-tribunes .doorway { position:absolute; bottom:30%; left:43%; width:14%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(255,200,150,0.3); animation: vt-door 8s ease-in-out infinite alternate; }
.scn-volumnia-confronts-tribunes .volumnia { position:absolute; bottom:33%; left:30%; width:34px; height:48px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vt-volumnia 5s ease-in-out infinite; }
.scn-volumnia-confronts-tribunes .tribune-left { position:absolute; bottom:33%; left:55%; width:28px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vt-tribune 6s ease-in-out infinite; }
.scn-volumnia-confronts-tribunes .tribune-right { position:absolute; bottom:33%; left:65%; width:26px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vt-tribune 7s ease-in-out infinite 0.3s; }
.scn-volumnia-confronts-tribunes .shadow { position:absolute; bottom:0; left:25%; width:50%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 100%); animation: vt-shadow 6s ease-in-out infinite alternate; }
@keyframes vt-door { 0% { opacity:0.7; transform: scaleX(1); } 50% { opacity:0.9; transform: scaleX(1.02) scaleY(1.01); } 100% { opacity:0.8; transform: scaleX(0.98); } }
@keyframes vt-volumnia { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 33% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(-1px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes vt-tribune { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(1px) translateY(-2px) rotate(0.5deg); } 75% { transform: translateX(-1px) translateY(0) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes vt-shadow { 0% { opacity:0.3; scale:1; } 50% { opacity:0.6; scale:1.2; } 100% { opacity:0.4; scale:0.9; } }

.scn-brutus-sicinius-plot {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0d0a08 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a20 0%, transparent 60%);
}
.scn-brutus-sicinius-plot .wall-dark {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1f1410 100%);
  animation: bp-wall 12s ease-in-out infinite alternate;
}
.scn-brutus-sicinius-plot .floor-wood {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-top: 2px solid #2a1e1a;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-brutus-sicinius-plot .table-plank {
  position:absolute; bottom:28%; left:35%; right:35%; height:6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: perspective(200px) rotateX(10deg);
}
.scn-brutus-sicinius-plot .candle-glow {
  position:absolute; bottom:34%; left:47%; width:8px; height:20px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,80,.4), 0 0 60px 20px rgba(255,200,80,.15);
  animation: bp-candle 3s ease-in-out infinite alternate;
}
.scn-brutus-sicinius-plot .figure-left {
  position:absolute; bottom:25%; left:20%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: bp-fig-left 5s ease-in-out infinite;
}
.scn-brutus-sicinius-plot .figure-right {
  position:absolute; bottom:25%; right:22%; width:24px; height:52px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: bp-fig-right 7s ease-in-out infinite;
  filter: drop-shadow(-4px 0 6px rgba(0,0,0,.5));
}
.scn-brutus-sicinius-plot .shadow-pool {
  position:absolute; bottom:24%; left:10%; right:10%; height:12%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 80%);
  animation: bp-shadow 10s ease-in-out infinite alternate;
}
.scn-brutus-sicinius-plot .dagger-hilt {
  position:absolute; bottom:32%; left:46%; width:6px; height:10px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  transform: rotate(-15deg);
  animation: bp-dagger 8s ease-in-out infinite;
}
@keyframes bp-wall {
  0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 }
}
@keyframes bp-candle {
  0% { box-shadow: 0 0 25px 8px rgba(255,200,80,.3), 0 0 50px 15px rgba(255,200,80,.1); opacity:.8 }
  50% { box-shadow: 0 0 40px 15px rgba(255,200,80,.5), 0 0 80px 30px rgba(255,200,80,.2); opacity:1 }
  100% { box-shadow: 0 0 30px 10px rgba(255,200,80,.35), 0 0 60px 20px rgba(255,200,80,.12); opacity:.85 }
}
@keyframes bp-fig-left {
  0% { transform: translateX(0) rotate(-2deg) }
  50% { transform: translateX(4px) rotate(2deg) translateY(-2px) }
  100% { transform: translateX(0) rotate(-1deg) }
}
@keyframes bp-fig-right {
  0% { transform: translateX(0) rotate(1deg) }
  50% { transform: translateX(-3px) rotate(-1deg) translateY(-1px) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes bp-shadow {
  0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 }
}
@keyframes bp-dagger {
  0% { transform: rotate(-15deg) scaleY(1) }
  50% { transform: rotate(-10deg) scaleY(1.05) translateY(-1px) }
  100% { transform: rotate(-15deg) scaleY(1) }
}

.scn-messenger-arrival {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0d0a08 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a20 0%, transparent 70%);
}
.scn-messenger-arrival .wall-stone {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
  animation: ma-wall 15s ease-in-out infinite alternate;
}
.scn-messenger-arrival .door-arch {
  position:absolute; bottom:20%; left:50%; width:40px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0d0a08 0%, #1a1210 70%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  border: 2px solid #2a1f1a;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.8);
}
.scn-messenger-arrival .torch-flame {
  position:absolute; bottom:25%; left:40%; width:8px; height:16px;
  background: radial-gradient(circle at 50% 80%, #ffcc60 0%, #ff6020 50%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ma-torch 1.5s ease-in-out infinite alternate;
}
.scn-messenger-arrival .torch-halo {
  position:absolute; bottom:24%; left:40%; width:40px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, rgba(255,200,80,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: ma-halo 3s ease-in-out infinite alternate;
}
.scn-messenger-arrival .messenger-figure {
  position:absolute; bottom:22%; right:25%; width:20px; height:48px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ma-messenger 6s ease-in-out infinite;
}
.scn-messenger-arrival .scroll-hand {
  position:absolute; bottom:28%; right:30%; width:12px; height:4px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: ma-scroll 8s ease-in-out infinite;
}
.scn-messenger-arrival .shadow-splay {
  position:absolute; bottom:20%; left:20%; right:20%; height:8%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 80%);
}
.scn-messenger-arrival .dust-motes {
  position:absolute; top:10%; left:0; right:0; height:90%;
  background: radial-gradient(circle at 30% 20%, rgba(255,220,150,.04) 0%, transparent 50%),
              radial-gradient(circle at 70% 40%, rgba(255,220,150,.03) 0%, transparent 50%);
  animation: ma-dust 30s linear infinite;
}
@keyframes ma-wall {
  0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 }
}
@keyframes ma-torch {
  0% { box-shadow: 0 0 15px 5px #ff6020; opacity:.8; transform: translateX(-50%) scale(1) }
  50% { box-shadow: 0 0 25px 10px #ff8020; opacity:1; transform: translateX(-50%) scale(1.1) }
  100% { box-shadow: 0 0 15px 5px #ff6020; opacity:.85; transform: translateX(-50%) scale(1) }
}
@keyframes ma-halo {
  0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.35 }
}
@keyframes ma-messenger {
  0% { transform: translateX(0) rotate(-1deg) }
  50% { transform: translateX(-2px) rotate(1deg) translateY(-1px) }
  100% { transform: translateX(2px) rotate(0) }
}
@keyframes ma-scroll {
  0% { transform: rotate(30deg) translateX(0) }
  50% { transform: rotate(25deg) translateX(2px) translateY(-1px) }
  100% { transform: rotate(30deg) translateX(0) }
}
@keyframes ma-dust {
  0% { transform: translateY(0) rotate(0) }
  50% { transform: translateY(10px) rotate(2deg) }
  100% { transform: translateY(0) rotate(0) }
}

.scn-capitol-officers-cushions {
  background: 
    linear-gradient(180deg, #d4c8b8 0%, #c0b0a0 30%, #a89888 100%),
    radial-gradient(ellipse at 50% 0%, #e8dcc8 0%, transparent 60%);
}
.scn-capitol-officers-cushions .floor-marble {
  position:absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #b8a898 0%, #a09080 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.1);
  animation: co-floor 20s ease-in-out infinite alternate;
}
.scn-capitol-officers-cushions .column-left {
  position:absolute; top:5%; left:10%; width:20px; height:70%;
  background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%);
  border-radius: 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,.1);
  transform: scaleX(0.8);
}
.scn-capitol-officers-cushions .column-right {
  position:absolute; top:5%; right:10%; width:20px; height:70%;
  background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%);
  border-radius: 10%;
  box-shadow: -2px 0 6px rgba(0,0,0,.1);
  transform: scaleX(0.8);
}
.scn-capitol-officers-cushions .cushion-left {
  position:absolute; bottom:25%; left:25%; width:30px; height:12px;
  background: radial-gradient(ellipse at 50% 30%, #805030 0%, #502818 100%);
  border-radius: 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  transform: rotate(-5deg);
  animation: co-cushion 8s ease-in-out infinite;
}
.scn-capitol-officers-cushions .cushion-right {
  position:absolute; bottom:25%; right:25%; width:30px; height:12px;
  background: radial-gradient(ellipse at 50% 30%, #805030 0%, #502818 100%);
  border-radius: 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  transform: rotate(5deg);
  animation: co-cushion 8s ease-in-out infinite reverse;
  animation-delay: 2s;
}
.scn-capitol-officers-cushions .officer-figure {
  position:absolute; bottom:22%; left:38%; width:18px; height:42px;
  background: linear-gradient(180deg, #c0a890 0%, #a08068 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: co-officer 6s ease-in-out infinite;
}
.scn-capitol-officers-cushions .citizen-silhouette {
  position:absolute; bottom:24%; right:30%; width:16px; height:38px;
  background: linear-gradient(180deg, #302820 0%, #181008 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: co-citizen 10s ease-in-out infinite;
  opacity: .7;
}
.scn-capitol-officers-cushions .sunbeam-shaft {
  position:absolute; top:0; left:50%; width:40px; height:80%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,255,230,.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: co-sunbeam 12s ease-in-out infinite alternate;
}
@keyframes co-floor {
  0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 }
}
@keyframes co-cushion {
  0% { transform: rotate(-5deg) translateY(0) }
  50% { transform: rotate(-3deg) translateY(-2px) scale(1.02) }
  100% { transform: rotate(-5deg) translateY(0) }
}
@keyframes co-officer {
  0% { transform: translateX(0) rotate(-1deg) }
  50% { transform: translateX(2px) rotate(1deg) translateY(-1px) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes co-citizen {
  0% { transform: translateX(0) scaleY(1) opacity:.7 }
  50% { transform: translateX(-1px) scaleY(1.02) opacity:.8 }
  100% { transform: translateX(0) scaleY(1) opacity:.7 }
}
@keyframes co-sunbeam {
  0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 }
}

.scn-senate-meeting {
  background: 
    linear-gradient(180deg, #e0d4c0 0%, #d0c0a8 30%, #b8a890 100%),
    radial-gradient(ellipse at 50% 40%, #f0e4d0 0%, transparent 60%);
}
.scn-senate-meeting .floor-tessera {
  position:absolute; inset: 65% 0 0 0;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.08);
}
.scn-senate-meeting .rostrum {
  position:absolute; bottom:35%; left:35%; right:35%; height:6%;
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a890 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,.1), inset 0 2px 4px rgba(255,255,255,.4);
  transform: perspective(300px) rotateX(5deg);
}
.scn-senate-meeting .elder-left {
  position:absolute; bottom:25%; left:18%; width:20px; height:46px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: sm-elder 10s ease-in-out infinite;
}
.scn-senate-meeting .elder-right {
  position:absolute; bottom:25%; right:18%; width:20px; height:46px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: sm-elder 12s ease-in-out infinite reverse;
  animation-delay: 3s;
}
.scn-senate-meeting .scroll-unfurled {
  position:absolute; bottom:32%; left:43%; width:40px; height:10px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  transform: rotate(-2deg);
  animation: sm-scroll 14s ease-in-out infinite;
}
.scn-senate-meeting .banner-drape {
  position:absolute; top:5%; left:10%; right:10%; height:8%;
  background: linear-gradient(180deg, #a08068 0%, #806048 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.1);
  animation: sm-banner 16s ease-in-out infinite alternate;
}
.scn-senate-meeting .chandelier-light {
  position:absolute; top:10%; left:45%; right:45%; height:4%;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,80,.2);
  animation: sm-chandelier 4s ease-in-out infinite alternate;
}
.scn-senate-meeting .consul-chair {
  position:absolute; bottom:20%; left:42%; right:42%; height:14%;
  background: linear-gradient(180deg, #806048 0%, #604028 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.2);
  transform: scaleY(0.95);
}
@keyframes sm-elder {
  0% { transform: translateX(0) rotate(-1deg) }
  50% { transform: translateX(2px) rotate(1deg) translateY(-1px) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes sm-scroll {
  0% { transform: rotate(-2deg) translateY(0) }
  50% { transform: rotate(0) translateY(-2px) }
  100% { transform: rotate(-2deg) translateY(0) }
}
@keyframes sm-banner {
  0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) }
}
@keyframes sm-chandelier {
  0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.5 }
}

/* volumnia-plea-opening */
.scn-volumnia-plea-opening {
  background: linear-gradient(180deg, #1c1428 0%, #2a1e2f 40%, #0f0b12 100%), radial-gradient(ellipse at 30% 40%, #3a2a3e 0%, transparent 70%);
}
.scn-volumnia-plea-opening .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1220 0%, #0e0912 100%); animation: vpo-bg 18s ease-in-out infinite alternate;
}
.scn-volumnia-plea-opening .column-left {
  position: absolute; left: 12%; top: 0; bottom: 20%; width: 4%; background: linear-gradient(180deg, #4a3a3e 0%, #2a1e24 100%); border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.6); animation: vpo-column 12s ease-in-out infinite alternate;
}
.scn-volumnia-plea-opening .column-right {
  position: absolute; right: 12%; top: 0; bottom: 20%; width: 4%; background: linear-gradient(180deg, #4a3a3e 0%, #2a1e24 100%); border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.6); animation: vpo-column 12s ease-in-out infinite alternate-reverse;
}
.scn-volumnia-plea-opening .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1c1418 0%, #0f0a0c 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: vpo-floor 15s ease-in-out infinite alternate;
}
.scn-volumnia-plea-opening .figure-volumnia {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vpo-figure 6s ease-in-out infinite;
}
.scn-volumnia-plea-opening .figure-woman-1 {
  position: absolute; bottom: 22%; left: 30%; width: 10%; height: 26%; background: linear-gradient(180deg, #2e2222 0%, #140e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vpo-figure 6s ease-in-out infinite 1s;
}
.scn-volumnia-plea-opening .figure-woman-2 {
  position: absolute; bottom: 24%; left: 60%; width: 10%; height: 24%; background: linear-gradient(180deg, #2e2222 0%, #140e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vpo-figure 6s ease-in-out infinite 2s;
}
.scn-volumnia-plea-opening .brazier {
  position: absolute; bottom: 18%; left: 50%; width: 8%; height: 12%; background: radial-gradient(circle at 50% 30%, #c8553d 0%, #5a1a1a 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,85,61,0.4), 0 0 60px 20px rgba(200,85,61,0.2); animation: vpo-brazier 4s ease-in-out infinite alternate;
}
.scn-volumnia-plea-opening .light-spot {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 0%, rgba(200,120,80,0.15) 0%, transparent 70%); animation: vpo-light 7s ease-in-out infinite alternate;
}
@keyframes vpo-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vpo-column { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes vpo-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes vpo-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vpo-brazier { 0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 5px rgba(200,85,61,0.3); } 50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px rgba(200,85,61,0.5); } 100% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 25px 8px rgba(200,85,61,0.35); } }
@keyframes vpo-light { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }

/* volumnia-prayer */
.scn-volumnia-prayer {
  background: linear-gradient(180deg, #14101a 0%, #1c1628 40%, #0a0810 100%), radial-gradient(ellipse at 50% 60%, #2a1e3a 0%, transparent 70%);
}
.scn-volumnia-prayer .bg-altar {
  position: absolute; inset: 0; background: linear-gradient(180deg, #120e18 0%, #0a080e 100%); animation: vpr-bg 20s ease-in-out infinite alternate;
}
.scn-volumnia-prayer .altar-step {
  position: absolute; bottom: 28%; left: 35%; right: 35%; height: 4%; background: linear-gradient(180deg, #3a2a2a 0%, #1e1414 100%); border-radius: 4px; animation: vpr-step 14s ease-in-out infinite alternate;
}
.scn-volumnia-prayer .altar-stone {
  position: absolute; bottom: 32%; left: 38%; right: 38%; height: 8%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); animation: vpr-altar 16s ease-in-out infinite alternate;
}
.scn-volumnia-prayer .figure-kneeling {
  position: absolute; bottom: 28%; left: 48%; width: 14%; height: 30%; background: linear-gradient(180deg, #2e1e1e 0%, #120a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vpr-kneel 8s ease-in-out infinite;
}
.scn-volumnia-prayer .hands-raised {
  position: absolute; bottom: 45%; left: 46%; width: 6%; height: 12%; background: linear-gradient(180deg, #3a2828 0%, #1a1010 100%); border-radius: 50% 50% 30% 30%; transform-origin: center; animation: vpr-hands 5s ease-in-out infinite;
}
.scn-volumnia-prayer .light-beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 60%; background: linear-gradient(180deg, rgba(180,140,100,0.1) 0%, rgba(180,140,100,0.05) 30%, transparent 100%); filter: blur(4px); animation: vpr-beam 6s ease-in-out infinite alternate;
}
.scn-volumnia-prayer .shadow-figure {
  position: absolute; bottom: 24%; left: 40%; width: 20%; height: 36%; background: linear-gradient(180deg, #0e0a0e 0%, #060406 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.6; filter: blur(6px); animation: vpr-shadow 12s ease-in-out infinite alternate;
}
@keyframes vpr-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vpr-step { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes vpr-altar { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes vpr-kneel { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vpr-hands { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes vpr-beam { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes vpr-shadow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.02); } 100% { opacity: 0.6; transform: scale(0.98); } }

/* volumnia-choice */
.scn-volumnia-choice {
  background: linear-gradient(180deg, #0e0a12 0%, #1a1420 40%, #08040a 100%), radial-gradient(ellipse at 50% 70%, #1a1222 0%, transparent 80%);
}
.scn-volumnia-choice .bg-chamber {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c0810 0%, #06040a 100%); animation: vch-bg 22s ease-in-out infinite alternate;
}
.scn-volumnia-choice .wall-left {
  position: absolute; left: 0; top: 5%; bottom: 20%; width: 25%; background: linear-gradient(180deg, #1a141e 0%, #0e0a12 100%); overflow: hidden; animation: vch-wall 15s ease-in-out infinite alternate;
}
.scn-volumnia-choice .wall-right {
  position: absolute; right: 0; top: 5%; bottom: 20%; width: 25%; background: linear-gradient(180deg, #1a141e 0%, #0e0a12 100%); animation: vch-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-volumnia-choice .floor-stones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #14101a 0%, #0a0810 100%); border-radius: 8% 8% 0 0 / 15% 15% 0 0; animation: vch-floor 18s ease-in-out infinite alternate;
}
.scn-volumnia-choice .figure-bound {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 30%; background: linear-gradient(180deg, #2a1e1e 0%, #100a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vch-figure 7s ease-in-out infinite;
}
.scn-volumnia-choice .chains-left {
  position: absolute; bottom: 32%; left: 40%; width: 8%; height: 4%; background: linear-gradient(90deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.6); animation: vch-chain 3s ease-in-out infinite alternate;
}
.scn-volumnia-choice .chains-right {
  position: absolute; bottom: 32%; right: 40%; width: 8%; height: 4%; background: linear-gradient(90deg, #3a2a2a 0%, #5a4a4a 100%); border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.6); animation: vch-chain 3s ease-in-out infinite alternate-reverse;
}
.scn-volumnia-choice .door-left {
  position: absolute; left: 28%; bottom: 20%; width: 8%; height: 40%; background: linear-gradient(180deg, #2a1e24 0%, #140e12 100%); border-radius: 4% 4% 0 0; box-shadow: inset 2px 0 6px rgba(0,0,0,0.5); animation: vch-door 20s ease-in-out infinite alternate;
}
.scn-volumnia-choice .door-right {
  position: absolute; right: 28%; bottom: 20%; width: 8%; height: 40%; background: linear-gradient(180deg, #2a1e24 0%, #140e12 100%); border-radius: 4% 4% 0 0; box-shadow: inset -2px 0 6px rgba(0,0,0,0.5); animation: vch-door 20s ease-in-out infinite alternate-reverse;
}
@keyframes vch-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vch-wall { 0% { filter: brightness(0.7); } 50% { filter: brightness(0.9); } 100% { filter: brightness(0.8); } }
@keyframes vch-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1); } }
@keyframes vch-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vch-chain { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vch-door { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }

/* volumnia-womb */
.scn-volumnia-womb {
  background: linear-gradient(180deg, #0e0616 0%, #1a0e22 40%, #08020e 100%), radial-gradient(ellipse at 50% 60%, #1a0e22 0%, transparent 80%);
}
.scn-volumnia-womb .bg-womb-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c0412 0%, #06020a 100%); animation: vwb-bg 25s ease-in-out infinite alternate;
}
.scn-volumnia-womb .figure-volumnia-womb {
  position: absolute; bottom: 20%; left: 45%; width: 14%; height: 34%; background: linear-gradient(180deg, #2a1e1e 0%, #120a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vwb-figure 8s ease-in-out infinite;
}
.scn-volumnia-womb .womb-glow {
  position: absolute; bottom: 38%; left: 48%; width: 8%; height: 10%; background: radial-gradient(circle, #c8553d 0%, #5a1a1a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,85,61,0.4), 0 0 80px 30px rgba(200,85,61,0.2); animation: vwb-glow 5s ease-in-out infinite alternate;
}
.scn-volumnia-womb .shadow-arch {
  position: absolute; bottom: 40%; left: 30%; right: 30%; height: 20%; background: radial-gradient(ellipse at 50% 100%, #0a0412 0%, transparent 70%); filter: blur(10px); animation: vwb-arch 15s ease-in-out infinite alternate;
}
.scn-volumnia-womb .dust-motes {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 20%, rgba(200,180,160,0.03) 0%, transparent 50%), radial-gradient(circle at 70% 80%, rgba(200,180,160,0.02) 0%, transparent 50%); animation: vwb-dust 20s linear infinite;
}
@keyframes vwb-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vwb-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vwb-glow { 0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 20px 10px rgba(200,85,61,0.3); } 50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 50px 25px rgba(200,85,61,0.5); } 100% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 30px 15px rgba(200,85,61,0.35); } }
@keyframes vwb-arch { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.02); } 100% { opacity: 0.6; transform: scale(0.98); } }
@keyframes vwb-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

/* coriolanus-begging-citizens */
.scn-coriolanus-begging-citizens {
  background: linear-gradient(180deg, #f0e6c0 0%, #d4c8a0 30%, #b8a878 70%, #8a6e4a 100%),
              radial-gradient(ellipse at 30% 100%, #f5d090 0%, transparent 60%);
}
.scn-coriolanus-begging-citizens .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8fc4e8 0%, #b8d4f0 40%, transparent 100%);
  animation: cbc-sky 10s ease-in-out infinite alternate;
}
.scn-coriolanus-begging-citizens .sunburst {
  position: absolute; top: 18%; left: 65%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff5c0 0%, #fade80 30%, transparent 70%);
  filter: blur(8px); opacity: 0.7;
  animation: cbc-sun 12s ease-in-out infinite alternate;
}
.scn-coriolanus-begging-citizens .building-left {
  position: absolute; bottom: 8%; left: 5%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #c8b088 0%, #a08060 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset -8px 0 20px rgba(0,0,0,0.2);
  animation: cbc-bld 20s linear infinite;
}
.scn-coriolanus-begging-citizens .building-right {
  position: absolute; bottom: 8%; right: 5%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #b89c74 0%, #9c7c58 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 8px 0 15px rgba(0,0,0,0.15);
  animation: cbc-bld 25s linear infinite reverse;
}
.scn-coriolanus-begging-citizens .coriolanus {
  position: absolute; bottom: 8%; left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 50%, #8a6e4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbc-fig 4s ease-in-out infinite;
}
.scn-coriolanus-begging-citizens .coriolanus::before {
  content: ''; position: absolute; top: 15%; left: 50%; width: 18px; height: 18px;
  background: radial-gradient(circle at 50% 50%, #c0a880 0%, #8a6e4a 100%);
  border-radius: 50% 50% 50% 50%; transform: translateX(-50%);
}
.scn-coriolanus-begging-citizens .citizens {
  position: absolute; bottom: 8%; right: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #b8a088 0%, #9c7c5c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cbc-crowd 6s ease-in-out infinite;
}
.scn-coriolanus-begging-citizens .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
}
@keyframes cbc-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cbc-sun { 0% { transform: scale(0.9) translateY(0); opacity: 0.6 } 50% { transform: scale(1.1) translateY(-4px); opacity: 0.8 } 100% { transform: scale(0.95) translateY(2px); opacity: 0.65 } }
@keyframes cbc-bld { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cbc-fig { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(0) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes cbc-crowd { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }

/* after-election */
.scn-after-election {
  background: linear-gradient(180deg, #d6c8a0 0%, #c0b090 30%, #a89878 60%, #7a6a4a 100%);
}
.scn-after-election .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c8b8a0 0%, #a89078 100%);
  border-radius: 0 0 5% 5%; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.15);
}
.scn-after-election .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #9c8a70 0%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-after-election .window {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #b8d4f0 0%, #8fc4e8 100%);
  border-radius: 8% 8% 4% 4%; border: 10px solid #7a6a4a; box-sizing: border-box;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-after-election .lightbeam {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 80%;
  background: linear-gradient(135deg, rgba(255,240,180,0.5) 0%, rgba(255,240,180,0) 70%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: ael-beam 8s ease-in-out infinite alternate;
}
.scn-after-election .figure {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a08868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ael-fig 5s ease-in-out infinite;
}
.scn-after-election .cloak {
  position: absolute; bottom: 15%; left: 37%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #c8a878 0%, #a08060 100%);
  border-radius: 0 50% 50% 50%; transform: rotate(10deg);
  animation: ael-cloak 3s ease-in-out infinite;
}
@keyframes ael-beam { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 0.9; transform: scaleY(1.05) } 100% { opacity: 0.5; transform: scaleY(0.95) } }
@keyframes ael-fig { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(3deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ael-cloak { 0% { transform: rotate(8deg) } 50% { transform: rotate(14deg) } 100% { transform: rotate(8deg) } }

/* tribunes-stir-citizens */
.scn-tribunes-stir-citizens {
  background: linear-gradient(180deg, #f5dca0 0%, #e0c080 30%, #b88a50 70%, #7a5a2a 100%),
              radial-gradient(ellipse at 20% 80%, #f5d090 0%, transparent 50%);
}
.scn-tribunes-stir-citizens .tense {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0d8f0 0%, #a0b8d0 40%, transparent 100%);
  animation: tsc-sky 5s ease-in-out infinite alternate;
}
.scn-tribunes-stir-citizens .forum-base {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b09878 100%);
  border-radius: 40% 40% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-tribunes-stir-citizens .column-left {
  position: absolute; bottom: 30%; left: 15%; width: 5%; height: 35%;
  background: linear-gradient(180deg, #e0d0b0 0%, #b09878 100%);
  border-radius: 10% 10% 5% 5%;
  animation: tsc-col 15s ease-in-out infinite alternate;
}
.scn-tribunes-stir-citizens .column-right {
  position: absolute; bottom: 30%; right: 15%; width: 5%; height: 35%;
  background: linear-gradient(180deg, #e0d0b0 0%, #b09878 100%);
  border-radius: 10% 10% 5% 5%;
  animation: tsc-col 18s ease-in-out infinite alternate reverse;
}
.scn-tribunes-stir-citizens .tribune-sicinius {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #c85a3a 0%, #a04028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsc-tribune 2s ease-in-out infinite;
}
.scn-tribunes-stir-citizens .tribune-brutus {
  position: absolute; bottom: 10%; left: 50%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #b05030 0%, #8a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsc-tribune 2.3s ease-in-out infinite reverse;
}
.scn-tribunes-stir-citizens .citizen-mob {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #a08868 0%, #7a5a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: -8px 0 10px rgba(0,0,0,0.1);
  animation: tsc-mob 3s ease-in-out infinite;
}
@keyframes tsc-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes tsc-col { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tsc-tribune { 0% { transform: translateY(0) rotate(-5deg) } 30% { transform: translateY(-2px) rotate(5deg) } 60% { transform: translateY(0) rotate(-3deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes tsc-mob { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.08) } 100% { transform: translateY(0) scaleX(1) } }

/* coriolanus-menenius-gentry */
.scn-coriolanus-menenius-gentry {
  background: linear-gradient(180deg, #c8b898 0%, #a89070 30%, #7a5a3a 70%, #4a3020 100%);
}
.scn-coriolanus-menenius-gentry .tent-canvas {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, #d0c0a0 0%, #a89070 60%);
  clip-path: polygon(10% 100%, 90% 100%, 100% 0, 0 0);
  animation: cmg-tent 12s ease-in-out infinite alternate;
}
.scn-coriolanus-menenius-gentry .table {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #c8a878 0%, #a08060 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-coriolanus-menenius-gentry .coriolanus-senate {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b09878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmg-fig 4s ease-in-out infinite;
}
.scn-coriolanus-menenius-gentry .menenius {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a08868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmg-fig 4.5s ease-in-out infinite reverse;
}
.scn-coriolanus-menenius-gentry .other-senators {
  position: absolute; bottom: 20%; left: 15%; width: 15px; height: 35px;
  background: linear-gradient(180deg, #c0a888 0%, #906a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 20px 0 0 rgba(0,0,0,0.1);
  animation: cmg-other 5s ease-in-out infinite;
}
.scn-coriolanus-menenius-gentry .light-shaft {
  position: absolute; top: 0; left: 40%; width: 15%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0) 80%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%);
  animation: cmg-light 8s ease-in-out infinite alternate;
}
@keyframes cmg-tent { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cmg-fig { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cmg-other { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cmg-light { 0% { opacity: 0.4; transform: scaleY(0.95) } 50% { opacity: 0.7; transform: scaleY(1.05) } 100% { opacity: 0.5; transform: scaleY(1) } }

/* Scene: conspirator-plot */
.scn-conspirator-plot {
  background:
    linear-gradient(180deg, #4a3b2e 0%, #2c221a 40%, #1a1412 100%),
    radial-gradient(ellipse at 30% 20%, #f5d0a0 0%, transparent 60%);
}
.scn-conspirator-plot .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6b5a4a 0%, #3a2f26 100%);
  animation: cp-wall 12s ease-in-out infinite alternate;
}
.scn-conspirator-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2c221a 0%, #1a1412 100%);
}
.scn-conspirator-plot .table {
  position: absolute; bottom: 18%; left: 25%; width: 55%; height: 8%;
  background: linear-gradient(180deg, #4d3c2b 0%, #35281b 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: cp-table 10s ease-in-out infinite;
}
.scn-conspirator-plot .vessel {
  position: absolute; bottom: 23%; left: 40%; width: 10%; height: 10%;
  background: radial-gradient(circle, #a0764a 0%, #6b4e2e 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 16px 4px rgba(160,118,74,.3);
}
.scn-conspirator-plot .figure-a {
  position: absolute; bottom: 10%; left: 20%; width: 18%; height: 34%;
  background: linear-gradient(180deg, #1a1412 0%, #0e0b09 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-fig-a 6s ease-in-out infinite;
}
.scn-conspirator-plot .figure-b {
  position: absolute; bottom: 10%; right: 20%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #1a1412 0%, #0e0b09 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-fig-b 7s ease-in-out infinite;
}
.scn-conspirator-plot .knife {
  position: absolute; bottom: 20%; left: 49%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 80% 80%;
  transform: rotate(25deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: cp-knife 4s ease-in-out infinite alternate;
}
.scn-conspirator-plot .light-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(245,208,160,.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: cp-light 8s ease-in-out infinite alternate;
}
@keyframes cp-wall {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes cp-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cp-fig-a {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(3px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cp-fig-b {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cp-knife {
  0% { transform: rotate(20deg) translateY(0); }
  100% { transform: rotate(30deg) translateY(-4px); }
}
@keyframes cp-light {
  0% { opacity: .4; transform: scaleX(1); }
  100% { opacity: .8; transform: scaleX(1.1); }
}

/* Scene: aufidius-resentment */
.scn-aufidius-resentment {
  background:
    linear-gradient(180deg, #8aa3b0 0%, #4f6d7a 40%, #2a3b44 100%),
    radial-gradient(ellipse at 60% 30%, #f5e6c8 0%, transparent 70%);
}
.scn-aufidius-resentment .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8ced6 0%, #7fa3b0 100%);
  animation: ar-sky 20s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .sun {
  position: absolute; top: 10%; right: 20%; width: 12%; height: 12%;
  background: radial-gradient(circle, #f5e6c8 0%, #d9b68a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(245,230,200,.4);
  animation: ar-sun 15s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5c7a6a 0%, #3a4f43 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.3);
  animation: ar-hills 18s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .camp-tent {
  position: absolute; bottom: 35%; left: 15%; width: 24%; height: 20%;
  background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  transform: scaleY(0.7);
  animation: ar-tent 12s ease-in-out infinite;
}
.scn-aufidius-resentment .figure-c {
  position: absolute; bottom: 12%; left: 50%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-fig 5s ease-in-out infinite;
}
.scn-aufidius-resentment .spear {
  position: absolute; bottom: 20%; left: 46%; width: 2%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ar-spear 6s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .banner {
  position: absolute; bottom: 28%; left: 48%; width: 6%; height: 16%;
  background: linear-gradient(180deg, #b87878 0%, #7a4a4a 100%);
  border-radius: 0 0 20% 20%;
  transform: skewX(-5deg);
  animation: ar-banner 8s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: ar-shadow 12s ease-in-out infinite alternate;
}
@keyframes ar-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes ar-sun {
  0% { transform: scale(1); opacity: .9; }
  100% { transform: scale(1.1); opacity: 1; }
}
@keyframes ar-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ar-tent {
  0%,100% { transform: scaleY(0.7) translateX(0); }
  50% { transform: scaleY(0.72) translateX(2px); }
}
@keyframes ar-fig {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(5px) rotate(1deg); }
  66% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ar-spear {
  0% { transform: rotate(-12deg) translateY(0); }
  100% { transform: rotate(-8deg) translateY(-5px); }
}
@keyframes ar-banner {
  0% { transform: skewX(-5deg) scaleX(1); opacity: .8; }
  100% { transform: skewX(0deg) scaleX(1.1); opacity: 1; }
}
@keyframes ar-shadow {
  0% { opacity: .5; }
  100% { opacity: .7; }
}

/* Scene: coriolanus-return-2 */
.scn-coriolanus-return-2 {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9b68a 40%, #b8966a 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%);
}
.scn-coriolanus-return-2 .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8d9e6 0%, #a8b8c8 100%);
  animation: cr2-sky 20s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .arch-left {
  position: absolute; bottom: 10%; left: 8%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #b8966a 0%, #8a7050 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  border-radius: 40% 0 0 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,.2);
  animation: cr2-arch-l 15s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .arch-right {
  position: absolute; bottom: 10%; right: 8%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #b8966a 0%, #8a7050 100%);
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  border-radius: 0 40% 0 0;
  box-shadow: inset 8px 0 20px rgba(0,0,0,.2);
  animation: cr2-arch-r 15s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: cr2-ground 18s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .figure-r {
  position: absolute; bottom: 6%; left: 42%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr2-fig 6s ease-in-out infinite;
}
.scn-coriolanus-return-2 .cloak {
  position: absolute; bottom: 8%; left: 38%; width: 22%; height: 20%;
  background: linear-gradient(180deg, #702243 0%, #4a162c 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: skewX(-5deg);
  opacity: .8;
  animation: cr2-cloak 8s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .laurel {
  position: absolute; bottom: 38%; left: 44%; width: 10%; height: 6%;
  background: radial-gradient(circle, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(74,106,42,.4);
  animation: cr2-laurel 5s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .dust {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse, rgba(200,170,130,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: cr2-dust 12s ease-in-out infinite alternate;
}
@keyframes cr2-sky {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes cr2-arch-l {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.02); }
}
@keyframes cr2-arch-r {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.02); }
}
@keyframes cr2-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cr2-fig {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(4px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cr2-cloak {
  0% { transform: skewX(-5deg) scaleX(1); opacity: .7; }
  100% { transform: skewX(0deg) scaleX(1.05); opacity: .9; }
}
@keyframes cr2-laurel {
  0% { transform: scale(1) rotate(-5deg); }
  100% { transform: scale(1.08) rotate(5deg); }
}
@keyframes cr2-dust {
  0% { opacity: .3; transform: translateX(0); }
  100% { opacity: .6; transform: translateX(10px); }
}

/* Scene: coriolanus-peace-2 */
.scn-coriolanus-peace-2 {
  background:
    linear-gradient(180deg, #ebd8b0 0%, #c8a878 40%, #a08050 100%),
    radial-gradient(ellipse at 50% 50%, #f5e6c8 0%, transparent 60%);
}
.scn-coriolanus-peace-2 .bg-council {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: cp2-bg 20s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .table-top {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: cp2-table 10s ease-in-out infinite;
}
.scn-coriolanus-peace-2 .scroll {
  position: absolute; bottom: 24%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c098 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-1deg);
  animation: cp2-scroll 12s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .seal {
  position: absolute; bottom: 24%; left: 48%; width: 4%; height: 5%;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,85,61,.5);
  animation: cp2-seal 8s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .hand-l {
  position: absolute; bottom: 22%; left: 28%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: cp2-hand-l 5s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .hand-r {
  position: absolute; bottom: 22%; right: 28%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: cp2-hand-r 5s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .goblet {
  position: absolute; bottom: 18%; left: 55%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 20% 20% 30% 30% / 10% 10% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.3);
  animation: cp2-goblet 14s ease-in-out infinite;
}
@keyframes cp2-bg {
  0% { opacity: .85; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.02); }
}
@keyframes cp2-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes cp2-scroll {
  0% { transform: rotate(-2deg) scaleX(1); }
  100% { transform: rotate(1deg) scaleX(1.02); }
}
@keyframes cp2-seal {
  0% { transform: scale(1); opacity: .9; }
  100% { transform: scale(1.08); opacity: 1; }
}
@keyframes cp2-hand-l {
  0% { transform: rotate(18deg) translateY(0); }
  100% { transform: rotate(22deg) translateY(-2px); }
}
@keyframes cp2-hand-r {
  0% { transform: rotate(-18deg) translateY(0); }
  100% { transform: rotate(-22deg) translateY(-2px); }
}
@keyframes cp2-goblet {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}

/* welcome-ladies */
.scn-welcome-ladies {
  background: 
    linear-gradient(180deg, #fcedd0 0%, #eed5a0 40%, #d4b87a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-welcome-ladies .sky-wl {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fde8c0 0%, transparent 100%);
  animation: wl-sky 12s ease-in-out infinite alternate;
}
.scn-welcome-ladies .temple-bg-wl {
  position: absolute;
  bottom: 25%;
  left: 10%;
  right: 10%;
  height: 45%;
  background: linear-gradient(180deg, #d1b078 0%, #b8945a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: wl-temple 18s ease-in-out infinite;
}
.scn-welcome-ladies .columns-wl {
  position: absolute;
  bottom: 25%;
  left: 15%;
  right: 15%;
  height: 40%;
  background: repeating-linear-gradient(90deg, #e8d5b0 0px, #e8d5b0 10px, transparent 10px, transparent 20px);
  border-radius: 5% 5% 0 0;
  opacity: 0.6;
  animation: wl-columns 24s linear infinite;
}
.scn-welcome-ladies .figure-patron-wl {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #c8905a 0%, #8a6030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wl-patron 6s ease-in-out infinite;
}
.scn-welcome-ladies .figure-crowd1-wl {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 32px;
  height: 70px;
  background: linear-gradient(180deg, #b08050 0%, #7a5428 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: wl-crowd1 8s ease-in-out infinite alternate;
}
.scn-welcome-ladies .figure-crowd2-wl {
  position: absolute;
  bottom: 28%;
  right: 25%;
  width: 28px;
  height: 65px;
  background: linear-gradient(180deg, #a07040 0%, #6a4820 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: wl-crowd2 7s ease-in-out infinite alternate;
}
.scn-welcome-ladies .flowers-wl {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 12%;
  background: 
    radial-gradient(circle at 20% 100%, #f0a050 4px, transparent 4px),
    radial-gradient(circle at 40% 100%, #f0c060 3px, transparent 3px),
    radial-gradient(circle at 60% 100%, #e08040 5px, transparent 5px),
    radial-gradient(circle at 80% 100%, #f0a050 4px, transparent 4px);
  background-repeat: repeat-x;
  background-size: 20% 100%;
  animation: wl-flowers 20s linear infinite;
}
.scn-welcome-ladies .banner-wl {
  position: absolute;
  bottom: 55%;
  left: 42%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: top center;
  animation: wl-banner 4s ease-in-out infinite alternate;
}
@keyframes wl-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wl-temple { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wl-columns { 0% { background-position: 0% 0%; } 100% { background-position: 20% 0%; } }
@keyframes wl-patron { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wl-crowd1 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(8px) translateY(-4px); } 100% { transform: translateX(-4px) translateY(2px); } }
@keyframes wl-crowd2 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-6px) scaleX(0.95); } 100% { transform: translateX(2px) scaleX(1.02); } }
@keyframes wl-flowers { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes wl-banner { 0% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }

/* antium-plot */
.scn-antium-plot {
  background: 
    linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 40%, #0e0e2a 100%),
    radial-gradient(ellipse at 30% 60%, #3b3b6e 0%, transparent 70%);
}
.scn-antium-plot .bg-arch-anp {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1e1e3a 0%, transparent 50%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: anp-bg 20s ease-in-out infinite;
}
.scn-antium-plot .sunlight-beam-anp {
  position: absolute;
  top: 0;
  left: 35%;
  width: 150%;
  height: 60%;
  background: linear-gradient(135deg, rgba(255,220,150,0.2) 0%, transparent 70%);
  transform: rotate(30deg);
  transform-origin: top left;
  animation: anp-beam 12s ease-in-out infinite alternate;
}
.scn-antium-plot .speaker-anp {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 36px;
  height: 80px;
  background: linear-gradient(180deg, #2a2a5a 0%, #10102a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 5px 0 10px rgba(0,0,0,0.5);
  animation: anp-speaker 6s ease-in-out infinite;
}
.scn-antium-plot .paper-anp {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 20px;
  height: 14px;
  background: linear-gradient(135deg, #e0c080 0%, #b09050 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: anp-paper 8s ease-in-out infinite alternate;
}
.scn-antium-plot .crowd-fig1-anp {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: anp-crowd1 10s ease-in-out infinite alternate;
}
.scn-antium-plot .crowd-fig2-anp {
  position: absolute;
  bottom: 22%;
  right: 18%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, #14142e 0%, #08081a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: anp-crowd2 9s ease-in-out infinite alternate;
}
.scn-antium-plot .shadow-anp {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: anp-shadow 14s ease-in-out infinite alternate;
}
@keyframes anp-bg { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.7; } }
@keyframes anp-beam { 0% { opacity: 0.2; transform: rotate(25deg) scaleX(0.8); } 50% { opacity: 0.4; transform: rotate(32deg) scaleX(1); } 100% { opacity: 0.1; transform: rotate(28deg) scaleX(0.9); } }
@keyframes anp-speaker { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes anp-paper { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(-1px); } }
@keyframes anp-crowd1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.02); } 100% { transform: translateX(-3px) scaleY(0.98); } }
@keyframes anp-crowd2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes anp-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* item-paper-accusation */
.scn-item-paper-accusation {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #1a1010 30%, #0e0808 100%),
    radial-gradient(ellipse at 60% 20%, #4a2a1a 0%, transparent 60%);
}
.scn-item-paper-accusation .bg-chamber-ipa {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1e1210 0%, #0a0606 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.8);
  animation: ipa-bg 25s ease-in-out infinite;
}
.scn-item-paper-accusation .desk-ipa {
  position: absolute;
  bottom: 15%;
  left: 20%;
  right: 20%;
  height: 25%;
  background: linear-gradient(180deg, #3a2010 0%, #2a1508 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
  animation: ipa-desk 18s ease-in-out infinite alternate;
}
.scn-item-paper-accusation .hand-ipa {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #7a4a2a 0%, #5a3018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ipa-hand 6s ease-in-out infinite;
}
.scn-item-paper-accusation .document-ipa {
  position: absolute;
  bottom: 22%;
  left: 37%;
  width: 40px;
  height: 50px;
  background: linear-gradient(135deg, #e0c890 0%, #c0a060 100%);
  border-radius: 3px;
  transform: rotate(-5deg);
  box-shadow: 3px 3px 6px rgba(0,0,0,0.6);
  animation: ipa-doc 10s ease-in-out infinite alternate;
}
.scn-item-paper-accusation .inkpot-ipa {
  position: absolute;
  bottom: 18%;
  right: 30%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0800 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: ipa-ink 14s ease-in-out infinite;
}
.scn-item-paper-accusation .candle-ipa {
  position: absolute;
  bottom: 30%;
  right: 25%;
  width: 10px;
  height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #d8b060 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 0 20px 4px #f0c060, 0 0 40px 8px rgba(240,192,96,0.4);
  animation: ipa-candle 4s ease-in-out infinite alternate;
}
.scn-item-paper-accusation .shadow-stripe-ipa {
  position: absolute;
  top: 0;
  left: 40%;
  width: 20%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 50%, transparent 100%);
  animation: ipa-stripe 20s linear infinite;
}
@keyframes ipa-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ipa-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ipa-hand { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ipa-doc { 0% { transform: rotate(-7deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(-1px); } }
@keyframes ipa-ink { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes ipa-candle { 0% { opacity: 0.8; box-shadow: 0 0 15px 3px #f0c060; } 50% { opacity: 1; box-shadow: 0 0 30px 8px #f0c060, 0 0 50px 12px rgba(240,192,96,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 20px 4px #d8a050; } }
@keyframes ipa-stripe { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

/* aufidius-grievance */
.scn-aufidius-grievance {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #12121e 40%, #08080e 100%),
    radial-gradient(ellipse at 40% 50%, #2a2a4e 0%, transparent 60%);
}
.scn-aufidius-grievance .bg-corridor-ag {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #0e0e1a 0%, #1a1a2e 30%, #0e0e1a 70%, #08080e 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  animation: ag-corridor 30s ease-in-out infinite;
}
.scn-aufidius-grievance .figure-left-ag {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 40px;
  height: 90px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag-left 8s ease-in-out infinite;
}
.scn-aufidius-grievance .figure-right-ag {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 38px;
  height: 85px;
  background: linear-gradient(180deg, #141430 0%, #08081a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag-right 7s ease-in-out infinite;
}
.scn-aufidius-grievance .sword-ag {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 8px;
  height: 60px;
  background: linear-gradient(180deg, #a0a0b0 0%, #606080 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(255,255,255,0.2);
  animation: ag-sword 5s ease-in-out infinite alternate;
}
.scn-aufidius-grievance .light-ray-ag {
  position: absolute;
  top: 0;
  left: 30%;
  width: 100%;
  height: 50%;
  background: linear-gradient(135deg, rgba(200,180,140,0.15) 0%, transparent 70%);
  transform: rotate(15deg);
  transform-origin: top left;
  animation: ag-ray 16s ease-in-out infinite alternate;
}
.scn-aufidius-grievance .shadow-pool-ag {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ag-pool 12s ease-in-out infinite alternate;
}
@keyframes ag-corridor { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ag-left { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ag-right { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(1px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ag-sword { 0% { transform: rotate(18deg) scaleX(1); } 50% { transform: rotate(22deg) scaleX(1.02); } 100% { transform: rotate(20deg) scaleX(0.98); } }
@keyframes ag-ray { 0% { opacity: 0.2; transform: rotate(12deg) scaleX(0.8); } 50% { opacity: 0.4; transform: rotate(18deg) scaleX(1); } 100% { opacity: 0.1; transform: rotate(15deg) scaleX(0.9); } }
@keyframes ag-pool { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

/* tribune-sentences-death */
.scn-tribune-sentences-death {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 40%, #a88b6a 100%),
              radial-gradient(ellipse at 50% 60%, #e8d4b8 0%, transparent 70%);
}
.scn-tribune-sentences-death .bg-deep {
  position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, #c8b08a 0%, transparent 60%);
  animation: tsd-pulse 6s ease-in-out infinite alternate;
}
.scn-tribune-sentences-death .bg-mid {
  position:absolute; inset:20% 10% 30% 10%; background: linear-gradient(135deg, transparent 0%, #d4b890 50%, transparent 100%);
  opacity:0.4; animation: tsd-sway 12s ease-in-out infinite;
}
.scn-tribune-sentences-death .figure {
  position:absolute; bottom:20%; left:50%; width:100px; height:160px; transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tsd-figure 4s ease-in-out infinite;
}
.scn-tribune-sentences-death .arm {
  position:absolute; bottom:60%; left:50%; width:40px; height:80px; transform-origin:0% 100%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: tsd-arm 2.5s ease-in-out infinite;
  left: calc(50% + 45px); bottom: 75%;
}
.scn-tribune-sentences-death .eyes {
  position:absolute; bottom:50%; left:50%; width:16px; height:8px; transform:translate(-50%,-50%);
  background: radial-gradient(circle, #e8b84a 0%, #c08030 70%);
  border-radius: 50%; box-shadow: 0 0 20px 10px #d09040, 0 0 40px 20px rgba(200,120,50,0.4);
  animation: tsd-eyes 1s ease-in-out infinite alternate;
}
.scn-tribune-sentences-death .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #8a7050 0%, #5a3e28 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-tribune-sentences-death .pillar {
  position:absolute; bottom:20%; width:16px; top:10%;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 4px; box-shadow: 2px 0 4px rgba(0,0,0,0.2);
}
.scn-tribune-sentences-death .pillar.left { left:12%; }
.scn-tribune-sentences-death .pillar.right { right:12%; }
.scn-tribune-sentences-death .shadow {
  position:absolute; bottom:20%; left:50%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  transform: translateX(-50%); animation: tsd-shadow 4s ease-in-out infinite;
}
@keyframes tsd-pulse { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tsd-sway { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes tsd-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes tsd-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(20deg) } }
@keyframes tsd-eyes { 0% { opacity:0.8; box-shadow:0 0 20px 10px #d09040; } 100% { opacity:1; box-shadow:0 0 30px 15px #e8b84a; } }
@keyframes tsd-shadow { 0%,100% { opacity:0.5; transform: translateX(-50%) scaleX(1) } 50% { opacity:0.8; transform: translateX(-50%) scaleX(1.1) } }

/* coriolanus-defends-himself */
.scn-coriolanus-defends-himself {
  background: linear-gradient(180deg, #f0e8dc 0%, #dcd0c0 60%, #b8a090 100%),
              radial-gradient(ellipse at 50% 30%, #e8dcc8 0%, transparent 70%);
}
.scn-coriolanus-defends-himself .bg-upper {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #dcd0c0 0%, transparent 100%);
  animation: cdh-sky 10s ease-in-out infinite alternate;
}
.scn-coriolanus-defends-himself .bg-lower {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(0deg, #9a8a7a 0%, #b8a090 100%);
}
.scn-coriolanus-defends-himself .platform {
  position:absolute; bottom:25%; left:30%; right:30%; height:10%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-coriolanus-defends-himself .figure {
  position:absolute; bottom:35%; left:50%; width:60px; height:120px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cdh-figure 3s ease-in-out infinite;
}
.scn-coriolanus-defends-himself .shadow {
  position:absolute; bottom:25%; left:50%; width:60px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform: translateX(-50%); animation: cdh-shadow 3s ease-in-out infinite;
}
.scn-coriolanus-defends-himself .senator {
  position:absolute; bottom:28%; width:25px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
}
.scn-coriolanus-defends-himself .senator-1 { left:18%; }
.scn-coriolanus-defends-himself .senator-2 { left:72%; }
.scn-coriolanus-defends-himself .senator-3 { left:55%; width:22px; height:70px; background: #4a3a2a; }
.scn-coriolanus-defends-himself .light-ray {
  position:absolute; top:10%; left:35%; right:35%; height:5%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,180,0.3) 50%, transparent 100%);
  animation: cdh-ray 5s ease-in-out infinite alternate;
}
@keyframes cdh-sky { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes cdh-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-5px) } }
@keyframes cdh-shadow { 0%,100% { opacity:0.4; transform: translateX(-50%) scaleX(1) } 50% { opacity:0.7; transform: translateX(-50%) scaleX(1.15) } }
@keyframes cdh-ray { 0% { opacity:0.2; transform: scaleY(0.8) } 100% { opacity:0.5; transform: scaleY(1.2) } }

/* banishment-pronounced */
.scn-banishment-pronounced {
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a088 30%, #8a7058 100%),
              radial-gradient(ellipse at 50% 40%, #c8b098 0%, transparent 60%);
}
.scn-banishment-pronounced .bg-back {
  position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #b09880 0%, transparent 70%);
  animation: bp-pulse 8s ease-in-out infinite alternate;
}
.scn-banishment-pronounced .bg-front {
  position:absolute; inset:30% 0 0 0; background: linear-gradient(180deg, #a08870 0%, #705848 100%);
}
.scn-banishment-pronounced .row-figures {
  position:absolute; bottom:30%; left:10%; right:10%; height:40%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 20px, transparent 20px, transparent 25px);
  mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  animation: bp-row 6s ease-in-out infinite;
}
.scn-banishment-pronounced .accused {
  position:absolute; bottom:30%; left:50%; width:40px; height:90px; transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bp-accused 4s ease-in-out infinite;
}
.scn-banishment-pronounced .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-banishment-pronounced .torch-flame {
  position:absolute; bottom:70%; left:20%; width:12px; height:30px;
  background: radial-gradient(ellipse, #ffa040 0%, #b06020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  box-shadow: 0 0 20px 10px #c07030, 0 0 40px 20px rgba(192,112,48,0.3);
  animation: bp-flame 0.8s ease-in-out infinite alternate;
}
.scn-banishment-pronounced .chains {
  position:absolute; bottom:40%; left:50%; width:30px; height:40px;
  border: 2px solid #6a5a4a; border-radius: 50%;
  background: transparent; transform: translateX(-50%);
  animation: bp-chains 3s ease-in-out infinite;
}
@keyframes bp-pulse { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes bp-row { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bp-accused { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes bp-flame { 0% { transform: scaleY(0.9); opacity:0.8 } 100% { transform: scaleY(1.2); opacity:1 } }
@keyframes bp-chains { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(10deg) } }

/* banishment-echoed */
.scn-banishment-echoed {
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 50%, #7a6048 100%),
              radial-gradient(ellipse at 50% 50%, #b8a088 0%, transparent 60%);
}
.scn-banishment-echoed .bg-overhead {
  position:absolute; inset:0; background: radial-gradient(circle at 50% 50%, #a08870 0%, #5a4a3a 100%);
  animation: be-vignette 10s ease-in-out infinite alternate;
}
.scn-banishment-echoed .ring {
  position:absolute; top:10%; bottom:10%; left:10%; right:10%;
  border: 3px solid #8a7050; border-radius: 50%;
  background: transparent; animation: be-ring 15s linear infinite;
}
.scn-banishment-echoed .figure.center {
  position:absolute; top:50%; left:50%; width:50px; height:100px; transform:translate(-50%,-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: be-center 4s ease-in-out infinite;
}
.scn-banishment-echoed .figure-mob {
  position:absolute; width:15px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
}
.scn-banishment-echoed .mob-1 { top:25%; left:30%; animation: be-mob1 5s ease-in-out infinite; }
.scn-banishment-echoed .mob-2 { top:60%; right:20%; animation: be-mob2 7s ease-in-out infinite; }
.scn-banishment-echoed .mob-3 { bottom:15%; left:40%; animation: be-mob3 6s ease-in-out infinite; }
.scn-banishment-echoed .spear {
  position:absolute; bottom:20%; left:60%; width:4px; height:60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform: rotate(15deg); transform-origin: bottom;
  animation: be-spear 3s ease-in-out infinite;
}
.scn-banishment-echoed .dust {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: radial-gradient(ellipse at 40% 100%, rgba(100,80,60,0.3) 0%, transparent 70%);
  animation: be-dust 8s ease-in-out infinite alternate;
}
@keyframes be-vignette { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes be-ring { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes be-center { 0%,100% { transform: translate(-50%,-50%) } 50% { transform: translate(-50%,-50%) translateY(-5px) } }
@keyframes be-mob1 { 0%,100% { transform: translate(0,0) } 50% { transform: translate(8px,-4px) } }
@keyframes be-mob2 { 0%,100% { transform: translate(0,0) } 50% { transform: translate(-6px,3px) } }
@keyframes be-mob3 { 0%,100% { transform: translate(0,0) } 50% { transform: translate(4px,-2px) } }
@keyframes be-spear { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } }
@keyframes be-dust { 0% { opacity:0.1 } 100% { opacity:0.4 } }

/* Scene: tribunes-fear */
.scn-tribunes-fear { background: linear-gradient(180deg, #f5e6c8 0%, #d4b68a 60%, #8c6f4a 100%); }
.scn-tribunes-fear .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e0cfb5 0%, #c4a882 100%); }
.scn-tribunes-fear .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a8835c 0%, #6b4f32 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,.4); }
.scn-tribunes-fear .col-left { position:absolute; bottom:35%; left:10%; width:8%; height:60%; background: linear-gradient(180deg, #b89a7a 0%, #8a6b4e 100%); border-radius:4%; box-shadow: 2px 0 8px rgba(0,0,0,.3); }
.scn-tribunes-fear .col-right { position:absolute; bottom:35%; right:10%; width:8%; height:60%; background: linear-gradient(180deg, #b89a7a 0%, #8a6b4e 100%); border-radius:4%; box-shadow: -2px 0 8px rgba(0,0,0,.3); }
.scn-tribunes-fear .tribune-a { position:absolute; bottom:35%; left:30%; width:7%; height:40%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2515 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin:bottom; animation: tf-fig 3s ease-in-out infinite alternate; }
.scn-tribunes-fear .tribune-b { position:absolute; bottom:35%; right:30%; width:7%; height:40%; background: linear-gradient(180deg, #4a3320 0%, #2a1a0e 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin:bottom; animation: tf-fig 3s ease-in-out infinite alternate-reverse; }
.scn-tribunes-fear .brazier { position:absolute; bottom:35%; left:50%; width:6%; height:15%; transform:translateX(-50%); background: linear-gradient(180deg, #c07030 0%, #804020 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 6px #ff8c40; }
.scn-tribunes-fear .flame { position:absolute; bottom:50%; left:50%; width:3%; height:12%; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ff6020 50%, transparent 100%); filter:blur(2px); animation: tf-flame 0.8s ease-in-out infinite alternate; }
@keyframes tf-fig { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) scaleY(1.02) } 100% { transform: rotate(2deg) } }
@keyframes tf-flame { 0% { transform: translateX(-50%) scaleY(0.9) } 100% { transform: translateX(-50%) scaleY(1.1) } }

/* Scene: aufidius-jealous */
.scn-aufidius-jealous { background: linear-gradient(180deg, #ffe4b5 0%, #f0c27a 60%, #c8955c 100%); }
.scn-aufidius-jealous .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87ceeb 0%, #ffe4b5 100%); animation: aj-sky 20s ease-in-out infinite alternate; }
.scn-aufidius-jealous .tent-bg { position:absolute; bottom:30%; left:15%; right:15%; height:40%; background: linear-gradient(135deg, #d4b07a 0%, #b8945c 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: aj-tent 8s ease-in-out infinite; }
.scn-aufidius-jealous .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #8a704a 0%, #ba925a 100%); }
.scn-aufidius-jealous .table { position:absolute; bottom:30%; left:40%; width:20%; height:8%; background: linear-gradient(180deg, #9a7a50 0%, #6a5030 100%); border-radius:6%; transform-origin:bottom; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-aufidius-jealous .aufidius { position:absolute; bottom:30%; left:25%; width:8%; height:45%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: aj-fig 4s ease-in-out infinite; }
.scn-aufidius-jealous .lieutenant { position:absolute; bottom:30%; right:25%; width:7%; height:40%; background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: aj-fig 4s ease-in-out infinite 2s; }
.scn-aufidius-jealous .soldiers { position:absolute; bottom:30%; left:55%; width:5%; height:35%; background: #3a2a1a; border-radius:50% 40% 20% 20% / 60% 50% 20% 20%; filter:blur(2px); }
.scn-aufidius-jealous .meal-plate { position:absolute; bottom:33%; left:48%; width:6%; height:4%; background: #6a5030; border-radius:50%; box-shadow: 0 0 6px 2px #8a6a40; animation: aj-plate 6s ease-in-out infinite; }
@keyframes aj-sky { 0% { opacity:1 } 50% { opacity:0.85 } 100% { opacity:1 } }
@keyframes aj-tent { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes aj-fig { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes aj-plate { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }

/* Scene: aufidius-plot */
.scn-aufidius-plot { background: linear-gradient(180deg, #2a1a0e 0%, #4a3520 50%, #1a1008 100%); }
.scn-aufidius-plot .tent-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1008 0%, #2a1a0e 100%); }
.scn-aufidius-plot .carpet { position:absolute; bottom:0; left:15%; right:15%; height:40%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2515 100%); border-radius:30% 30% 0 0; }
.scn-aufidius-plot .table-plot { position:absolute; bottom:40%; left:35%; width:30%; height:6%; background: #4a3020; border-radius:4%; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-aufidius-plot .scroll { position:absolute; bottom:42%; left:45%; width:4%; height:8%; background: #8a6a40; border-radius:20%; transform:rotate(-10deg); box-shadow: 0 0 8px 1px #6a5030; animation: ap-scroll 10s ease-in-out infinite; }
.scn-aufidius-plot .aufidius-plot { position:absolute; bottom:40%; left:28%; width:9%; height:45%; background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: ap-fig 5s ease-in-out infinite; }
.scn-aufidius-plot .lieutenant-plot { position:absolute; bottom:40%; right:28%; width:7%; height:38%; background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: ap-fig 5s ease-in-out infinite 2.5s; }
.scn-aufidius-plot .lamp-glow { position:absolute; bottom:44%; left:50%; width:4%; height:4%; background: radial-gradient(circle, #c89850 0%, #804020 60%, transparent 100%); filter:blur(3px); animation: ap-lamp 3s ease-in-out infinite alternate; }
@keyframes ap-scroll { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } }
@keyframes ap-fig { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(1px) } }
@keyframes ap-lamp { 0% { opacity:0.8; box-shadow: 0 0 12px 4px #804020; } 50% { opacity:1; box-shadow: 0 0 24px 8px #c89850; } 100% { opacity:0.7; box-shadow: 0 0 8px 2px #603010; } }

/* Scene: aufidius-predicts */
.scn-aufidius-predicts { background: linear-gradient(180deg, #403020 0%, #6a5030 30%, #8a6a40 100%); }
.scn-aufidius-predicts .sky-haze { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #c8a86a 0%, #a08040 100%); opacity:0.5; }
.scn-aufidius-predicts .city-skyline { position:absolute; bottom:40%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2515 100%); clip-path: polygon(0% 100%, 5% 10%, 15% 10%, 18% 60%, 25% 60%, 30% 0%, 35% 0%, 40% 30%, 50% 30%, 55% 0%, 65% 0%, 70% 20%, 80% 20%, 85% 50%, 95% 50%, 100% 100%); }
.scn-aufidius-predicts .tent-flap { position:absolute; bottom:40%; left:30%; right:30%; height:35%; background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 10px rgba(0,0,0,.6); }
.scn-aufidius-predicts .ground-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #0a0502 0%, #2a1a0e 100%); }
.scn-aufidius-predicts .aufidius-stand { position:absolute; bottom:43%; left:35%; width:8%; height:50%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: apr-fig 6s ease-in-out infinite; }
.scn-aufidius-predicts .lieutenant-kneel { position:absolute; bottom:40%; right:35%; width:6%; height:30%; background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; transform-origin:bottom; animation: apr-kneel 4s ease-in-out infinite; }
.scn-aufidius-predicts .staff { position:absolute; bottom:43%; left:31%; width:2%; height:55%; background: #5a3e2a; border-radius:2px; transform:rotate(5deg); box-shadow: 0 0 6px 2px #3a2515; animation: apr-staff 10s ease-in-out infinite; }
.scn-aufidius-predicts .shadow-cast { position:absolute; bottom:40%; left:40%; width:15%; height:10%; background: rgba(0,0,0,.5); filter:blur(4px); border-radius:50%; animation: apr-shadow 6s ease-in-out infinite; }
@keyframes apr-fig { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) } }
@keyframes apr-kneel { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes apr-staff { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(2deg) } }
@keyframes apr-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.9) opacity:0.7; } }

/* one block per scene id. Append to style.css. */

/* scene-marcius-request (tense, sunlit) */
.scn-scene-marcius-request {
  background: 
    linear-gradient(180deg, #e8d5b0 0%, #c49a6c 40%, #8b5e3c 100%),
    radial-gradient(ellipse at 70% 20%, #ffe080 0%, transparent 60%);
}
.scn-scene-marcius-request .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8c0d0 0%, #d4b88a 100%);
  animation: smr-sky 8s ease-in-out infinite alternate;
}
.scn-scene-marcius-request .sun-glow {
  position: absolute; top: 10%; left: 70%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffeacc 0%, #d4a460 50%, transparent 70%);
  border-radius: 50%;
  animation: smr-sunglow 4s ease-in-out infinite alternate;
}
.scn-scene-marcius-request .figure-marcius {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smr-figure 6s ease-in-out infinite;
}
.scn-scene-marcius-request .arm-sword {
  position: absolute; bottom: 42%; left: 26%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #2b1a0e 0%, #8c6b3f 60%, #d4a460 100%);
  border-radius: 4px;
  transform-origin: left center;
  animation: smr-sword 3s ease-in-out infinite alternate;
}
.scn-scene-marcius-request .sword-shadow {
  position: absolute; bottom: 40%; left: 32%; width: 80px; height: 30px;
  background: rgba(0,0,0,0.15);
  filter: blur(4px);
  border-radius: 50%;
  animation: smr-swordshadow 3s ease-in-out infinite alternate;
}
.scn-scene-marcius-request .dust-particles {
  position: absolute; bottom: 18%; left: 10%; width: 200px; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,170,120,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: smr-dust 12s ease-in-out infinite;
}
.scn-scene-marcius-request .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: smr-ground 10s ease-in-out infinite alternate;
}
@keyframes smr-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes smr-sunglow { 0% { transform:scale(1); opacity:0.8 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.7 } }
@keyframes smr-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes smr-sword { 0% { transform: rotate(-15deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-20deg) } }
@keyframes smr-swordshadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.2) } 100% { transform: translateX(-5px) scaleX(0.9) } }
@keyframes smr-dust { 0% { transform: translateY(0) } 50% { transform: translateY(-10px) } 100% { transform: translateY(0) } }
@keyframes smr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* scene-gates-corioli (tense, sunlit) */
.scn-scene-gates-corioli {
  background: 
    linear-gradient(180deg, #c4a882 0%, #a08060 40%, #6a5038 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 60%);
}
.scn-scene-gates-corioli .sky-stone {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9a8a7a 0%, #b09880 100%);
  animation: sgc-sky 10s ease-in-out infinite alternate;
}
.scn-scene-gates-corioli .gate-arch {
  position: absolute; bottom: 28%; left: 50%; width: 200px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 30px rgba(0,0,0,0.5);
  animation: sgc-arch 8s ease-in-out infinite alternate;
}
.scn-scene-gates-corioli .gate-doors {
  position: absolute; bottom: 28%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 5% 5% 3% 3%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: sgc-doors 12s ease-in-out infinite;
}
.scn-scene-gates-corioli .left-guard {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sgc-guard-left 3s ease-in-out infinite alternate;
}
.scn-scene-gates-corioli .right-guard {
  position: absolute; bottom: 22%; right: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sgc-guard-right 3s ease-in-out infinite alternate;
  animation-delay: 1.5s;
}
.scn-scene-gates-corioli .spear-left {
  position: absolute; bottom: 50%; left: 30%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #a08060 0%, #6a5038 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: sgc-spear 5s ease-in-out infinite alternate;
}
.scn-scene-gates-corioli .spear-right {
  position: absolute; bottom: 50%; right: 32%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #a08060 0%, #6a5038 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: sgc-spear 5s ease-in-out infinite alternate-reverse;
  animation-delay: 0.5s;
}
.scn-scene-gates-corioli .dust-veil {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,150,100,0.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: sgc-dust 15s ease-in-out infinite alternate;
}
@keyframes sgc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sgc-arch { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes sgc-doors { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(0.98) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes sgc-guard-left { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes sgc-guard-right { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(1deg) } }
@keyframes sgc-spear { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(3deg) } }
@keyframes sgc-dust { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-5px) } 100% { opacity:0.2; transform: translateY(0) } }

/* scene-duel-aufidius (tense, sunlit) */
.scn-scene-duel-aufidius {
  background: 
    linear-gradient(180deg, #d4c4a0 0%, #b09070 40%, #705030 100%),
    radial-gradient(ellipse at 50% 60%, #fff0c0 0%, transparent 50%);
}
.scn-scene-duel-aufidius .battle-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b898 0%, #e0d0b0 100%);
  animation: sda-sky 7s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .battle-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: sda-ground 6s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .marcius-duel {
  position: absolute; bottom: 22%; left: 25%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sda-marcius 2s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .aufidius-duel {
  position: absolute; bottom: 22%; right: 25%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sda-aufidius 2s ease-in-out infinite alternate-reverse;
}
.scn-scene-duel-aufidius .sword-marcius {
  position: absolute; bottom: 48%; left: 30%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #2b1a0e 0%, #a08060 60%, #d4b88a 100%);
  border-radius: 3px;
  transform-origin: left center;
  animation: sda-sword-m 0.5s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .sword-aufidius {
  position: absolute; bottom: 48%; right: 30%; width: 80px; height: 6px;
  background: linear-gradient(270deg, #3a2a1a 0%, #a08060 60%, #d4b88a 100%);
  border-radius: 3px;
  transform-origin: right center;
  animation: sda-sword-a 0.5s ease-in-out infinite alternate;
  animation-delay: 0.25s;
}
.scn-scene-duel-aufidius .clash-spark {
  position: absolute; bottom: 52%; left: 50%; width: 20px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffdd88 0%, #c08040 50%, transparent 80%);
  border-radius: 50%;
  animation: sda-spark 0.3s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .dust-debris {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,150,100,0.3) 0%, transparent 70%);
  filter: blur(7px);
  animation: sda-debris 3s ease-in-out infinite alternate;
}
@keyframes sda-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sda-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sda-marcius { 0% { transform: translateX(-5px) rotate(-5deg) } 50% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(-3px) rotate(-3deg) } }
@keyframes sda-aufidius { 0% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(3px) rotate(3deg) } }
@keyframes sda-sword-m { 0% { transform: rotate(-20deg) } 100% { transform: rotate(20deg) } }
@keyframes sda-sword-a { 0% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes sda-spark { 0% { transform: translate(-50%, -50%) scale(0.5); opacity:1 } 100% { transform: translate(-50%, -50%) scale(1.5); opacity:0.5 } }
@keyframes sda-debris { 0% { opacity:0.4; transform: translateY(0) } 50% { opacity:0.8; transform: translateY(-8px) } 100% { opacity:0.3; transform: translateY(0) } }

/* scene-roman-camp-triumph (warm, sunlit) */
.scn-scene-roman-camp-triumph {
  background: 
    linear-gradient(180deg, #f0d8b0 0%, #d4b88a 50%, #a08060 100%),
    radial-gradient(ellipse at 30% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-scene-roman-camp-triumph .camp-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e8d0a8 0%, #d4b88a 100%);
  animation: sct-sky 10s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .camp-tent {
  position: absolute; bottom: 20%; left: 30%; width: 200px; height: 160px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: sct-tent 12s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .tent-flap {
  position: absolute; bottom: 22%; left: 38%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: sct-flap 5s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .figure-cominius {
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sct-cominius 7s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .figure-marcius-wounded {
  position: absolute; bottom: 18%; right: 30%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sct-marcius-wounded 7s ease-in-out infinite alternate-reverse;
}
.scn-scene-roman-camp-triumph .standard {
  position: absolute; bottom: 35%; left: 20%; width: 6px; height: 120px;
  background: linear-gradient(180deg, #a08060 0%, #6a5038 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: sct-standard 8s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .banner {
  position: absolute; bottom: 50%; left: 18%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 0 10px rgba(200,85,61,0.4);
  animation: sct-banner 6s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .fire-pit {
  position: absolute; bottom: 8%; left: 55%; width: 100px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #804020 70%, transparent 100%);
  border-radius: 50%;
  animation: sct-fire 3s ease-in-out infinite alternate;
}
@keyframes sct-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sct-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes sct-flap { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }
@keyframes sct-cominius { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes sct-marcius-wounded { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(1deg) } }
@keyframes sct-standard { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes sct-banner { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }
@keyframes sct-fire { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }

/* scene 1: news-of-coriolanus-leadership */
.scn-news-of-coriolanus-leadership {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #5a2a0a 40%, #7a3a1a 70%, #4a1a00 100%),
    radial-gradient(ellipse at 30% 60%, #f0a050 0%, transparent 60%);
}
.scn-news-of-coriolanus-leadership .bg-fire { position:absolute; inset:0; background: linear-gradient(180deg, rgba(80,30,0,.6) 0%, transparent 50%, rgba(0,0,0,.5) 100%); animation: ncl-bg 13s ease-in-out infinite alternate; }
.scn-news-of-coriolanus-leadership .wall-l { position:absolute; left:0; bottom:0; width:30%; height:85%; background: linear-gradient(90deg, #6a4020 0%, #8a5030 100%); border-radius:0 20% 0 0; box-shadow: inset -8px 0 12px rgba(0,0,0,.5); }
.scn-news-of-coriolanus-leadership .wall-r { position:absolute; right:0; bottom:0; width:25%; height:80%; background: linear-gradient(270deg, #5a3018 0%, #7a4028 100%); border-radius:20% 0 0 0; box-shadow: inset 8px 0 12px rgba(0,0,0,.5); }
.scn-news-of-coriolanus-leadership .table { position:absolute; bottom:15%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #5a3018 0%, #3a1a08 100%); border-radius:10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-news-of-coriolanus-leadership .fire { position:absolute; bottom:20%; left:15%; width:40px; height:80px; background: radial-gradient(ellipse at 50% 100%, #ffa050 0%, #ff6000 40%, #c04000 70%, transparent 100%); border-radius:50%; transform-origin: bottom center; animation: ncl-flame 0.6s ease-in-out infinite alternate; }
.scn-news-of-coriolanus-leadership .messenger { position:absolute; bottom:15%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ncl-run 0.8s ease-in-out infinite; }
.scn-news-of-coriolanus-leadership .servant-a { position:absolute; bottom:15%; right:30%; width:35px; height:55px; background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: ncl-listen 3s ease-in-out infinite; }
.scn-news-of-coriolanus-leadership .servant-b { position:absolute; bottom:15%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #3a2018 0%, #1a1008 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: scaleX(-1); animation: ncl-listen 3.5s ease-in-out infinite 0.5s; }
.scn-news-of-coriolanus-leadership .lantern-glow { position:absolute; bottom:40%; left:10%; width:8px; height:8px; background: radial-gradient(circle, #ffb870 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,180,80,.5); animation: ncl-glow 2s ease-in-out infinite alternate; }
@keyframes ncl-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ncl-flame { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.15) rotate(2deg); } 100% { transform: scaleY(0.95) rotate(-1deg); } }
@keyframes ncl-run { 0% { transform: rotate(10deg) translateX(0) translateY(0); } 25% { transform: rotate(8deg) translateX(5px) translateY(-2px); } 50% { transform: rotate(12deg) translateX(10px) translateY(0); } 75% { transform: rotate(6deg) translateX(15px) translateY(-2px); } 100% { transform: rotate(10deg) translateX(20px) translateY(0); } }
@keyframes ncl-listen { 0% { transform: scaleX(-1) translateY(0) rotate(0); } 25% { transform: scaleX(-1) translateY(-2px) rotate(2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(0); } 75% { transform: scaleX(-1) translateY(-2px) rotate(-2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0); } }
@keyframes ncl-glow { 0% { opacity:0.6; box-shadow: 0 0 20px 10px rgba(255,180,80,.3); } 50% { opacity:1; box-shadow: 0 0 40px 20px rgba(255,200,100,.6); } 100% { opacity:0.8; box-shadow: 0 0 30px 15px rgba(255,180,80,.4); } }

/* scene 2: servingmen-applaud-war */
.scn-servingmen-applaud-war {
  background:
    linear-gradient(180deg, #2a1008 0%, #4a2010 40%, #6a3018 70%, #3a1808 100%),
    radial-gradient(ellipse at 70% 70%, #e08030 0%, transparent 70%);
}
.scn-servingmen-applaud-war .bg-tavern { position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,20,0,.5) 0%, transparent 50%); animation: saw-bg 16s ease-in-out infinite alternate; }
.scn-servingmen-applaud-war .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border-radius: 20% 20% 0 0; }
.scn-servingmen-applaud-war .hearth { position:absolute; bottom:18%; left:10%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff9040 0%, #c05000 50%, #802000 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(128,32,0,.6); animation: saw-hearth 2s ease-in-out infinite alternate; }
.scn-servingmen-applaud-war .speaker { position:absolute; bottom:20%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0c00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: saw-speak 1.2s ease-in-out infinite; }
.scn-servingmen-applaud-war .listener-a { position:absolute; bottom:20%; right:25%; width:35px; height:60px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: top center; animation: saw-clap 0.8s ease-in-out infinite; }
.scn-servingmen-applaud-war .listener-b { position:absolute; bottom:20%; right:5%; width:35px; height:60px; background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: top center; animation: saw-clap 0.9s ease-in-out infinite 0.3s; }
.scn-servingmen-applaud-war .tankard-a { position:absolute; bottom:25%; left:55%; width:16px; height:22px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: saw-tilt 3s ease-in-out infinite; }
.scn-servingmen-applaud-war .tankard-b { position:absolute; bottom:27%; right:20%; width:14px; height:20px; background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: saw-tilt 3.5s ease-in-out infinite 1s; }
@keyframes saw-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes saw-hearth { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) scaleX(0.9) } 100% { transform: scaleY(0.9) scaleX(1.1) } }
@keyframes saw-speak { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-3px) } 50% { transform: rotate(-6deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes saw-clap { 0% { transform: scaleY(1) scaleX(1); } 25% { transform: scaleY(0.95) scaleX(1.05); } 50% { transform: scaleY(1) scaleX(1); } 75% { transform: scaleY(0.95) scaleX(1.05); } 100% { transform: scaleY(1) scaleX(1); } }
@keyframes saw-tilt { 0% { transform: rotate(0) translate(0,0); } 25% { transform: rotate(-5deg) translate(-2px,1px); } 50% { transform: rotate(0) translate(0,0); } 75% { transform: rotate(5deg) translate(2px,1px); } 100% { transform: rotate(0) translate(0,0); } }

/* scene 3: servingmen-praise-war */
.scn-servingmen-praise-war {
  background:
    linear-gradient(180deg, #2a0a00 0%, #5a2010 30%, #7a3a1a 60%, #4a1a08 100%),
    radial-gradient(ellipse at 30% 80%, #e08030 0%, transparent 60%);
}
.scn-servingmen-praise-war .bg-inn { position:absolute; inset:0; background: linear-gradient(180deg, rgba(80,30,0,.5) 0%, transparent 40%, rgba(0,0,0,.4) 100%); animation: spw-bg 20s ease-in-out infinite alternate; }
.scn-servingmen-praise-war .bench { position:absolute; bottom:12%; left:15%; right:15%; height:6%; background: linear-gradient(180deg, #4a2a18 0%, #2a1208 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.6); }
.scn-servingmen-praise-war .cheerer-a { position:absolute; bottom:15%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0c00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spw-cheer 1.5s ease-in-out infinite; }
.scn-servingmen-praise-war .cheerer-b { position:absolute; bottom:15%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spw-cheer 1.5s ease-in-out infinite 0.5s; }
.scn-servingmen-praise-war .cheerer-c { position:absolute; bottom:15%; right:20%; width:40px; height:70px; background: linear-gradient(180deg, #4a3020 0%, #201008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spw-cheer 1.5s ease-in-out infinite 1s; }
.scn-servingmen-praise-war .flagon { position:absolute; bottom:20%; left:50%; width:20px; height:28px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 20% 20%; transform: translateX(-50%); animation: spw-tilt 4s ease-in-out infinite; }
.scn-servingmen-praise-war .candle { position:absolute; bottom:30%; right:10%; width:4px; height:30px; background: linear-gradient(180deg, #ffc060 0%, #ff8020 40%, #804000 100%); border-radius: 20%; box-shadow: 0 0 12px 6px rgba(255,192,96,.6); animation: spw-candle 1.2s ease-in-out infinite alternate; }
@keyframes spw-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes spw-cheer { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-6px) rotate(0deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-6px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes spw-tilt { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(-8deg); } 50% { transform: translateX(-50%) rotate(0); } 75% { transform: translateX(-50%) rotate(8deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes spw-candle { 0% { transform: scaleY(1) rotate(-1deg); opacity:0.9; } 50% { transform: scaleY(1.2) rotate(1deg); opacity:1; } 100% { transform: scaleY(0.9) rotate(-1deg); opacity:0.85; } }

/* scene 4: tribunes-hear-not */
.scn-tribunes-hear-not {
  background:
    linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 40%, #b8a88c 100%),
    radial-gradient(ellipse at 50% 80%, #fff8e0 0%, transparent 70%);
}
.scn-tribunes-hear-not .bg-chamber { position:absolute; inset:0; background: linear-gradient(180deg, rgba(220,200,170,.4) 0%, transparent 60%, rgba(0,0,0,.1) 100%); animation: thn-bg 30s ease-in-out infinite alternate; }
.scn-tribunes-hear-not .column-l { position:absolute; left:10%; bottom:0; width:6%; height:90%; background: linear-gradient(90deg, #c0a890 0%, #e0c8b0 30%, #b09878 100%); border-radius: 10% 10% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,.1); }
.scn-tribunes-hear-not .column-r { position:absolute; right:10%; bottom:0; width:6%; height:90%; background: linear-gradient(270deg, #c0a890 0%, #e0c8b0 30%, #b09878 100%); border-radius: 10% 10% 0 0; box-shadow: -2px 0 6px rgba(0,0,0,.1); }
.scn-tribunes-hear-not .tribune-left { position:absolute; bottom:25%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #8a7860 0%, #5a4a38 100%); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; transform: rotate(5deg); animation: thn-stand 8s ease-in-out infinite; }
.scn-tribunes-hear-not .tribune-right { position:absolute; bottom:25%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #7a6848 0%, #4a3a28 100%); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: thn-stand 8s ease-in-out infinite 2s; }
.scn-tribunes-hear-not .window-light { position:absolute; top:15%; left:40%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,250,230,.8) 0%, transparent 100%); border-radius: 10%; box-shadow: 0 0 60px 30px rgba(255,250,200,.2); animation: thn-light 12s ease-in-out infinite alternate; }
@keyframes thn-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes thn-stand { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes thn-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* scene-volumnia-home */
.scn-scene-volumnia-home {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 30%, #3a2a1a 100%),
              radial-gradient(circle at 40% 80%, #8a7a5a 0%, transparent 60%);
}
.scn-scene-volumnia-home .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); }
.scn-scene-volumnia-home .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a2a1a, #4a3a2a); }
.scn-scene-volumnia-home .stool-left { position:absolute; bottom:30%; left:25%; width:30px; height:20px; background: linear-gradient(180deg, #6a4a3a, #4a2a1a); border-radius:4%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: vh-stool 6s ease-in-out infinite alternate; }
.scn-scene-volumnia-home .stool-right { position:absolute; bottom:30%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #6a4a3a, #4a2a1a); border-radius:4%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: vh-stool 6s ease-in-out infinite alternate-reverse; }
.scn-scene-volumnia-home .figure-left { position:absolute; bottom:30%; left:22%; width:28px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vh-sew 4s ease-in-out infinite; }
.scn-scene-volumnia-home .figure-right { position:absolute; bottom:30%; left:52%; width:28px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vh-sew 4s ease-in-out infinite 0.5s; }
.scn-scene-volumnia-home .window { position:absolute; top:10%; right:15%; width:50px; height:70px; background: radial-gradient(circle at 50% 50%, #c0b080, #908060); border-radius:5px; box-shadow: inset 0 0 20px #a09070; animation: vh-window 10s ease-in-out infinite alternate; }
.scn-scene-volumnia-home .fire-glow { position:absolute; bottom:30%; left:10%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #d08040 60%, transparent 100%); border-radius:50%; animation: vh-fire 3s ease-in-out infinite alternate; }
.scn-scene-volumnia-home .sewing-basket { position:absolute; bottom:30%; left:40%; width:24px; height:18px; background: linear-gradient(180deg, #7a5a3a, #5a3a1a); border-radius:0 0 8px 8px; animation: vh-basket 8s ease-in-out infinite; }
@keyframes vh-stool { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vh-sew { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vh-window { 0% { opacity:0.7; box-shadow: inset 0 0 10px #a09070; } 50% { opacity:1; box-shadow: inset 0 0 30px #c0b080; } 100% { opacity:0.8; box-shadow: inset 0 0 15px #a09070; } }
@keyframes vh-fire { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes vh-basket { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* scene-valeria-visit */
.scn-scene-valeria-visit {
  background: linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 30%, #4a3a2a 100%),
              radial-gradient(circle at 20% 60%, #9a8a6a 0%, transparent 50%);
}
.scn-scene-valeria-visit .room-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #8a7a5a, #6a5a3a); }
.scn-scene-valeria-visit .door-arch { position:absolute; bottom:20%; left:10%; width:40px; height:80px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: vv-door 12s ease-in-out infinite alternate; }
.scn-scene-valeria-visit .figure-valeria { position:absolute; bottom:20%; left:8%; width:24px; height:55px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vv-enter 8s ease-in-out infinite; }
.scn-scene-valeria-visit .figure-virgilia { position:absolute; bottom:20%; left:38%; width:26px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vv-seated 6s ease-in-out infinite; }
.scn-scene-valeria-visit .figure-volumnia { position:absolute; bottom:20%; left:55%; width:26px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vv-stand 4s ease-in-out infinite alternate; }
.scn-scene-valeria-visit .stool-center { position:absolute; bottom:20%; left:42%; width:32px; height:18px; background: linear-gradient(180deg, #6a4a3a, #4a2a1a); border-radius:4%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: vv-stool 7s ease-in-out infinite alternate; }
.scn-scene-valeria-visit .window-light { position:absolute; top:15%; right:20%; width:50px; height:60px; background: radial-gradient(circle at 50% 50%, #d0c0a0, #b0a080); border-radius:5px; box-shadow: inset 0 0 20px #c0b090; animation: vv-window 12s ease-in-out infinite alternate; }
@keyframes vv-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes vv-enter { 0% { transform: translateX(-20px) rotate(0deg); opacity:0; } 30% { opacity:1; } 70% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); opacity:1; } }
@keyframes vv-seated { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vv-stand { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes vv-stool { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes vv-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* item-butterfly-gilded */
.scn-scene-item-butterfly-gilded {
  background: linear-gradient(180deg, #7a6a5a 0%, #9a8a6a 40%, #5a4a3a 100%),
              radial-gradient(circle at 50% 50%, #b0a080 0%, transparent 70%);
}
.scn-scene-item-butterfly-gilded .hoop { position:absolute; top:15%; left:15%; width:70%; height:70%; border: 3px solid #6a5a3a; border-radius:50%; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 4px 10px rgba(0,0,0,0.3); animation: bg-hoop 10s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .fabric { position:absolute; top:20%; left:20%; width:60%; height:60%; background: linear-gradient(135deg, #e0d0b0, #c0b090); border-radius:50%; box-shadow: inset 0 0 30px #a09070; animation: bg-fabric 14s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .butterfly-body { position:absolute; top:40%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 50% 50% 0 0; animation: bg-body 5s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .butterfly-wing.wing-l { position:absolute; top:35%; left:30%; width:40px; height:30px; background: radial-gradient(circle at 40% 50%, #d0b080, #b09060); border-radius: 80% 20% 50% 50% / 50% 40% 60% 50%; transform: rotate(-10deg); box-shadow: 0 0 10px rgba(180,140,80,0.5); animation: bg-wing-l 6s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .butterfly-wing.wing-r { position:absolute; top:35%; left:46%; width:40px; height:30px; background: radial-gradient(circle at 60% 50%, #d0b080, #b09060); border-radius: 20% 80% 50% 50% / 50% 40% 60% 50%; transform: rotate(10deg); box-shadow: 0 0 10px rgba(180,140,80,0.5); animation: bg-wing-r 6s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .thread { position:absolute; bottom:20%; left:55%; width:2px; height:60px; background: linear-gradient(180deg, #8a6a4a, #5a3a1a); transform: rotate(-30deg); border-radius:1px; animation: bg-thread 8s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .needle { position:absolute; bottom:15%; left:52%; width:4px; height:30px; background: linear-gradient(180deg, #c0c0c0, #808080); border-radius:2px; transform: rotate(-30deg); box-shadow: 0 0 2px rgba(0,0,0,0.3); animation: bg-needle 8s ease-in-out infinite alternate; }
@keyframes bg-hoop { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes bg-fabric { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes bg-body { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bg-wing-l { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.05); } 100% { transform: rotate(-5deg) scaleX(0.95); } }
@keyframes bg-wing-r { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.05); } 100% { transform: rotate(5deg) scaleX(0.95); } }
@keyframes bg-thread { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes bg-needle { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-30deg) translateY(-3px); } 100% { transform: rotate(-30deg) translateY(0); } }

/* scene-before-corioli */
.scn-scene-before-corioli {
  background: linear-gradient(180deg, #7a9aba 0%, #9aba8a 40%, #5a7a4a 100%),
              radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, transparent 70%);
}
.scn-scene-before-corioli .sky-battle { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8ab0d0, #6a90b0); animation: bc-sky 20s ease-in-out infinite alternate; }
.scn-scene-before-corioli .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #4a6a3a, #6a8a5a); border-radius: 40% 60% 0 0 / 10% 20% 0 0; }
.scn-scene-before-corioli .city-wall { position:absolute; bottom:30%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #6a5a4a, #4a3a2a); border-radius: 10% 10% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: bc-wall 15s ease-in-out infinite alternate; }
.scn-scene-before-corioli .soldier.left { position:absolute; bottom:28%; left:18%; width:16px; height:40px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bc-soldier-l 5s ease-in-out infinite alternate; }
.scn-scene-before-corioli .soldier.right { position:absolute; bottom:28%; left:40%; width:16px; height:42px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bc-soldier-r 5s ease-in-out infinite alternate-reverse; }
.scn-scene-before-corioli .banner { position:absolute; bottom:26%; left:60%; width:6px; height:50px; background: #3a2a1a; border-radius: 2px; animation: bc-banner 8s ease-in-out infinite alternate; }
.scn-scene-before-corioli .banner::after { content:''; position:absolute; top:0; left:4px; width:20px; height:12px; background: #a0461a; border-radius:0 50% 50% 0; box-shadow: 0 0 6px rgba(160,70,26,0.5); }
.scn-scene-before-corioli .drum { position:absolute; bottom:22%; left:70%; width:20px; height:12px; background: linear-gradient(180deg, #8a6a4a, #6a4a2a); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: bc-drum 4s ease-in-out infinite alternate; }
.scn-scene-before-corioli .dust { position:absolute; bottom:5%; left:10%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(180,160,100,0.3) 0%, transparent 100%); filter: blur(10px); animation: bc-dust 12s linear infinite; }
@keyframes bc-sky { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: -10% -2%; } }
@keyframes bc-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bc-soldier-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bc-soldier-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bc-banner { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bc-drum { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes bc-dust { 0% { transform: translateX(-30px); opacity:0; } 10% { opacity:0.5; } 90% { opacity:0.5; } 100% { transform: translateX(100vw); opacity:0; } }

.scn-coriolanus-arrives-forum {
  background: linear-gradient(180deg, #4a7a9e 0%, #2a5a7a 40%, #1a3a4a 100%), radial-gradient(ellipse at 50% 20%, #f0d090 0%, transparent 70%);
}

.scn-coriolanus-arrives-forum .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a9abe 0%, #4a7a9e 50%, transparent 100%);
  animation: ci1-sky 10s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .sun-glow {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4c0 0%, #f0d090 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 80px 30px rgba(240,208,144,0.5);
  animation: ci1-sun 4s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .columns {
  position: absolute; bottom: 25%; width: 12px; height: 40%;
  background: linear-gradient(180deg, #b0a080 0%, #7a6a5a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-coriolanus-arrives-forum .columns.left {
  left: 15%;
  animation: ci1-col-left 8s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .columns.right {
  right: 15%;
  animation: ci1-col-right 8s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .steps {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: repeating-linear-gradient(90deg, #a08868 0px, #a08868 20px, #806850 20px, #806850 40px);
  border-radius: 4px 4px 0 0;
}
.scn-coriolanus-arrives-forum .figure {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ci1-figure 3s ease-in-out infinite;
}
.scn-coriolanus-arrives-forum .crowd-left {
  position: absolute; bottom: 20%; left: 5%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(0% 100%, 0% 40%, 100% 40%, 100% 100%);
  animation: ci1-crowd 5s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .crowd-right {
  position: absolute; bottom: 20%; right: 5%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(0% 40%, 100% 40%, 100% 100%, 0% 100%);
  animation: ci1-crowd 5s ease-in-out infinite alternate-reverse;
}
.scn-coriolanus-arrives-forum .shadow {
  position: absolute; bottom: 17%; left: 10%; right: 10%; height: 5%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: ci1-shadow 3s ease-in-out infinite;
}

@keyframes ci1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ci1-sun { 0% { transform: translateX(-50%) scale(1); opacity:0.8 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.7 } }
@keyframes ci1-col-left { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ci1-col-right { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ci1-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 75% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes ci1-crowd { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes ci1-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

.scn-trial-preparation {
  background: linear-gradient(180deg, #f5ecd5 0%, #e0d4b8 50%, #c8b898 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-trial-preparation .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8dcc4 0%, #d4c4a8 100%);
}
.scn-trial-preparation .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8cadc0 0%, #6a8ca0 100%);
  border: 4px solid #8a7050;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
  animation: tp1-window 12s ease-in-out infinite alternate;
}
.scn-trial-preparation .light-ray {
  position: absolute; top: 10%; left: 10%; width: 20%; height: 50%;
  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: tp1-ray 8s ease-in-out infinite alternate;
}
.scn-trial-preparation .table {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #b8986a 0%, #8a7050 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-trial-preparation .scroll {
  position: absolute; bottom: 32%; left: 44%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8b490 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: tp1-scroll 5s ease-in-out infinite alternate;
}
.scn-trial-preparation .candle {
  position: absolute; bottom: 35%; left: 38%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #fff8e0 0%, #f0d090 50%, #806040 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 8px rgba(240,208,144,0.6);
  animation: tp1-candle 3s ease-in-out infinite;
}
.scn-trial-preparation .figure {
  position: absolute; bottom: 23%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tp1-figure 4s ease-in-out infinite;
}
.scn-trial-preparation .shadows {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2), transparent);
  filter: blur(6px);
}

@keyframes tp1-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tp1-ray { 0% { opacity:0.3; transform: skewX(0deg) } 50% { opacity:0.6; transform: skewX(3deg) } 100% { opacity:0.4; transform: skewX(-2deg) } }
@keyframes tp1-scroll { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes tp1-candle { 0%,100% { transform: scaleY(1); box-shadow: 0 0 20px 8px rgba(240,208,144,0.6) } 50% { transform: scaleY(1.05); box-shadow: 0 0 30px 12px rgba(240,208,144,0.8) } }
@keyframes tp1-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); opacity:0.9 } 50% { transform: translateX(-48%) rotate(2deg); opacity:1 } }

.scn-trial-opening {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b898 50%, #a08868 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-trial-opening .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8d0c0 0%, #b8a888 100%);
}
.scn-trial-opening .bench-row {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 20%;
  background: repeating-linear-gradient(90deg, #806850 0px, #806850 30px, #706040 30px, #706040 60px);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: to1-bench 6s ease-in-out infinite alternate;
}
.scn-trial-opening .podium {
  position: absolute; bottom: 35%; left: 50%; width: 16%; height: 25%;
  background: linear-gradient(180deg, #b8986a 0%, #8a7050 100%);
  border-radius: 8px 8px 4px 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-trial-opening .figure-judge {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: to1-judge 4s ease-in-out infinite;
}
.scn-trial-opening .figure-orator {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: to1-orator 3s ease-in-out infinite alternate;
}
.scn-trial-opening .light-shaft {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,224,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: to1-shaft 8s ease-in-out infinite alternate;
}
.scn-trial-opening .columns {
  position: absolute; top: 0; bottom: 0; width: 8%;
  background: linear-gradient(180deg, #b0a080 0%, #7a6a5a 100%);
  border-right: 1px solid #9a8a6a;
}
.scn-trial-opening .columns:nth-child(7) {
  left: 2%;
}
.scn-trial-opening .columns:nth-last-child(1) {
  right: 2%;
}

@keyframes to1-bench { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes to1-judge { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes to1-orator { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(10px) rotate(0deg) } 100% { transform: translateX(20px) rotate(2deg) } }
@keyframes to1-shaft { 0% { opacity:0.4; transform: skewX(0deg) } 50% { opacity:0.7; transform: skewX(4deg) } 100% { opacity:0.5; transform: skewX(-3deg) } }

.scn-trial-accusation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #3a2a3a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-trial-accusation .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-trial-accusation .crowd-silhouette-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #1a1a2e 60%, #0a0a1a 100%);
  clip-path: polygon(0% 100%, 0% 50%, 10% 40%, 20% 50%, 30% 35%, 40% 45%, 50% 30%, 60% 40%, 70% 35%, 80% 45%, 90% 30%, 100% 40%, 100% 100%);
  animation: ta1-crowd 6s ease-in-out infinite alternate;
}
.scn-trial-accusation .accuser {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ta1-accuser 4s ease-in-out infinite;
}
.scn-trial-accusation .accused {
  position: absolute; bottom: 25%; right: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: ta1-accused 4s ease-in-out infinite alternate;
}
.scn-trial-accusation .light-spot {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,248,224,0.5) 0%, transparent 60%);
  animation: ta1-spot 5s ease-in-out infinite alternate;
}
.scn-trial-accusation .shadow-accent {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: ta1-shadow 3s ease-in-out infinite alternate;
}
.scn-trial-accusation .chain {
  position: absolute; bottom: 20%; left: 50%; width: 4px; height: 30px;
  background: repeating-linear-gradient(180deg, #887050 0px, #887050 4px, transparent 4px, transparent 8px);
  transform: translateX(-50%);
  animation: ta1-chain 2s ease-in-out infinite;
}

@keyframes ta1-crowd { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-2px) } 100% { transform: scaleY(0.95) translateY(0) } }
@keyframes ta1-accuser { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } }
@keyframes ta1-accused { 0% { transform: scaleX(-1) translateX(0) rotate(2deg) } 50% { transform: scaleX(-1) translateX(-5px) rotate(-2deg) } 100% { transform: scaleX(-1) translateX(0) rotate(0deg) } }
@keyframes ta1-spot { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.05) } 100% { opacity:0.6; transform: scale(0.95) } }
@keyframes ta1-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }
@keyframes ta1-chain { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(5deg) } }

/* coriolanus-death */
.scn-coriolanus-death {
  background: linear-gradient(180deg, #f4d7a0 0%, #c68e5a 40%, #4a2e20 80%), radial-gradient(ellipse at 30% 60%, #f0c868 0%, transparent 60%);
}
.scn-coriolanus-death .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f9e8b8 0%, #dbb070 60%, transparent);
  animation: cd-sky 10s ease-in-out infinite alternate;
}
.scn-coriolanus-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a3a22 0%, #2c1a10 100%);
  border-radius: 40% 60% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.6);
}
.scn-coriolanus-death .body {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #6b4226 0%, #3a2515 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  transform: rotate(-5deg);
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
  animation: cd-body 5s ease-in-out infinite;
}
.scn-coriolanus-death .aufidius {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1e14 0%, #0d0a06 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cd-aufidius 4s ease-in-out infinite alternate;
}
.scn-coriolanus-death .sword1 {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #c0b0a0 0%, #908070 100%);
  border-radius: 2px;
  transform-origin: bottom left;
  transform: rotate(25deg);
  box-shadow: 0 0 4px rgba(200,180,160,.4);
  animation: cd-sword1 3s ease-in-out infinite alternate;
}
.scn-coriolanus-death .sword2 {
  position: absolute; bottom: 28%; left: 52%; width: 4px; height: 65px;
  background: linear-gradient(180deg, #a89880 0%, #706050 100%);
  border-radius: 2px;
  transform-origin: bottom left;
  transform: rotate(-15deg);
  box-shadow: 0 0 4px rgba(180,160,140,.4);
  animation: cd-sword2 3.5s ease-in-out infinite alternate-reverse;
}
.scn-coriolanus-death .sunburst {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffeaa0 0%, #dbbc70 40%, transparent 70%);
  filter: blur(8px);
  animation: cd-sunburst 8s ease-in-out infinite;
}
@keyframes cd-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cd-body {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(2px); }
}
@keyframes cd-aufidius {
  0% { transform: rotate(0); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-1deg) scaleY(0.98); }
}
@keyframes cd-sword1 {
  0% { transform: rotate(25deg) scaleY(1); }
  50% { transform: rotate(30deg) scaleY(0.95); }
  100% { transform: rotate(22deg) scaleY(1); }
}
@keyframes cd-sword2 {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-20deg) scaleY(0.95); }
  100% { transform: rotate(-12deg) scaleY(1); }
}
@keyframes cd-sunburst {
  0%, 100% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 0.9; }
}

/* aufidius-remorse */
.scn-aufidius-remorse {
  background: linear-gradient(180deg, #e8cf9a 0%, #b89060 50%, #4a3020 100%), radial-gradient(ellipse at 40% 80%, #e0c080 0%, transparent 50%);
}
.scn-aufidius-remorse .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f7e3b0 0%, #dbb878 60%, transparent);
  animation: ar-sky 15s ease-in-out infinite alternate;
}
.scn-aufidius-remorse .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a3a22 0%, #2c1a10 100%);
  border-radius: 30% 70% 0 0 / 10% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-aufidius-remorse .figure {
  position: absolute; bottom: 10%; left: 50%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  animation: ar-figure 6s ease-in-out infinite alternate;
}
.scn-aufidius-remorse .shadow {
  position: absolute; bottom: 0; left: 48%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  filter: blur(4px);
  transform: translateX(-50%);
  animation: ar-shadow 6s ease-in-out infinite alternate;
}
.scn-aufidius-remorse .beam {
  position: absolute; top: 5%; left: 35%; width: 8px; height: 300px;
  background: linear-gradient(180deg, rgba(255,230,150,0.6) 0%, transparent 70%);
  border-radius: 4px;
  transform-origin: top;
  transform: rotate(10deg);
  filter: blur(3px);
  animation: ar-beam 8s ease-in-out infinite;
}
@keyframes ar-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ar-figure {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(1px); }
}
@keyframes ar-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(-50%) scaleX(1.1); opacity: 0.6; }
  100% { transform: translateX(-50%) scaleX(0.95); opacity: 0.3; }
}
@keyframes ar-beam {
  0%, 100% { transform: rotate(10deg) scaleY(0.9); opacity: 0.5; }
  50% { transform: rotate(12deg) scaleY(1); opacity: 0.8; }
}

/* lords-mourning */
.scn-lords-mourning {
  background: linear-gradient(180deg, #eedbba 0%, #c6a070 40%, #3a2820 100%), radial-gradient(ellipse at 50% 100%, #fff0d0 0%, transparent 70%);
}
.scn-lords-mourning .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f7eac0 0%, #e0c890 60%, transparent);
  animation: lm-sky 12s ease-in-out infinite alternate;
}
.scn-lords-mourning .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a3020 0%, #1e120a 100%);
  border-radius: 50% 50% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-lords-mourning .bier {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 20px;
  background: linear-gradient(90deg, #6a4a32 0%, #8a6040 50%, #6a4a32 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: lm-bier 7s ease-in-out infinite;
}
.scn-lords-mourning .attendant-left {
  position: absolute; bottom: 17%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 10% 20% 10% 10% / 40% 50% 30% 30%;
  transform-origin: bottom;
  transform: rotate(5deg);
  animation: lm-attendant-left 5s ease-in-out infinite alternate;
}
.scn-lords-mourning .attendant-right {
  position: absolute; bottom: 17%; right: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 20% 10% 10% 10% / 50% 40% 30% 30%;
  transform-origin: bottom;
  transform: rotate(-5deg);
  animation: lm-attendant-right 5s ease-in-out infinite alternate-reverse;
}
.scn-lords-mourning .herald {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a281a 0%, #1a0e06 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  animation: lm-herald 8s ease-in-out infinite;
}
@keyframes lm-sky {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes lm-bier {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}
@keyframes lm-attendant-left {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(-2px); }
  100% { transform: rotate(6deg) translateX(1px); }
}
@keyframes lm-attendant-right {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-6deg) translateX(-1px); }
}
@keyframes lm-herald {
  0%, 100% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
}

/* funeral-march */
.scn-funeral-march {
  background: linear-gradient(180deg, #f0ddb0 0%, #c8a068 40%, #3a2820 100%), radial-gradient(ellipse at 20% 50%, #fff0d0 0%, transparent 50%);
}
.scn-funeral-march .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f7eac0 0%, #e0c890 60%, transparent);
  animation: fm-sky 14s ease-in-out infinite alternate;
}
.scn-funeral-march .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a3020 0%, #1e120a 100%);
  border-radius: 40% 60% 0 0 / 15% 35% 0 0;
  box-shadow: inset 0 8px 24px rgba(0,0,0,.6);
}
.scn-funeral-march .drum {
  position: absolute; bottom: 25%; left: 15%; width: 40px; height: 30px;
  background: linear-gradient(90deg, #5a3a22 0%, #7a5a3a 50%, #5a3a22 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  animation: fm-drum 4s ease-in-out infinite;
}
.scn-funeral-march .pike1 {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  transform: rotate(-5deg);
  box-shadow: inset 0 0 4px rgba(0,0,0,.3);
  animation: fm-pike1 6s ease-in-out infinite alternate;
}
.scn-funeral-march .pike2 {
  position: absolute; bottom: 30%; left: 70%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  transform: rotate(5deg);
  box-shadow: inset 0 0 4px rgba(0,0,0,.3);
  animation: fm-pike2 6s ease-in-out infinite alternate-reverse;
}
.scn-funeral-march .body {
  position: absolute; bottom: 15%; left: 40%; width: 90px; height: 25px;
  background: linear-gradient(180deg, #6b4226 0%, #3a2515 100%);
  border-radius: 5% 5% 20% 20% / 10% 10% 40% 40%;
  transform: rotate(-3deg);
  box-shadow: 0 -2px 6px rgba(0,0,0,.5);
  animation: fm-body 5s ease-in-out infinite;
}
.scn-funeral-march .banner {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #1a0e06 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  transform: translateX(-50%);
  animation: fm-banner 8s ease-in-out infinite;
}
@keyframes fm-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fm-drum {
  0%, 100% { transform: rotate(10deg) scaleX(1); }
  50% { transform: rotate(12deg) scaleX(0.9); }
}
@keyframes fm-pike1 {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-8deg) scaleY(1.02); }
  100% { transform: rotate(-3deg) scaleY(0.98); }
}
@keyframes fm-pike2 {
  0% { transform: rotate(5deg) scaleY(1); }
  50% { transform: rotate(8deg) scaleY(1.02); }
  100% { transform: rotate(3deg) scaleY(0.98); }
}
@keyframes fm-body {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(2px); }
}
@keyframes fm-banner {
  0%, 100% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(5deg); }
}

/* second-messenger-joy */
.scn-second-messenger-joy {
  background:
    linear-gradient(180deg, #ffe8a0 0%, #ffd080 30%, #ffb060 60%, #ff9030 100%),
    radial-gradient(ellipse at 70% 30%, #fff4c0 0%, transparent 60%);
}
.scn-second-messenger-joy .sun {
  position: absolute; top:8%; left:25%; width:80px; height:80px;
  background: radial-gradient(circle, #fff8d0 0%, #ffcc44 40%, #ff9900 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ffcc44, 0 0 120px 60px rgba(255,204,68,0.3);
  animation: smj-sun 6s ease-in-out infinite alternate;
}
.scn-second-messenger-joy .rays {
  position: absolute; top:10%; left:20%; width:120px; height:120px;
  background: repeating-conic-gradient(transparent 0deg, #fff4b0 6deg, transparent 12deg);
  transform-origin: center;
  border-radius: 50%;
  opacity: 0.5;
  animation: smj-rays 20s linear infinite;
}
.scn-second-messenger-joy .arch {
  position: absolute; bottom:30%; left:30%; width:200px; height:160px;
  background: radial-gradient(ellipse at 50% 100%, #c8a87c 0%, #a08050 50%, #806040 100%);
  border-radius: 50% / 70% 70% 30% 30%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3), 0 10px 20px rgba(0,0,0,0.2);
  transform: scaleX(0.6);
}
.scn-second-messenger-joy .figure-run {
  position: absolute; bottom:28%; left:35%; width:22px; height:40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: smj-run 0.8s ease-in-out infinite alternate, smj-move 4s ease-in-out infinite alternate;
}
.scn-second-messenger-joy .banner {
  position: absolute; bottom:40%; left:55%; width:40px; height:60px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%);
  transform-origin: left bottom;
  animation: smj-banner 1.2s ease-in-out infinite alternate;
}
.scn-second-messenger-joy .cloud-joy {
  position: absolute; top:20%; right:10%; width:90px; height:25px;
  background: linear-gradient(90deg, rgba(255,255,200,0.6), rgba(255,255,200,0.1));
  border-radius: 50%;
  filter: blur(8px);
  animation: smj-cloud 30s linear infinite, smj-float 9s ease-in-out infinite alternate;
}
.scn-second-messenger-joy .dust {
  position: absolute; bottom:25%; left:30%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(200,180,120,0.4), transparent);
  border-radius: 50%;
  filter: blur(5px);
  animation: smj-dust 3s ease-in-out infinite alternate;
}
@keyframes smj-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 20px #ffcc44; } 100% { transform: scale(1.05); box-shadow: 0 0 80px 40px #ffe080; } }
@keyframes smj-rays { 0% { transform: rotate(0deg) scale(0.8); } 50% { transform: rotate(180deg) scale(1.1); } 100% { transform: rotate(360deg) scale(0.8); } }
@keyframes smj-run { 0% { transform: rotate(-8deg) translateY(0); } 100% { transform: rotate(8deg) translateY(-3px); } }
@keyframes smj-move { 0% { left:30%; } 50% { left:50%; } 100% { left:30%; } }
@keyframes smj-banner { 0% { transform: rotate(-5deg) scaleY(0.9); } 100% { transform: rotate(5deg) scaleY(1.1); } }
@keyframes smj-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }
@keyframes smj-float { 0% { transform: translateY(0); } 100% { transform: translateY(-10px); } }
@keyframes smj-dust { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 100% { transform: translate(10px,-5px) scale(1.5); opacity:0.1; } }

/* rome-rejoicing */
.scn-rome-rejoicing {
  background:
    linear-gradient(180deg, #ffe8b0 0%, #ffd080 30%, #ffb860 60%, #ff9030 100%),
    radial-gradient(ellipse at 40% 20%, #fff0d0 0%, transparent 50%);
}
.scn-rome-rejoicing .sky-wide {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffeac0 0%, #ffd080 40%, transparent 100%);
}
.scn-rome-rejoicing .sun-large {
  position: absolute; top:8%; left:45%; width:100px; height:100px;
  background: radial-gradient(circle, #fff4c0 0%, #ffcc44 40%, #ff8800 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px #ffcc44, 0 0 160px 80px rgba(255,204,68,0.3);
  animation: rre-sun 8s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .city-skyline {
  position: absolute; bottom:25%; left:5%; right:5%; height:80px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  clip-path: polygon(0% 100%, 8% 60%, 12% 100%, 18% 40%, 22% 100%, 30% 50%, 35% 100%, 45% 30%, 50% 100%, 60% 45%, 65% 100%, 75% 35%, 80% 100%, 90% 55%, 95% 100%, 100% 100%);
  animation: rre-sway 12s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .crowd {
  position: absolute; bottom:20%; left:10%; right:10%; height:30px;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, transparent 6px, transparent 12px);
  filter: blur(1px);
  animation: rre-crowd 3s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .trumpet-left {
  position: absolute; bottom:35%; left:25%; width:16px; height:50px;
  background: linear-gradient(180deg, #c8a84c 0%, #a08030 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: bottom center;
  animation: rre-trumpet 1.5s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .trumpet-right {
  position: absolute; bottom:35%; right:25%; width:16px; height:50px;
  background: linear-gradient(180deg, #c8a84c 0%, #a08030 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: bottom center;
  animation: rre-trumpet 1.5s ease-in-out infinite alternate-reverse;
}
.scn-rome-rejoicing .banner-wind {
  position: absolute; bottom:40%; left:50%; width:60px; height:40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  clip-path: polygon(0 0, 100% 10%, 80% 50%, 100% 90%, 0 100%);
  transform: translateX(-50%);
  animation: rre-banner 0.7s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .confetti {
  position: absolute; top:15%; left:0; width:10px; height:10px;
  background: radial-gradient(circle, #ffd080, transparent);
  border-radius: 50%;
  box-shadow: 20px 30px 0 #f8b060, -10px 50px 0 #e8a040, 40px 70px 0 #d89030, -30px 90px 0 #c88020;
  animation: rre-confetti 5s linear infinite;
}
.scn-rome-rejoicing .gleam {
  position: absolute; top:10%; left:30%; width:40px; height:40px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: rre-gleam 4s ease-in-out infinite alternate;
}
@keyframes rre-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 30px #ffcc44; } 50% { transform: scale(1.05); box-shadow: 0 0 100px 50px #ffe080; } 100% { transform: scale(1); box-shadow: 0 0 80px 40px #ffcc44; } }
@keyframes rre-sway { 0% { transform: scaleX(0.98); } 100% { transform: scaleX(1.02); } }
@keyframes rre-crowd { 0% { transform: translateY(0); opacity:0.8; } 100% { transform: translateY(-3px); opacity:1; } }
@keyframes rre-trumpet { 0% { transform: rotate(-15deg) scaleY(0.9); } 50% { transform: rotate(0deg) scaleY(1.1); } 100% { transform: rotate(15deg) scaleY(0.9); } }
@keyframes rre-banner { 0% { transform: translateX(-50%) rotate(-8deg); } 100% { transform: translateX(-50%) rotate(8deg); } }
@keyframes rre-confetti { 0% { transform: translate(0,0) rotate(0deg); } 100% { transform: translate(60px,80px) rotate(360deg); } }
@keyframes rre-gleam { 0% { opacity:0.2; transform: scale(0.8); } 100% { opacity:0.6; transform: scale(1.3); } }

/* menenius-praise */
.scn-menenius-praise {
  background:
    linear-gradient(180deg, #ffe8a0 0%, #ffd080 40%, #ffb060 80%, #f09820 100%),
    radial-gradient(ellipse at 60% 20%, #fff4c0 0%, transparent 70%);
}
.scn-menenius-praise .bg-temple {
  position: absolute; bottom:30%; left:20%; right:20%; height:200px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  clip-path: polygon(10% 100%, 20% 0%, 80% 0%, 90% 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-menenius-praise .sun-half {
  position: absolute; top:5%; left:45%; width:120px; height:120px;
  background: radial-gradient(circle, #fff8d0 0%, #ffcc44 40%, #ff9900 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 100px 50px #ffcc44, 0 0 200px 100px rgba(255,204,68,0.3);
  animation: mep-sun 10s ease-in-out infinite alternate;
}
.scn-menenius-praise .rays-soft {
  position: absolute; top:5%; left:45%; width:200px; height:200px;
  background: repeating-conic-gradient(transparent 0deg, rgba(255,240,180,0.3) 5deg, transparent 10deg);
  border-radius: 50%;
  transform-origin: center;
  animation: mep-rays 25s linear infinite;
}
.scn-menenius-praise .menenius {
  position: absolute; bottom:32%; left:30%; width:30px; height:60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mep-bow 4s ease-in-out infinite alternate;
}
.scn-menenius-praise .volumnia {
  position: absolute; bottom:30%; right:35%; width:25px; height:55px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mep-bow 4s ease-in-out infinite alternate-reverse;
}
.scn-menenius-praise .wreath {
  position: absolute; bottom:55%; left:50%; width:30px; height:15px;
  background: radial-gradient(ellipse at 50% 50%, #7a9a3a 0%, #4a6a1a 50%, transparent 60%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: mep-wreath 5s ease-in-out infinite alternate;
}
.scn-menenius-praise .pedestal {
  position: absolute; bottom:28%; left:35%; right:35%; height:15px;
  background: linear-gradient(180deg, #b8a888 0%, #988868 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 5px 10px rgba(0,0,0,0.3);
}
@keyframes mep-sun { 0% { transform: scale(0.95) translateY(0); } 50% { transform: scale(1.05) translateY(-5px); } 100% { transform: scale(1) translateY(0); } }
@keyframes mep-rays { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes mep-bow { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes mep-wreath { 0% { transform: translateX(-50%) rotate(-10deg) scale(0.9); } 100% { transform: translateX(-50%) rotate(10deg) scale(1.1); } }

/* senators-thanks */
.scn-senators-thanks {
  background:
    linear-gradient(180deg, #ffe8b0 0%, #ffd080 30%, #ffb060 60%, #e89020 100%),
    radial-gradient(ellipse at 50% 15%, #fff0d0 0%, transparent 60%);
}
.scn-senators-thanks .bg-columns {
  position: absolute; bottom:25%; left:15%; right:15%; height:180px;
  background: linear-gradient(90deg, #b8a888 20%, transparent 20%, transparent 80%, #b8a888 80%);
  border-top: 4px solid #c8b898;
  border-bottom: 4px solid #988868;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
}
.scn-senators-thanks .sun-low {
  position: absolute; bottom:45%; left:45%; width:120px; height:120px;
  background: radial-gradient(circle, #fff8d0 0%, #ffcc44 30%, #ff8800 60%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px #ffcc44, 0 0 150px 80px rgba(255,204,68,0.3);
  animation: sth-sun 9s ease-in-out infinite alternate;
}
.scn-senators-thanks .rays-beam {
  position: absolute; bottom:45%; left:45%; width:200px; height:200px;
  background: conic-gradient(from 0deg, transparent, rgba(255,240,180,0.2) 30deg, transparent 60deg, transparent 90deg, rgba(255,240,180,0.15) 120deg, transparent 150deg);
  border-radius: 50%;
  transform-origin: center;
  animation: sth-rays 30s linear infinite;
}
.scn-senators-thanks .senator-left {
  position: absolute; bottom:28%; left:25%; width:22px; height:55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sth-arm 2s ease-in-out infinite alternate;
}
.scn-senators-thanks .senator-center {
  position: absolute; bottom:28%; left:50%; width:24px; height:60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: sth-arm 2s ease-in-out infinite alternate-reverse;
}
.scn-senators-thanks .senator-right {
  position: absolute; bottom:28%; right:25%; width:22px; height:55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sth-arm 2s ease-in-out infinite alternate;
  animation-delay: -0.5s;
}
.scn-senators-thanks .offering {
  position: absolute; bottom:35%; left:48%; width:20px; height:20px;
  background: radial-gradient(circle, #d0b060 0%, #b09040 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(200,180,80,0.5);
  transform: translateX(-50%);
  animation: sth-offer 6s ease-in-out infinite alternate;
}
.scn-senators-thanks .star-sparkle {
  position: absolute; top:15%; left:30%; width:6px; height:6px;
  background: #fff8e0;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #fff8e0, 30px 40px 0 #ffe8b0, -20px 60px 0 #ffd080;
  animation: sth-sparkle 3s ease-in-out infinite alternate;
}
@keyframes sth-sun { 0% { transform: scale(0.95) translateY(0); opacity:0.9; } 100% { transform: scale(1.05) translateY(-8px); opacity:1; } }
@keyframes sth-rays { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.1); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes sth-arm { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes sth-offer { 0% { transform: translateX(-50%) translateY(0) scale(0.9); } 100% { transform: translateX(-50%) translateY(-10px) scale(1.1); } }
@keyframes sth-sparkle { 0% { opacity:0.3; transform: scale(0.5); } 100% { opacity:0.8; transform: scale(1.5); } }

/* coriolanus-reveals-himself */
.scn-coriolanus-reveals-himself {
  background: 
    radial-gradient(ellipse 80% 70% at 50% 60%, #3a1a0a 0%, #0d0500 60%),
    linear-gradient(180deg, #1a0800 0%, #0d0200 100%);
}
.scn-coriolanus-reveals-himself .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.8) 0%, transparent 40%, transparent 60%, rgba(0,0,0,0.9) 100%);
  animation: cr-bgshift 12s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .fire-core {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff7a33 0%, #cc4400 50%, transparent 80%);
  border-radius: 50%;
  animation: cr-fire 1.2s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .fire-glow {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,100,20,0.4) 0%, transparent 70%);
  animation: cr-glowpulse 3s ease-in-out infinite;
}
.scn-coriolanus-reveals-himself .figure-left {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1005 0%, #0d0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cr-figleft 8s ease-in-out infinite;
}
.scn-coriolanus-reveals-himself .figure-right {
  position: absolute; bottom: 30%; right: 20%; width: 44px; height: 85px;
  background: linear-gradient(180deg, #4a1a0a 0%, #1a0a02 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cr-figright 8s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .sword {
  position: absolute; bottom: 60%; left: 48%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c0a87a 0%, #8a7040 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cr-sword 0.8s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .shadow-stripe {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 50%, transparent 100%);
  animation: cr-stripe 6s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .spark {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffa040 0%, transparent 80%);
  border-radius: 50%;
  animation: cr-spark 2s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .spark-1 { top: 35%; left: 50%; animation-delay: 0.3s; }
.scn-coriolanus-reveals-himself .spark-2 { top: 45%; left: 48%; animation-delay: 0.9s; }

@keyframes cr-bgshift { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cr-fire { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.15); } 100% { transform: translateX(-50%) scaleY(0.9); } }
@keyframes cr-glowpulse { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes cr-figleft { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes cr-figright { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(3px) rotate(-1deg); } }
@keyframes cr-sword { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes cr-stripe { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes cr-spark { 0% { transform: translate(0,0) scale(0.8); opacity: 0.7; } 50% { transform: translate(-10px, -20px) scale(1.2); opacity: 1; } 100% { transform: translate(5px, -10px) scale(0.6); opacity: 0.3; } }

/* aufidius-embraces-enemy */
.scn-aufidius-embraces-enemy {
  background: 
    radial-gradient(ellipse 70% 50% at 50% 70%, #7a3a1a 0%, #2a1005 60%),
    linear-gradient(180deg, #1a0802 0%, #0d0300 100%);
}
.scn-aufidius-embraces-enemy .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(180,60,10,0.3) 0%, transparent 70%);
  animation: ae-warmpulse 6s ease-in-out infinite alternate;
}
.scn-aufidius-embraces-enemy .fire-glow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,160,40,0.5) 0%, transparent 70%);
  animation: ae-glow 4s ease-in-out infinite;
}
.scn-aufidius-embraces-enemy .embrace-core {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a2a0a 0%, #1a0a02 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: ae-embrace 8s ease-in-out infinite;
}
.scn-aufidius-embraces-enemy .arm-left {
  position: absolute; bottom: 45%; left: 30%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #4a1a08 0%, #2a0a02 100%);
  border-radius: 50% / 40% 40% 60% 60%;
  transform-origin: left center;
  animation: ae-arml 3s ease-in-out infinite;
}
.scn-aufidius-embraces-enemy .arm-right {
  position: absolute; bottom: 45%; right: 30%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #4a1a08 0%, #2a0a02 100%);
  border-radius: 50% / 40% 40% 60% 60%;
  transform-origin: right center;
  animation: ae-armr 3s ease-in-out infinite;
}
.scn-aufidius-embraces-enemy .warm-ray {
  position: absolute; width: 8px; height: 120px;
  background: linear-gradient(180deg, rgba(255,180,60,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ae-ray 12s linear infinite;
}
.scn-aufidius-embraces-enemy .ray-1 { top: 10%; left: 25%; transform: rotate(-20deg); animation-delay: 0s; }
.scn-aufidius-embraces-enemy .ray-2 { top: 5%; right: 20%; transform: rotate(25deg); animation-delay: 6s; }

@keyframes ae-warmpulse { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ae-glow { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes ae-embrace { 0%,100% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg); } }
@keyframes ae-arml { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }
@keyframes ae-armr { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes ae-ray { 0% { opacity: 1; } 50% { opacity: 0.4; } 100% { opacity: 1; } }

/* alliance-offered */
.scn-alliance-offered {
  background: 
    radial-gradient(ellipse 60% 40% at 50% 80%, #6a2a0a 0%, #1a0800 70%),
    linear-gradient(180deg, #0d0300 0%, #1a0800 100%);
}
.scn-alliance-offered .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.5) 100%);
}
.scn-alliance-offered .table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(180deg, #3a1a05 0%, #1a0a01 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.8);
  animation: ao-table 8s ease-in-out infinite;
}
.scn-alliance-offered .hand-left {
  position: absolute; bottom: 38%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a2a0a 0%, #2a1002 100%);
  border-radius: 40% 60% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom right;
  animation: ao-handl 3s ease-in-out infinite alternate;
}
.scn-alliance-offered .hand-right {
  position: absolute; bottom: 38%; right: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a2a0a 0%, #2a1002 100%);
  border-radius: 60% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  animation: ao-handr 3s ease-in-out infinite alternate;
}
.scn-alliance-offered .scroll {
  position: absolute; bottom: 30%; left: 46%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #c0a87a 0%, #8a7040 100%);
  border-radius: 4px 4px 8px 8px;
  transform-origin: center bottom;
  animation: ao-scroll 6s ease-in-out infinite;
}
.scn-alliance-offered .fire-glow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 80%;
  background: radial-gradient(ellipse at 50% 100%, rgba(220,80,10,0.5) 0%, transparent 70%);
  animation: ao-glow 4s ease-in-out infinite alternate;
}
.scn-alliance-offered .sparkle {
  position: absolute; top: 40%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffc040 0%, transparent 80%);
  border-radius: 50%;
  animation: ao-sparkle 2s ease-in-out infinite;
}

@keyframes ao-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ao-handl { 0% { transform: rotate(20deg) translateY(0); } 100% { transform: rotate(10deg) translateY(-3px); } }
@keyframes ao-handr { 0% { transform: rotate(-20deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-3px); } }
@keyframes ao-scroll { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) rotate(1deg); } 100% { transform: scaleY(0.95) rotate(-1deg); } }
@keyframes ao-glow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes ao-sparkle { 0% { transform: scale(0.5) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.5) rotate(180deg); opacity: 1; } 100% { transform: scale(0.8) rotate(360deg); opacity: 0.3; } }

/* servingmen-gossip */
.scn-servingmen-gossip {
  background: 
    radial-gradient(ellipse 70% 60% at 50% 70%, #8a4a1a 0%, #2a1005 60%),
    linear-gradient(180deg, #1a0800 0%, #0d0200 100%);
}
.scn-servingmen-gossip .bg-bright {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,80,20,0.2) 0%, transparent 70%);
  animation: sg-bright 6s ease-in-out infinite alternate;
}
.scn-servingmen-gossip .figure-a {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a1808 0%, #1a0a02 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sg-figa 3s ease-in-out infinite;
}
.scn-servingmen-gossip .figure-b {
  position: absolute; bottom: 30%; right: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a2008 0%, #2a0a02 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sg-figb 3.6s ease-in-out infinite;
}
.scn-servingmen-gossip .cudgel {
  position: absolute; bottom: 40%; left: 42%; width: 8px; height: 35px;
  background: linear-gradient(180deg, #6a4a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: sg-cudgel 1.6s ease-in-out infinite alternate;
}
.scn-servingmen-gossip .top {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, #a07040 0%, #603010 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
  animation: sg-top 0.4s linear infinite;
}
.scn-servingmen-gossip .fire-glow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 80%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,120,20,0.3) 0%, transparent 70%);
  animation: sg-glow 3s ease-in-out infinite alternate;
}
.scn-servingmen-gossip .dust {
  position: absolute; bottom: 25%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(160,120,80,0.6) 0%, transparent 80%);
  border-radius: 50%;
  animation: sg-dust 2s ease-in-out infinite;
}
.scn-servingmen-gossip .shadow-joke {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sg-shadow 4s ease-in-out infinite;
}

@keyframes sg-bright { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes sg-figa { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sg-figb { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-10px) rotate(-4deg); } 60% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sg-cudgel { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(30deg) scaleY(1.1); } 100% { transform: rotate(-20deg) scaleY(0.9); } }
@keyframes sg-top { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes sg-glow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes sg-dust { 0% { transform: translate(0,0) scale(0.8); opacity: 0.5; } 50% { transform: translate(-15px, -20px) scale(1.5); opacity: 0.2; } 100% { transform: translate(10px, -10px) scale(1); opacity: 0.8; } }
@keyframes sg-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.3); opacity: 0.6; } 100% { transform: scaleX(0.9); opacity: 0.4; } }

/* Scene: menenius-refuses-to-go */
.scn-menenius-refuses-to-go {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #b8956a 70%, #8a6e4e 100%),
    radial-gradient(ellipse at 30% 50%, #fff3d0 0%, transparent 60%),
    linear-gradient(180deg, #d4b896 0%, #c4a07a 100%);
}
.scn-menenius-refuses-to-go .backwall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0dfc0 0%, #d4b896 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.08);
}
.scn-menenius-refuses-to-go .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8956a 0%, #8a6e4e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-menenius-refuses-to-go .column-left {
  position: absolute; bottom: 30%; left: 8%;
  width: 16px; height: 70%;
  background: linear-gradient(90deg, #e0c8a0 0%, #b8956a 50%, #e0c8a0 100%);
  border-radius: 8px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.15);
}
.scn-menenius-refuses-to-go .column-right {
  position: absolute; bottom: 30%; right: 8%;
  width: 16px; height: 70%;
  background: linear-gradient(90deg, #e0c8a0 0%, #b8956a 50%, #e0c8a0 100%);
  border-radius: 8px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.15);
}
.scn-menenius-refuses-to-go .chair {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 60px;
  background: linear-gradient(180deg, #8a6030 0%, #604020 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: mrtg-chair 6s ease-in-out infinite;
}
@keyframes mrtg-chair { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
.scn-menenius-refuses-to-go .figure-menenius {
  position: absolute; bottom: 34%; left: 48%;
  width: 26px; height: 44px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: mrtg-figure-refuse 4s ease-in-out infinite;
}
@keyframes mrtg-figure-refuse {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-3px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
.scn-menenius-refuses-to-go .figure-cominius {
  position: absolute; bottom: 34%; left: 60%;
  width: 22px; height: 38px;
  background: linear-gradient(180deg, #a07850 0%, #704830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.25);
  animation: mrtg-figure-beside 5s ease-in-out infinite;
}
@keyframes mrtg-figure-beside {
  0%,100% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(-2px) translateY(-1px); }
  66% { transform: translateX(2px) translateY(0); }
}
.scn-menenius-refuses-to-go .sunbeam {
  position: absolute; top: 10%; left: 30%;
  width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,200,0.35) 0%, transparent 100%);
  transform: rotate(20deg);
  filter: blur(12px);
  animation: mrtg-sunbeam 8s ease-in-out infinite alternate;
}
@keyframes mrtg-sunbeam { 0% { opacity:0.4; transform: rotate(20deg) scaleY(1); } 100% { opacity:0.8; transform: rotate(22deg) scaleY(1.1); } }

/* Scene: cominius-tells-failure */
.scn-cominius-tells-failure {
  background:
    linear-gradient(180deg, #3a2a20 0%, #5a4030 30%, #7a5840 70%, #4a3828 100%),
    radial-gradient(ellipse at 50% 40%, #9a7040 0%, transparent 70%);
}
.scn-cominius-tells-failure .studiowall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a4030 0%, #4a3828 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}
.scn-cominius-tells-failure .desk {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #7a5830 0%, #5a3820 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-cominius-tells-failure .candle {
  position: absolute; bottom: 40%; left: 40%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c070 0%, #b89050 100%);
  border-radius: 3px;
  box-shadow: 0 0 20px 6px rgba(230,180,80,0.6), 0 0 40px 12px rgba(230,180,80,0.3);
  animation: ctf-candle 3s ease-in-out infinite alternate;
}
@keyframes ctf-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.8; } }
.scn-cominius-tells-failure .figure-cominius {
  position: absolute; bottom: 35%; left: 35%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #803020 0%, #602018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ctf-figure 5s ease-in-out infinite;
}
@keyframes ctf-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  30% { transform: translateX(-4px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
.scn-cominius-tells-failure .arm {
  position: absolute; bottom: 42%; left: 50%;
  width: 6px; height: 30px;
  background: linear-gradient(180deg, #803020 0%, #602018 100%);
  border-radius: 5px;
  transform-origin: top center;
  animation: ctf-arm 4s ease-in-out infinite;
}
@keyframes ctf-arm {
  0%,100% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-5px); }
}
.scn-cominius-tells-failure .glow {
  position: absolute; top: 30%; left: 35%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(230,180,80,0.25) 0%, transparent 70%);
  filter: blur(20px);
  animation: ctf-glow 6s ease-in-out infinite alternate;
}
@keyframes ctf-glow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
.scn-cominius-tells-failure .shadow {
  position: absolute; bottom: 20%; left: 30%;
  width: 80px; height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: ctf-shadow 5s ease-in-out infinite;
}
@keyframes ctf-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

/* Scene: menenius-hesitates */
.scn-menenius-hesitates {
  background:
    linear-gradient(180deg, #e0d2b8 0%, #c4b090 30%, #a08868 70%, #7a6048 100%),
    radial-gradient(ellipse at 20% 30%, #fff4d8 0%, transparent 60%);
}
.scn-menenius-hesitates .chamberwall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b09878 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-menenius-hesitates .window-frame {
  position: absolute; top: 15%; right: 10%;
  width: 70px; height: 100px;
  border: 6px solid #8a6a48;
  background: linear-gradient(180deg, #c8e0f0 0%, #e0f0ff 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: mh-window 12s ease-in-out infinite alternate;
}
@keyframes mh-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
.scn-menenius-hesitates .curtain-left {
  position: absolute; top: 15%; right: 20%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #b08060 0%, #906040 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform-origin: top;
  animation: mh-curtain 7s ease-in-out infinite alternate;
}
@keyframes mh-curtain { 0% { transform: skewX(5deg) scaleY(1); } 100% { transform: skewX(-5deg) scaleY(1.05); } }
.scn-menenius-hesitates .curtain-right {
  position: absolute; top: 15%; right: 8%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #b08060 0%, #906040 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform-origin: top;
  animation: mh-curtain 7s ease-in-out infinite alternate-reverse;
}
.scn-menenius-hesitates .figure-menenius {
  position: absolute; bottom: 30%; left: 30%;
  width: 28px; height: 46px;
  background: linear-gradient(180deg, #a06a48 0%, #704830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: mh-figure 4s ease-in-out infinite;
}
@keyframes mh-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  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(0deg); }
}
.scn-menenius-hesitates .sunbeam {
  position: absolute; top: 15%; left: 25%;
  width: 160px; height: 150px;
  background: linear-gradient(0deg, rgba(255,240,200,0.2) 0%, transparent 100%);
  filter: blur(10px);
  transform: rotate(-10deg);
  animation: mh-beam 10s ease-in-out infinite alternate;
}
@keyframes mh-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
.scn-menenius-hesitates .shadow-figure {
  position: absolute; bottom: 20%; left: 28%;
  width: 40px; height: 20px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(6px);
  animation: mh-shadow 4s ease-in-out infinite;
}
@keyframes mh-shadow { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(3px) scaleX(1.1); } }

/* Scene: menenius-accepts-mission */
.scn-menenius-accepts-mission {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #d0b898 30%, #b09070 70%, #8a6e50 100%),
    radial-gradient(ellipse at 60% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-menenius-accepts-mission .hallfloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #8a6e50 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-menenius-accepts-mission .throne {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 70px;
  background: linear-gradient(180deg, #c89660 0%, #a07040 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: mam-throne 5s ease-in-out infinite;
}
@keyframes mam-throne { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-1deg); } }
.scn-menenius-accepts-mission .figure-menenius {
  position: absolute; bottom: 28%; left: 45%;
  width: 26px; height: 48px;
  background: linear-gradient(180deg, #b07a50 0%, #805830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: mam-figure-stand 4s ease-in-out infinite;
}
@keyframes mam-figure-stand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(-2px) translateY(-3px) rotate(2deg); }
  40% { transform: translateX(0) translateY(-5px) rotate(0deg); }
  60% { transform: translateX(2px) translateY(-3px) rotate(-2deg); }
  80% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
.scn-menenius-accepts-mission .arm-reach {
  position: absolute; bottom: 40%; left: 52%;
  width: 8px; height: 34px;
  background: linear-gradient(180deg, #b07a50 0%, #805830 100%);
  border-radius: 6px;
  transform-origin: top center;
  animation: mam-arm 3s ease-in-out infinite;
}
@keyframes mam-arm {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(40deg); }
  50% { transform: rotate(20deg); }
  75% { transform: rotate(50deg); }
  100% { transform: rotate(0deg); }
}
.scn-menenius-accepts-mission .radiance {
  position: absolute; top: 20%; left: 40%;
  width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: mam-radiance 7s ease-in-out infinite alternate;
}
@keyframes mam-radiance { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
.scn-menenius-accepts-mission .shadow-bench {
  position: absolute; bottom: 15%; left: 40%;
  width: 60px; height: 14px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(5px);
  animation: mam-shadow 5s ease-in-out infinite;
}
@keyframes mam-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

/* Scene 1: tribunes-confrontation */
.scn-tribunes-confrontation {
  background: linear-gradient(180deg, #4a7a9a 0%, #7ab0c8 40%, #d4b880 100%), radial-gradient(ellipse at 30% 0%, #f8d090 0%, transparent 60%);
}
.scn-tribunes-confrontation .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a9abb 0%, #a8d0e0 60%, transparent 100%); animation: tc-sky 8s ease-in-out infinite alternate; }
.scn-tribunes-confrontation .sun { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle at 30% 40%, #f8c050 0%, #d09020 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(248,192,80,.6); animation: tc-sun 6s ease-in-out infinite alternate; }
.scn-tribunes-confrontation .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-tribunes-confrontation .column-left { position:absolute; bottom:30%; left:15%; width:20px; height:70px; background: linear-gradient(180deg, #b8a090 0%, #8a7060 100%); border-radius: 10% 10% 20% 20%; box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: tc-column 12s ease-in-out infinite; }
.scn-tribunes-confrontation .column-right { position:absolute; bottom:30%; right:15%; width:20px; height:70px; background: linear-gradient(180deg, #b8a090 0%, #8a7060 100%); border-radius: 10% 10% 20% 20%; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: tc-column 12s ease-in-out infinite reverse; }
.scn-tribunes-confrontation .coriolanus { position:absolute; bottom:38%; left:50%; width:30px; height:80px; margin-left:-15px; background: linear-gradient(180deg, #5e3a2a 0%, #3a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-figure 5s ease-in-out infinite; }
.scn-tribunes-confrontation .tribune { position:absolute; bottom:38%; left:30%; width:28px; height:76px; background: linear-gradient(180deg, #8a6050 0%, #5a3420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-figure 5s ease-in-out infinite reverse; }
.scn-tribunes-confrontation .cape { position:absolute; bottom:38%; left:50%; width:40px; height:60px; margin-left:-30px; background: linear-gradient(180deg, #a04030 0%, #701010 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; transform-origin: top center; animation: tc-cape 3s ease-in-out infinite alternate; }
@keyframes tc-sky { 0% { opacity:.8; transform: translateY(0); } 50% { opacity:.9; transform: translateY(-5px); } 100% { opacity:.7; transform: translateY(3px); } }
@keyframes tc-sun { 0% { box-shadow: 0 0 40px 10px rgba(248,192,80,.4); transform: scale(1); } 50% { box-shadow: 0 0 80px 25px rgba(248,192,80,.7); transform: scale(1.02); } 100% { box-shadow: 0 0 50px 15px rgba(248,192,80,.5); transform: scale(.98); } }
@keyframes tc-column { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes tc-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tc-cape { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* Scene 2: coriolanus-rage-corn-speech */
.scn-coriolanus-rage-corn-speech {
  background: linear-gradient(180deg, #3a5060 0%, #607080 40%, #b0a880 100%), radial-gradient(ellipse at 40% 0%, #c0a060 0%, transparent 70%);
}
.scn-coriolanus-rage-corn-speech .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a6070 0%, #809090 50%, transparent 100%); animation: rcs-sky 15s ease-in-out infinite alternate; }
.scn-coriolanus-rage-corn-speech .sun-pale { position:absolute; top:15%; left:50%; width:50px; height:50px; margin-left:-25px; background: radial-gradient(circle, #e0d0a0 0%, #b0a070 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,180,120,.4); animation: rcs-sun 10s ease-in-out infinite; }
.scn-coriolanus-rage-corn-speech .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #6a5a40 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-coriolanus-rage-corn-speech .stalk { position:absolute; bottom:40%; left:15%; width:8px; height:50px; background: linear-gradient(180deg, #6a7a30 0%, #3a4a10 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom center; animation: rcs-stalk 4s ease-in-out infinite; }
.scn-coriolanus-rage-corn-speech .stalk-left { left:22%; animation-delay: -2s; }
.scn-coriolanus-rage-corn-speech .coriolanus-rage { position:absolute; bottom:35%; left:45%; width:40px; height:90px; background: linear-gradient(180deg, #5a2a1a 0%, #2a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rcs-figure 3s ease-in-out infinite; }
.scn-coriolanus-rage-corn-speech .shadow { position:absolute; bottom:35%; left:38%; width:70px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius: 50%; animation: rcs-shadow 3s ease-in-out infinite; }
@keyframes rcs-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes rcs-sun { 0% { transform: scale(1); opacity:.6; } 50% { transform: scale(1.1); opacity:.9; } 100% { transform: scale(.95); opacity:.7; } }
@keyframes rcs-stalk { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes rcs-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(-3deg) scaleY(1.05); } 60% { transform: translateX(8px) rotate(4deg) scaleY(.95); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rcs-shadow { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.2); opacity:.7; } 100% { transform: scaleX(.9); opacity:.4; } }

/* Scene 3: mutiny-crowd */
.scn-mutiny-crowd {
  background: linear-gradient(180deg, #6a8aba 0%, #a0c0d8 50%, #d8c8a0 100%), radial-gradient(ellipse at 60% 20%, #f0c860 0%, transparent 60%);
}
.scn-mutiny-crowd .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8ab0d0 0%, #b8d8e8 60%, transparent 100%); animation: mc-sky 12s ease-in-out infinite alternate; }
.scn-mutiny-crowd .sun { position:absolute; top:8%; left:70%; width:70px; height:70px; background: radial-gradient(circle at 30% 30%, #f8d070 0%, #e0a040 50%, transparent 75%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(248,208,112,.5); animation: mc-sun 5s ease-in-out infinite; }
.scn-mutiny-crowd .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a6a50 0%, #4a3a2a 100%); border-radius: 10% 90% 0 0 / 30% 70% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.4); }
.scn-mutiny-crowd .crowd-fig { position:absolute; bottom:30%; width:18px; height:50px; background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-mutiny-crowd .crowd-fig-1 { left:20%; animation: mc-fig 3s ease-in-out infinite; }
.scn-mutiny-crowd .crowd-fig-2 { left:35%; animation: mc-fig 3s ease-in-out infinite reverse; animation-delay: -1s; }
.scn-mutiny-crowd .crowd-fig-3 { left:50%; animation: mc-fig 3s ease-in-out infinite; animation-delay: -2s; }
.scn-mutiny-crowd .tribune-speaker { position:absolute; bottom:30%; left:65%; width:28px; height:60px; background: linear-gradient(180deg, #8a6050 0%, #5a3420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-speaker 2.5s ease-in-out infinite; }
.scn-mutiny-crowd .banner { position:absolute; bottom:45%; left:60%; width:12px; height:40px; background: #a03828; border-radius: 10% 10% 40% 40%; transform-origin: bottom; animation: mc-banner 4s ease-in-out infinite; }
@keyframes mc-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes mc-sun { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(.95); } }
@keyframes mc-fig { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mc-speaker { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-2deg); } 60% { transform: translateY(1px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mc-banner { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-8deg); } }

/* Scene 4: coriolanus-sword */
.scn-coriolanus-sword {
  background: linear-gradient(180deg, #4a6070 0%, #809090 30%, #c0a080 100%), radial-gradient(ellipse at 40% 20%, #f0c060 0%, transparent 60%);
}
.scn-coriolanus-sword .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a7a8a 0%, #90a8b0 50%, transparent 100%); animation: cs-sky 10s ease-in-out infinite alternate; }
.scn-coriolanus-sword .sun-blood { position:absolute; top:12%; left:55%; width:55px; height:55px; background: radial-gradient(circle at 40% 30%, #f0c050 0%, #c08030 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(200,120,40,.5); animation: cs-sun 4s ease-in-out infinite; }
.scn-coriolanus-sword .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-coriolanus-sword .coriolanus-sword { position:absolute; bottom:30%; left:40%; width:40px; height:90px; background: linear-gradient(180deg, #5a2a1a 0%, #2a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-body 3s ease-in-out infinite; }
.scn-coriolanus-sword .sword-blade { position:absolute; bottom:70%; left:40%; width:6px; height:60px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 50%, #706050 100%); border-radius: 30% 30% 0 0; transform-origin: bottom center; animation: cs-sword 2s ease-in-out infinite; }
.scn-coriolanus-sword .attacker { position:absolute; bottom:30%; width:25px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-coriolanus-sword .attacker-1 { left:55%; animation: cs-attack 2.5s ease-in-out infinite; }
.scn-coriolanus-sword .attacker-2 { left:65%; animation: cs-attack 2.5s ease-in-out infinite reverse; animation-delay: -1.2s; }
.scn-coriolanus-sword .sparks { position:absolute; bottom:55%; left:48%; width:30px; height:30px; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #ffa030 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(255,160,48,.6); animation: cs-sparks .8s ease-in-out infinite alternate; }
@keyframes cs-sky { 0% { opacity:.8; transform: translateY(0); } 50% { opacity:.9; transform: translateY(-3px); } 100% { opacity:.7; transform: translateY(2px); } }
@keyframes cs-sun { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.08); opacity:1; } 100% { transform: scale(.95); opacity:.85; } }
@keyframes cs-body { 0% { transform: rotate(0deg); } 30% { transform: rotate(-5deg); } 60% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes cs-sword { 0% { transform: rotate(-15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); } }
@keyframes cs-attack { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(-3deg); } 50% { transform: translateX(5px) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cs-sparks { 0% { transform: scale(.8); opacity:.5; } 100% { transform: scale(1.3); opacity:1; } }

/* aufidius-feast (firelit, funny) */
.scn-aufidius-feast {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a2a 70%), radial-gradient(ellipse at 50% 60%, #8a4a2a 0%, transparent 60%);
}
.scn-aufidius-feast .wall-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); opacity:.9;
}
.scn-aufidius-feast .stone-arch {
  position:absolute; top:8%; left:20%; right:20%; height:35%;
  background: radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 70%); border-radius:50% 50% 0 0; filter: blur(4px);
  animation: af-arch 8s ease-in-out infinite alternate;
}
.scn-aufidius-feast .table {
  position:absolute; bottom:20%; left:15%; right:15%; height:12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6);
}
.scn-aufidius-feast .wine-jug {
  position:absolute; bottom:28%; left:35%; width:20px; height:30px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3020 100%); border-radius:40% 40% 20% 20%; transform:skewX(-10deg);
  animation: af-jug 5s ease-in-out infinite alternate;
}
.scn-aufidius-feast .cup-left {
  position:absolute; bottom:24%; left:30%; width:14px; height:16px;
  background: radial-gradient(circle at 30% 30%, #b08050 0%, #7a5020 100%); border-radius:0 0 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: af-cup 6s ease-in-out infinite;
}
.scn-aufidius-feast .cup-right {
  position:absolute; bottom:22%; left:50%; width:14px; height:16px;
  background: radial-gradient(circle at 30% 30%, #c09050 0%, #8a6030 100%); border-radius:0 0 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: af-cup 6s ease-in-out infinite 0.5s;
}
.scn-aufidius-feast .servant-wobbly {
  position:absolute; bottom:22%; left:20%; width:22px; height:50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: af-wobble 3s ease-in-out infinite;
}
.scn-aufidius-feast .servant-drowsy {
  position:absolute; bottom:20%; left:55%; width:20px; height:46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: af-drowsy 4s ease-in-out infinite alternate;
}
.scn-aufidius-feast .fire-glow {
  position:absolute; bottom:5%; left:45%; width:40px; height:60px;
  background: radial-gradient(circle, #ff8040 0%, #cc6020 40%, transparent 70%);
  filter: blur(12px); animation: af-fire 2s ease-in-out infinite alternate;
}
@keyframes af-arch { 0% { filter: blur(4px) scale(1); } 50% { filter: blur(6px) scale(1.02); } 100% { filter: blur(4px) scale(1); } }
@keyframes af-jug { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-8deg) translateY(-2px); } 100% { transform: skewX(-10deg) translateY(0); } }
@keyframes af-cup { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes af-wobble { 0% { transform: rotate(0deg) scaleX(1); } 30% { transform: rotate(5deg) scaleX(0.95); } 60% { transform: rotate(-4deg) scaleX(0.98); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes af-drowsy { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes af-fire { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(0.95); } }

/* coriolanus-mistreated (firelit, funny) */
.scn-coriolanus-mistreated {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2010 50%, #1a0a00 100%), radial-gradient(ellipse at 30% 70%, #6a3a1a 0%, transparent 60%);
}
.scn-coriolanus-mistreated .door-frame {
  position:absolute; top:10%; left:30%; right:30%; bottom:20%;
  border: 8px solid #4a2a1a; border-radius: 10% 10% 0 0; background: transparent; box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-coriolanus-mistreated .door-shadow {
  position:absolute; top:12%; left:32%; right:32%; bottom:22%;
  background: linear-gradient(to right, transparent 0%, rgba(0,0,0,.5) 50%, transparent 100%);
  animation: cm-door-shadow 6s ease-in-out infinite alternate;
}
.scn-coriolanus-mistreated .servant-figure {
  position:absolute; bottom:22%; left:38%; width:24px; height:55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right; animation: cm-servant 3s ease-in-out infinite;
}
.scn-coriolanus-mistreated .arm-push {
  position:absolute; bottom:32%; left:34%; width:20px; height:8px;
  background: #5a3a2a; border-radius: 40% 40% 0 0; transform-origin: right center;
  animation: cm-arm 2s ease-in-out infinite alternate;
}
.scn-coriolanus-mistreated .coriolanus-silhouette {
  position:absolute; bottom:20%; left:48%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg) scaleX(1.2); animation: cm-cor 4s ease-in-out infinite;
}
.scn-coriolanus-mistreated .cloak-flap {
  position:absolute; bottom:23%; left:50%; width:20px; height:30px;
  background: #0a0000; border-radius: 0 50% 0 0; transform-origin: top left;
  animation: cm-cloak 5s ease-in-out infinite;
}
.scn-coriolanus-mistreated .torch-flame {
  position:absolute; top:25%; left:20%; width:12px; height:20px;
  background: radial-gradient(circle at 50% 100%, #ff8040 0%, #cc6020 40%, transparent 70%);
  filter: blur(3px); animation: cm-torch 0.8s ease-in-out infinite alternate;
}
.scn-coriolanus-mistreated .spark.sp1 {
  position:absolute; top:28%; left:18%; width:4px; height:4px;
  background: #ffa060; border-radius: 50%; filter: blur(1px);
  animation: cm-spark 3s linear infinite;
}
.scn-coriolanus-mistreated .spark.sp2 {
  position:absolute; top:30%; left:22%; width:3px; height:3px;
  background: #ffa060; border-radius: 50%; filter: blur(1px);
  animation: cm-spark 4s linear infinite 1.5s;
}
@keyframes cm-door-shadow { 0% { opacity: .5; } 50% { opacity: .3; } 100% { opacity: .6; } }
@keyframes cm-servant { 0% { transform: rotate(0deg) translateX(0); } 20% { transform: rotate(5deg) translateX(2px); } 40% { transform: rotate(-3deg) translateX(-1px); } 60% { transform: rotate(4deg) translateX(3px); } 80% { transform: rotate(-2deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes cm-arm { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(20deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes cm-cor { 0% { transform: rotate(5deg) scaleX(1.2) translateY(0); } 50% { transform: rotate(4deg) scaleX(1.15) translateY(-2px); } 100% { transform: rotate(5deg) scaleX(1.2) translateY(0); } }
@keyframes cm-cloak { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes cm-torch { 0% { transform: scaleY(1); opacity: .9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.9); opacity: .8; } }
@keyframes cm-spark { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-20px) scale(0.5); opacity: .5; } 100% { transform: translateY(-40px) scale(0); opacity: 0; } }

/* coriolanus-fights-servants (firelit, funny) */
.scn-coriolanus-fights-servants {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2010 40%, #1a0a00 100%), radial-gradient(ellipse at 60% 60%, #6a3a1a 0%, transparent 60%);
}
.scn-coriolanus-fights-servants .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-coriolanus-fights-servants .wall {
  position:absolute; inset: 0 0 25% 0; background: linear-gradient(135deg, #2a1a0a 0%, #3a2010 100%); opacity:.8;
}
.scn-coriolanus-fights-servants .coriolanus-arm {
  position:absolute; bottom:15%; left:40%; width:35px; height:20px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 0 60% 40% 0; transform-origin: left center;
  animation: cf-arm 2.5s ease-in-out infinite alternate;
}
.scn-coriolanus-fights-servants .servant-flying {
  position:absolute; bottom:20%; left:20%; width:22px; height:45px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-30deg) translateX(-10px);
  animation: cf-fly 3s ease-in-out infinite;
}
.scn-coriolanus-fights-servants .servant2-stagger {
  position:absolute; bottom:18%; left:55%; width:20px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: cf-stagger 2s ease-in-out infinite;
}
.scn-coriolanus-fights-servants .wine-splash {
  position:absolute; bottom:25%; left:30%; width:15px; height:15px;
  background: radial-gradient(circle at 30% 30%, #b08040 0%, #8a6030 50%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: cf-splash 4s ease-in-out infinite alternate;
}
.scn-coriolanus-fights-servants .bench-tilted {
  position:absolute; bottom:10%; left:10%; right:60%; height:8px;
  background: linear-gradient(90deg, #6a4a2a 0%, #5a3a1a 100%); border-radius: 4px; transform: rotate(-15deg);
  animation: cf-bench 6s ease-in-out infinite;
}
.scn-coriolanus-fights-servants .shadow-fight {
  position:absolute; bottom:12%; left:45%; width:30px; height:40px;
  background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(6px);
  animation: cf-shadow 3s ease-in-out infinite alternate;
}
@keyframes cf-arm { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(20deg) scaleX(1.2); } 100% { transform: rotate(-5deg) scaleX(0.9); } }
@keyframes cf-fly { 0% { transform: rotate(-30deg) translateX(-10px) translateY(0); } 25% { transform: rotate(-20deg) translateX(-5px) translateY(-5px); } 50% { transform: rotate(-35deg) translateX(-15px) translateY(0); } 75% { transform: rotate(-25deg) translateX(-8px) translateY(-3px); } 100% { transform: rotate(-30deg) translateX(-10px) translateY(0); } }
@keyframes cf-stagger { 0% { transform: rotate(0deg) scaleX(1); } 20% { transform: rotate(10deg) scaleX(0.9); } 40% { transform: rotate(-5deg) scaleX(1.05); } 60% { transform: rotate(15deg) scaleX(0.85); } 80% { transform: rotate(-10deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes cf-splash { 0% { transform: scale(1) rotate(0deg); opacity:.9; } 50% { transform: scale(1.5) rotate(30deg); opacity:.6; } 100% { transform: scale(0.8) rotate(-20deg); opacity:.8; } }
@keyframes cf-bench { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(5px); } 100% { transform: rotate(-18deg) translateX(-3px); } }
@keyframes cf-shadow { 0% { transform: scale(1) translateX(0); opacity:.5; } 50% { transform: scale(1.3) translateX(10px); opacity:.7; } 100% { transform: scale(0.9) translateX(-5px); opacity:.4; } }

/* aufidius-recognizes-coriolanus (tense, firelit) */
.scn-aufidius-recognizes-coriolanus {
  background: linear-gradient(180deg, #1a0a00 0%, #2a1000 40%, #0a0000 100%), radial-gradient(ellipse at 40% 50%, #3a1a0a 0%, transparent 60%);
}
.scn-aufidius-recognizes-coriolanus .gloom {
  position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.6) 0%, transparent 50%, rgba(0,0,0,.4) 100%);
}
.scn-aufidius-recognizes-coriolanus .fire-pit {
  position:absolute; bottom:5%; left:45%; width:30px; height:20px;
  background: radial-gradient(circle at 50% 100%, #ff8040 0%, #cc6020 40%, transparent 60%);
  filter: blur(8px); animation: ar-fire 2s ease-in-out infinite alternate;
}
.scn-aufidius-recognizes-coriolanus .aufidius-profile {
  position:absolute; bottom:20%; left:35%; width:25px; height:60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 60% 40% 40% / 60% 70% 40% 40%;
  transform: scaleX(-1); animation: ar-auf 4s ease-in-out infinite;
}
.scn-aufidius-recognizes-coriolanus .coriolanus-profile {
  position:absolute; bottom:20%; left:50%; width:25px; height:60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 60% 40% 40% 40% / 70% 60% 40% 40%;
  animation: ar-cor 4s ease-in-out infinite 0.3s;
}
.scn-aufidius-recognizes-coriolanus .unmuffling-hand {
  position:absolute; bottom:30%; left:45%; width:10px; height:14px;
  background: #3a2010; border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom; animation: ar-hand 5s ease-in-out infinite alternate;
}
.scn-aufidius-recognizes-coriolanus .cloak-edge {
  position:absolute; bottom:15%; left:52%; width:15px; height:30px;
  background: #1a0a00; border-radius: 0 60% 0 0; transform: rotate(10deg);
  animation: ar-cloak 6s ease-in-out infinite;
}
.scn-aufidius-recognizes-coriolanus .breath-mist {
  position:absolute; bottom:45%; left:48%; width:8px; height:10px;
  background: radial-gradient(circle, rgba(200,200,200,.3) 0%, transparent 70%);
  filter: blur(3px); animation: ar-breath 3s ease-in-out infinite;
}
.scn-aufidius-recognizes-coriolanus .eye-glint {
  position:absolute; bottom:38%; left:52%; width:3px; height:3px;
  background: #d09050; border-radius: 50%; box-shadow: 0 0 6px 2px #d09050;
  animation: ar-eye 2s ease-in-out infinite alternate;
}
@keyframes ar-fire { 0% { transform: scale(1) translateY(0); opacity:.8; } 50% { transform: scale(1.2) translateY(-3px); opacity:1; } 100% { transform: scale(0.9) translateY(2px); opacity:.7; } }
@keyframes ar-auf { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-2px) rotate(-2deg); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes ar-cor { 0% { transform: translateX(0); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes ar-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(15deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(-1px); } }
@keyframes ar-cloak { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(8deg) scaleY(0.95); } }
@keyframes ar-breath { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-8px) scale(1.5); opacity:.1; } 100% { transform: translateY(0) scale(1); opacity:.3; } }
@keyframes ar-eye { 0% { box-shadow: 0 0 6px 2px #d09050; opacity:.8; } 50% { box-shadow: 0 0 10px 4px #e0a060; opacity:1; } 100% { box-shadow: 0 0 4px 1px #c08040; opacity:.6; } }

/* menenius-optimistic */
.scn-menenius-optimistic {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4c3a3 40%, #b89a7a 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255,230,170,0.3) 0%, transparent 80%);
}
.scn-menenius-optimistic .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c8b094 0%, #a58d6e 100%);
  animation: men1-wall 20s ease-in-out infinite alternate;
}
.scn-menenius-optimistic .window {
  position: absolute; top: 8%; right: 10%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #fff8dc 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px rgba(255,250,200,0.6), 0 0 20px rgba(255,240,180,0.3);
  animation: men1-window 15s ease-in-out infinite;
}
.scn-menenius-optimistic .table {
  position: absolute; bottom: 20%; left: 15%; right: 40%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: men1-table 12s ease-in-out infinite alternate;
}
.scn-menenius-optimistic .chair {
  position: absolute; bottom: 28%; left: 18%; width: 20%; height: 24%;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4% / 40% 40% 10% 10%;
  box-shadow: 6px 6px 12px rgba(0,0,0,0.4);
  animation: men1-chair 10s ease-in-out infinite alternate;
}
.scn-menenius-optimistic .figure {
  position: absolute; bottom: 22%; left: 22%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: men1-figure 5s ease-in-out infinite;
}
.scn-menenius-optimistic .candle {
  position: absolute; bottom: 28%; left: 26%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #f0d890 0%, #c8a050 50%, #8a6a30 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.6);
  animation: men1-candle 4s ease-in-out infinite alternate;
}
.scn-menenius-optimistic .scroll {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: men1-scroll 8s ease-in-out infinite;
}
@keyframes men1-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes men1-window {
  0% { filter: brightness(0.95); transform: scale(1); }
  50% { filter: brightness(1.1); transform: scale(1.02); }
  100% { filter: brightness(1); transform: scale(1); }
}
@keyframes men1-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes men1-chair {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes men1-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(4px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes men1-candle {
  0% { box-shadow: 0 0 12px 4px rgba(255,200,80,0.5); }
  50% { box-shadow: 0 0 28px 10px rgba(255,220,100,0.8); }
  100% { box-shadow: 0 0 18px 6px rgba(255,200,80,0.6); }
}
@keyframes men1-scroll {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}

/* tribunes-proud */
.scn-tribunes-proud {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a08868 100%),
    radial-gradient(ellipse at 50% 60%, rgba(220,200,160,0.4) 0%, transparent 70%);
}
.scn-tribunes-proud .chamber {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a888 100%);
  animation: tri2-chamber 18s ease-in-out infinite alternate;
}
.scn-tribunes-proud .platform {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
  animation: tri2-platform 20s ease-in-out infinite alternate;
}
.scn-tribunes-proud .tribune-left {
  position: absolute; bottom: 38%; left: 18%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tri2-tribune 7s ease-in-out infinite;
}
.scn-tribunes-proud .tribune-right {
  position: absolute; bottom: 38%; right: 18%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tri2-tribune 7s ease-in-out infinite reverse;
}
.scn-tribunes-proud .scroll-held {
  position: absolute; bottom: 42%; left: 22%; width: 8%; height: 12%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 20% 20% 5% 5%;
  transform: rotate(15deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: tri2-scroll 9s ease-in-out infinite;
}
.scn-tribunes-proud .pillar {
  position: absolute; bottom: 15%; left: 5%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #b8a090 0%, #d8c8b8 20%, #a89888 80%);
  border-radius: 20% 20% 0 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.2);
  animation: tri2-pillar 30s ease-in-out infinite alternate;
}
.scn-tribunes-proud .light-ray {
  position: absolute; top: 0; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 80% 100%, 20% 100%);
  animation: tri2-ray 12s ease-in-out infinite alternate;
}
@keyframes tri2-chamber {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes tri2-platform {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes tri2-tribune {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tri2-scroll {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(18deg) scale(1.05); }
  100% { transform: rotate(12deg) scale(0.95); }
}
@keyframes tri2-pillar {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes tri2-ray {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.35; transform: scaleY(0.95); }
}

/* news-of-volscian-invasion */
.scn-news-of-volscian-invasion {
  background:
    linear-gradient(180deg, #d4c4b0 0%, #b8a48c 30%, #8a7a6a 100%),
    radial-gradient(ellipse at 30% 80%, rgba(160,140,120,0.4) 0%, transparent 60%);
}
.scn-news-of-volscian-invasion .street {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  animation: vol3-street 14s ease-in-out infinite alternate;
}
.scn-news-of-volscian-invasion .messenger {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: vol3-messenger 3s ease-in-out infinite;
}
.scn-news-of-volscian-invasion .whip-shadow {
  position: absolute; bottom: 38%; left: 30%; width: 18%; height: 4%;
  background: #6a5a4a;
  border-radius: 50% 10% 50% 10%;
  transform: rotate(-25deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: vol3-whip 2s ease-in-out infinite;
}
.scn-news-of-volscian-invasion .citizen-a {
  position: absolute; bottom: 22%; left: 10%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vol3-citizen 6s ease-in-out infinite;
}
.scn-news-of-volscian-invasion .citizen-b {
  position: absolute; bottom: 24%; right: 12%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vol3-citizen 6s ease-in-out infinite 2s;
}
.scn-news-of-volscian-invasion .lantern {
  position: absolute; top: 10%; right: 20%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 12px rgba(255,200,100,0.5);
  animation: vol3-lantern 3s ease-in-out infinite alternate;
}
.scn-news-of-volscian-invasion .door {
  position: absolute; bottom: 0; right: 5%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.4);
  animation: vol3-door 10s ease-in-out infinite;
}
@keyframes vol3-street {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes vol3-messenger {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes vol3-whip {
  0% { transform: rotate(-25deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.2); }
  100% { transform: rotate(-35deg) scaleX(0.9); }
}
@keyframes vol3-citizen {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-4px) rotate(2deg); }
  66% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes vol3-lantern {
  0% { box-shadow: 0 0 20px 8px rgba(255,200,100,0.4); }
  50% { box-shadow: 0 0 40px 16px rgba(255,220,140,0.7); }
  100% { box-shadow: 0 0 25px 10px rgba(255,200,100,0.5); }
}
@keyframes vol3-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95) translateX(-2px); }
  100% { transform: scaleX(1); }
}

/* marcius-leads-volscians */
.scn-marcius-leads-volscians {
  background:
    linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 70% 50%, rgba(180,160,120,0.2) 0%, transparent 60%);
}
.scn-marcius-leads-volscians .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #4a5a6a 100%);
  animation: mar4-sky 20s ease-in-out infinite alternate;
}
.scn-marcius-leads-volscians .distant-rome {
  position: absolute; bottom: 20%; left: 5%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(10% 100%, 20% 10%, 30% 40%, 50% 0%, 70% 30%, 80% 20%, 90% 100%);
  border-radius: 10% 10% 0 0;
  animation: mar4-city 25s ease-in-out infinite;
}
.scn-marcius-leads-volscians .marcius {
  position: absolute; bottom: 15%; left: 45%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mar4-leader 5s ease-in-out infinite;
}
.scn-marcius-leads-volscians .aufidius {
  position: absolute; bottom: 16%; left: 62%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mar4-leader 5s ease-in-out infinite reverse;
}
.scn-marcius-leads-volscians .soldier-a {
  position: absolute; bottom: 18%; left: 35%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: mar4-soldier 7s ease-in-out infinite;
}
.scn-marcius-leads-volscians .soldier-b {
  position: absolute; bottom: 19%; right: 20%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: mar4-soldier 7s ease-in-out infinite 2s;
}
.scn-marcius-leads-volscians .banner {
  position: absolute; bottom: 58%; left: 48%; width: 4%; height: 20%;
  background: #a0461a; /* rust color, not crimson */
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: mar4-banner 4s ease-in-out infinite alternate;
}
@keyframes mar4-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mar4-city {
  0% { transform: translateX(0); }
  50% { transform: translateX(4px) scale(1.02); }
  100% { transform: translateX(0); }
}
@keyframes mar4-leader {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(6px) rotate(2deg); }
  66% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes mar4-soldier {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mar4-banner {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg) scaleX(1.1); }
  100% { transform: rotate(-3deg); }
}

/* volumnia-dissatisfaction */
.scn-volumnia-dissatisfaction {
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 40%, #120c08 100%), radial-gradient(ellipse at 50% 30%, #4a3524 0%, transparent 70%);
}
.scn-volumnia-dissatisfaction .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #2a2018, #3a2a1a 40%, #2a2018); border-radius: 0 0 20% 20%; box-shadow: inset 0 20px 40px rgba(0,0,0,0.6); }
.scn-volumnia-dissatisfaction .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1e1410 0%, #120c08 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-volumnia-dissatisfaction .figure-mother { position:absolute; bottom:18%; left:30%; width:60px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 60%, #1a0c08 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: -8px 0 20px rgba(0,0,0,0.5); animation: vd1-mother 4s ease-in-out infinite; }
.scn-volumnia-dissatisfaction .figure-son { position:absolute; bottom:18%; right:25%; width:55px; height:130px; transform:translateX(50%) scale(0.95); background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 35% 35% 50% 50% / 55% 55% 45% 45%; box-shadow: 8px 0 20px rgba(0,0,0,0.4); animation: vd1-son 3.5s ease-in-out infinite; }
.scn-volumnia-dissatisfaction .lamp { position:absolute; bottom:38%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #e8b060 0%, #b07030 80%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 6px #c08040, 0 0 60px 12px rgba(192,128,64,0.3); animation: vd1-lamp 2s ease-in-out infinite alternate; }
.scn-volumnia-dissatisfaction .shadow { position:absolute; bottom:0; left:20%; width:120px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 80%); border-radius: 50%; animation: vd1-shadow 4s ease-in-out infinite; }

@keyframes vd1-mother {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes vd1-son {
  0% { transform: translateX(50%) scale(0.95) translateY(0); }
  50% { transform: translateX(50%) scale(0.95) translateY(-2px); }
  100% { transform: translateX(50%) scale(0.95) translateY(0); }
}
@keyframes vd1-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 20px 4px #c08040; }
  50% { opacity: 1; box-shadow: 0 0 40px 10px #e0a050; }
  100% { opacity: 0.8; box-shadow: 0 0 25px 5px #c08040; }
}
@keyframes vd1-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.05); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

/* volumnia-pride */
.scn-volumnia-pride {
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 50%, #120c08 100%), radial-gradient(ellipse at 50% 60%, #3a2818 0%, transparent 60%);
}
.scn-volumnia-pride .bg-interior { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1410 0%, #2a1e14 50%, #1a1410 100%); border-radius: 0 0 30% 30%; }
.scn-volumnia-pride .kneeling-boy { position:absolute; bottom:22%; left:40%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; clip-path: polygon(0% 0%, 100% 0%, 80% 40%, 100% 100%, 0% 100%, 20% 40%); animation: vp2-kneel 3s ease-in-out infinite; }
.scn-volumnia-pride .figure-woman { position:absolute; bottom:18%; left:60%; width:50px; height:130px; transform:translateX(-50%); background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 60%, #1a0c08 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; animation: vp2-woman 4s ease-in-out infinite; }
.scn-volumnia-pride .window { position:absolute; top:12%; left:20%; width:70px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border: 4px solid #3a2a1a; border-radius: 8% 8% 0 0; box-shadow: inset 0 0 20px rgba(0,0,255,0.1); animation: vp2-window 12s ease-in-out infinite; }
.scn-volumnia-pride .candle-left { position:absolute; bottom:40%; left:30%; width:8px; height:18px; background: radial-gradient(circle at 50% 20%, #f0c060 0%, #c08040 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 16px 4px #d09050; animation: vp2-candle 1.5s ease-in-out infinite alternate; }
.scn-volumnia-pride .candle-right { position:absolute; bottom:40%; right:30%; width:8px; height:16px; background: radial-gradient(circle at 50% 20%, #f0c060 0%, #c08040 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 14px 3px #d09050; animation: vp2-candle 1.8s ease-in-out infinite alternate; animation-delay: 0.3s; }
.scn-volumnia-pride .rug { position:absolute; bottom:20%; left:30%; width:180px; height:20px; background: linear-gradient(90deg, #5e2a1d 0%, #702243 30%, #5e2a1d 70%, #702243 100%); border-radius: 50% 50% 20% 20% / 100% 100% 40% 40%; opacity: 0.6; }

@keyframes vp2-kneel {
  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 vp2-woman {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(1deg); }
}
@keyframes vp2-window {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes vp2-candle {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scaleY(1.1) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(1) rotate(-1deg); opacity: 0.85; }
}

/* item-kneeling-boy */
.scn-item-kneeling-boy {
  background: linear-gradient(180deg, #1a120e 0%, #100a06 40%, #080400 100%), radial-gradient(ellipse at 50% 40%, #2a1e14 0%, transparent 70%);
}
.scn-item-kneeling-boy .bg-dark { position:absolute; inset:0; background: linear-gradient(90deg, #0a0604 0%, #1a120e 50%, #0a0604 100%); }
.scn-item-kneeling-boy .kneeling-child { position:absolute; bottom:24%; left:50%; width:30px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; animation: kb3-child 3s ease-in-out infinite; }
.scn-item-kneeling-boy .arms-mother-left { position:absolute; bottom:38%; left:35%; width:12px; height:50px; transform:rotate(20deg); transform-origin: bottom center; background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 100%); border-radius: 40% 40% 50% 50%; animation: kb3-armL 3s ease-in-out infinite; }
.scn-item-kneeling-boy .arms-mother-right { position:absolute; bottom:38%; right:35%; width:12px; height:50px; transform:rotate(-20deg); transform-origin: bottom center; background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 100%); border-radius: 40% 40% 50% 50%; animation: kb3-armR 3s ease-in-out infinite; }
.scn-item-kneeling-boy .prayer-hands { position:absolute; bottom:32%; left:50%; width:10px; height:14px; transform:translateX(-50%); background: #3a2010; border-radius: 40% 40% 20% 20%; animation: kb3-hands 2s ease-in-out infinite; }
.scn-item-kneeling-boy .floor-line { position:absolute; bottom:20%; left:0; right:0; height:2px; background: #3a2a1a; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-item-kneeling-boy .light-beam { position:absolute; top:0; left:45%; width:10%; height:100%; background: linear-gradient(180deg, rgba(200,170,120,0.15) 0%, rgba(200,170,120,0.05) 80%, transparent 100%); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); animation: kb3-beam 8s ease-in-out infinite; }

@keyframes kb3-child {
  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 kb3-armL {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(20deg); }
}
@keyframes kb3-armR {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes kb3-hands {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes kb3-beam {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* coriolanus-mother */
.scn-coriolanus-mother {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 30%, #120c08 100%), radial-gradient(ellipse at 50% 20%, #4a3524 0%, transparent 60%);
}
.scn-coriolanus-mother .bg-temple { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #1a1410 0%, #2a1e14 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); }
.scn-coriolanus-mother .figure-mother { position:absolute; bottom:20%; left:30%; width:60px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 60%, #1a0c08 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; animation: cm4-mother 3.5s ease-in-out infinite; }
.scn-coriolanus-mother .figure-son { position:absolute; bottom:20%; right:30%; width:55px; height:140px; transform:translateX(50%) scale(0.95); background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 35% 35% 50% 50% / 55% 55% 45% 45%; animation: cm4-son 4s ease-in-out infinite; }
.scn-coriolanus-mother .light-from-heavens { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(230,200,160,0.2) 0%, rgba(230,200,160,0.05) 60%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 80% 100%, 20% 100%); animation: cm4-light 10s ease-in-out infinite; }
.scn-coriolanus-mother .altar { position:absolute; bottom:15%; left:50%; width:80px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-coriolanus-mother .shadow-oblong { position:absolute; bottom:0; left:20%; width:160px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 80%); border-radius: 50%; animation: cm4-shadow 4s ease-in-out infinite; }

@keyframes cm4-mother {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(1deg); }
}
@keyframes cm4-son {
  0% { transform: translateX(50%) scale(0.95) translateY(0) rotate(1deg); }
  50% { transform: translateX(50%) scale(0.95) translateY(-3px) rotate(0deg); }
  100% { transform: translateX(50%) scale(0.95) translateY(0) rotate(-1deg); }
}
@keyframes cm4-light {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.02); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes cm4-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.08); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-news-of-insurrection { background: linear-gradient(180deg, #5c6e7a 0%, #2e3b45 60%, #1a232b 100%), radial-gradient(ellipse at 50% 40%, #2e3b45 0%, transparent 70%); }
.scn-news-of-insurrection .ni-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a5b67 0%, transparent 100%); }
.scn-news-of-insurrection .ni-cloud { position:absolute; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter:blur(4px); }
.scn-news-of-insurrection .ni-cloud-a { top:15%; left:-5%; width:120px; animation: ni-drift-a 40s linear infinite; }
.scn-news-of-insurrection .ni-cloud-b { top:25%; left:20%; width:80px; animation: ni-drift-b 55s linear infinite reverse; }
.scn-news-of-insurrection .ni-buildings { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4048 0%, #1c2128 100%); border-radius: 20% 30% 0 0 / 60% 50% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.4); }
.scn-news-of-insurrection .ni-crowd { position:absolute; bottom:28%; width:40%; height:12%; background: radial-gradient(circle at 50% 100%, #2a3036 0%, transparent 100%); border-radius: 50% 50% 30% 30%; filter:blur(2px); }
.scn-news-of-insurrection .ni-crowd-left { left:10%; animation: ni-crowd-sway 6s ease-in-out infinite alternate; }
.scn-news-of-insurrection .ni-crowd-right { right:10%; animation: ni-crowd-sway 7s ease-in-out infinite alternate-reverse; }
.scn-news-of-insurrection .ni-orator { position:absolute; bottom:28%; left:50%; width:18px; height:32px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1e24 0%, #0a0e14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ni-orator-gesture 4s ease-in-out infinite; }
@keyframes ni-drift-a { 0% { transform:translateX(-30px); } 100% { transform:translateX(110vw); } }
@keyframes ni-drift-b { 0% { transform:translateX(0); } 100% { transform:translateX(-100vw); } }
@keyframes ni-crowd-sway { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.02); } 100% { transform:translateY(0) scale(0.98); } }
@keyframes ni-orator-gesture { 0% { transform:translateX(-50%) rotate(-2deg); } 25% { transform:translateX(-50%) translateY(-3px) rotate(2deg); } 50% { transform:translateX(-50%) rotate(-1deg); } 75% { transform:translateX(-50%) translateY(-1px) rotate(3deg); } 100% { transform:translateX(-50%) rotate(0deg); } }

.scn-volsce-army-ready { background: linear-gradient(180deg, #4a5b4f 0%, #2c3b30 50%, #1a261d 100%), radial-gradient(ellipse at 50% 100%, #2c3b30 0%, transparent 70%); }
.scn-volsce-army-ready .vr-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a6b5f 0%, transparent 100%); }
.scn-volsce-army-ready .vr-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #152015 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-volsce-army-ready .vr-tent { position:absolute; bottom:35%; width:60px; height:40px; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 10% 10% 40% 40%/30% 30% 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-volsce-army-ready .vr-tent-left { left:20%; animation: vr-tent-flutter 8s ease-in-out infinite; }
.scn-volsce-army-ready .vr-tent-right { right:20%; animation: vr-tent-flutter 9s ease-in-out infinite reverse; }
.scn-volsce-army-ready .vr-spear { position:absolute; bottom:28%; width:4px; height:70px; background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; }
.scn-volsce-army-ready .vr-spear-1 { left:35%; animation: vr-spear-sway 4s ease-in-out infinite; }
.scn-volsce-army-ready .vr-spear-2 { left:60%; animation: vr-spear-sway 4.5s ease-in-out infinite reverse; }
.scn-volsce-army-ready .vr-soldiers { position:absolute; bottom:26%; left:20%; right:20%; height:25%; background: radial-gradient(ellipse at 30% 60%, #2a3a2a 0%, transparent 100%), radial-gradient(ellipse at 70% 40%, #2a3a2a 0%, transparent 100%); filter:blur(3px); animation: vr-soldiers-breathe 6s ease-in-out infinite; }
.scn-volsce-army-ready .vr-commander { position:absolute; bottom:27%; left:48%; width:20px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #1a2a1a 0%, #0a150a 100%); border-radius: 40% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vr-commander-turn 10s ease-in-out infinite; }
@keyframes vr-tent-flutter { 0% { transform:skewX(0deg); } 50% { transform:skewX(2deg); } 100% { transform:skewX(-1deg); } }
@keyframes vr-spear-sway { 0% { transform:rotate(0deg); } 25% { transform:rotate(-2deg); } 75% { transform:rotate(3deg); } 100% { transform:rotate(0deg); } }
@keyframes vr-soldiers-breathe { 0% { opacity:0.7; } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.8; } }
@keyframes vr-commander-turn { 0% { transform:translateX(-50%) rotate(0deg); } 30% { transform:translateX(-50%) translateY(-2px) rotate(10deg); } 60% { transform:translateX(-50%) rotate(-5deg); } 100% { transform:translateX(-50%) rotate(0deg); } }

.scn-coriolanus-disguised { background: linear-gradient(180deg, #2a1f3e 0%, #1a1230 70%, #0d0a1a 100%), radial-gradient(ellipse at 50% 100%, #1a1230 0%, transparent 70%); }
.scn-coriolanus-disguised .cd-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2f5e 0%, transparent 100%); }
.scn-coriolanus-disguised .cd-moon { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #d0c8a0 0%, #b0a888 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,190,160,0.3); animation: cd-moon-glow 12s ease-in-out infinite alternate; }
.scn-coriolanus-disguised .cd-building-bg { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-coriolanus-disguised .cd-doorway { position:absolute; bottom:20%; left:50%; width:50px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a15 0%, #05050a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-coriolanus-disguised .cd-figure { position:absolute; bottom:28%; left:42%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-figure-walk 5s ease-in-out infinite; }
.scn-coriolanus-disguised .cd-window-light { position:absolute; bottom:40%; left:30%; width:20px; height:16px; background: radial-gradient(circle, #e8c880 0%, #b08030 70%); border-radius: 5% 5% 10% 10%; box-shadow: 0 0 20px 6px #b08030, 0 0 40px 12px rgba(176,128,48,0.3); animation: cd-window-flicker 3s ease-in-out infinite alternate; }
.scn-coriolanus-disguised .cd-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; }
@keyframes cd-moon-glow { 0% { opacity:0.7; transform:scale(0.95); } 100% { opacity:1; transform:scale(1.05); } }
@keyframes cd-figure-walk { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 25% { transform:translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform:translateX(16px) translateY(0) rotate(-1deg); } 75% { transform:translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform:translateX(30px) translateY(0) rotate(0); } }
@keyframes cd-window-flicker { 0% { box-shadow: 0 0 12px 4px #b08030, 0 0 24px 8px rgba(176,128,48,0.2); opacity:0.8; } 50% { box-shadow: 0 0 30px 10px #e8c880, 0 0 60px 20px rgba(232,200,128,0.4); opacity:1; } 100% { box-shadow: 0 0 18px 5px #b08030, 0 0 36px 10px rgba(176,128,48,0.3); opacity:0.9; } }

.scn-soliloquy-on-slipperiness { background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); }
.scn-soliloquy-on-slipperiness .ss-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); }
.scn-soliloquy-on-slipperiness .ss-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-soliloquy-on-slipperiness .ss-table { position:absolute; bottom:35%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-soliloquy-on-slipperiness .ss-chair { position:absolute; bottom:28%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; }
.scn-soliloquy-on-slipperiness .ss-chair-left { left:25%; animation: ss-chair-shift 8s ease-in-out infinite alternate; }
.scn-soliloquy-on-slipperiness .ss-chair-right { right:25%; animation: ss-chair-shift 9s ease-in-out infinite alternate-reverse; }
.scn-soliloquy-on-slipperiness .ss-figure { position:absolute; bottom:28%; width:22px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-soliloquy-on-slipperiness .ss-figure-left { left:27%; animation: ss-figure-left 5s ease-in-out infinite; }
.scn-soliloquy-on-slipperiness .ss-figure-right { right:27%; animation: ss-figure-right 5.5s ease-in-out infinite; }
.scn-soliloquy-on-slipperiness .ss-candle { position:absolute; bottom:38%; left:50%; width:6px; height:12px; background: linear-gradient(180deg, #e8c880 0%, #b08030 100%); border-radius: 2px 2px 10% 10%; box-shadow: 0 0 16px 4px #b08030, 0 0 32px 8px rgba(176,128,48,0.3); animation: ss-candle-glow 2s ease-in-out infinite alternate; }
.scn-soliloquy-on-slipperiness .ss-shadow { position:absolute; bottom:30%; left:40%; width:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%); animation: ss-shadow-sway 6s ease-in-out infinite; }
@keyframes ss-chair-shift { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes ss-figure-left { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 30% { transform:translateX(-4px) translateY(-2px) rotate(5deg); } 60% { transform:translateX(2px) translateY(0) rotate(-3deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes ss-figure-right { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 30% { transform:translateX(4px) translateY(-2px) rotate(-5deg); } 60% { transform:translateX(-2px) translateY(0) rotate(3deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes ss-candle-glow { 0% { box-shadow: 0 0 8px 2px #b08030, 0 0 16px 4px rgba(176,128,48,0.2); opacity:0.8; } 50% { box-shadow: 0 0 24px 6px #e8c880, 0 0 48px 12px rgba(232,200,128,0.4); opacity:1; } 100% { box-shadow: 0 0 12px 3px #b08030, 0 0 24px 6px rgba(176,128,48,0.3); opacity:0.9; } }
@keyframes ss-shadow-sway { 0% { transform:scaleX(1); opacity:0.6; } 50% { transform:scaleX(1.2) translateX(-5px); opacity:0.8; } 100% { transform:scaleX(0.9); opacity:0.5; } }

/* after-mutiny: tense + sunlit ship scene */
.scn-after-mutiny {
  background: linear-gradient(180deg, #87CEEB 0%, #f0d080 50%, #d4a050 100%), radial-gradient(ellipse at 50% 10%, #ffdf80 0%, transparent 60%);
}
.scn-after-mutiny .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0d8ff 0%, #a0c0e0 100%);
  animation: am-sky 8s ease-in-out infinite alternate;
}
.scn-after-mutiny .sun {
  position: absolute; top: 8%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffeb80 0%, #ffcc40 70%, transparent 100%);
  border-radius: 50%;
  animation: am-sun 3s ease-in-out infinite;
}
.scn-after-mutiny .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 50%, #0a2a4a 100%);
  animation: am-sea 5s ease-in-out infinite alternate;
}
.scn-after-mutiny .ship-hull {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: am-ship 4s ease-in-out infinite alternate;
}
.scn-after-mutiny .mast {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 50px;
  transform: translateX(-50%);
  background: #3a2a1a;
  border-radius: 2px;
  animation: am-ship 4s ease-in-out infinite alternate;
}
.scn-after-mutiny .figure {
  position: absolute; bottom: 24%; left: 46%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-figure 2s ease-in-out infinite;
}
.scn-after-mutiny .noise-ripple {
  position: absolute; bottom: 35%; left: 65%; width: 20px; height: 20px;
  border: 2px solid rgba(200,200,255,0.6);
  border-radius: 50%;
  animation: am-noise 2s ease-out infinite;
}
@keyframes am-sky {
  0% { opacity: 0.7; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 10%; }
  100% { opacity: 0.8; background-position: 0 5%; }
}
@keyframes am-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.9; }
}
@keyframes am-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes am-ship {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes am-figure {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(1.02) translateX(2px); }
  100% { transform: scaleY(0.98) translateX(-1px); }
}
@keyframes am-noise {
  0% { transform: scale(0.5); opacity: 0.8; }
  50% { transform: scale(1.5); opacity: 0.4; }
  100% { transform: scale(2); opacity: 0; }
}

/* tribunes-return-crowd: dark + sunlit public square */
.scn-tribunes-return-crowd {
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #ffda80 0%, transparent 70%);
}
.scn-tribunes-return-crowd .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  animation: tr-ground 6s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .podium {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: tr-podium 4s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .tribune1 {
  position: absolute; bottom: 38%; left: 40%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tr-tribune1 3s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .tribune2 {
  position: absolute; bottom: 38%; left: 54%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tr-tribune2 3.5s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .crowd-left {
  position: absolute; bottom: 10%; left: 5%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 100%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: tr-crowd-left 7s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .crowd-right {
  position: absolute; bottom: 10%; right: 5%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 100%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: tr-crowd-right 7s ease-in-out infinite alternate-reverse;
}
.scn-tribunes-return-crowd .banner {
  position: absolute; bottom: 47%; left: 60%; width: 6px; height: 40px;
  background: #4a3a2a;
  border-radius: 2px;
  animation: tr-banner 4s ease-in-out infinite;
}
.scn-tribunes-return-crowd .banner::before {
  content: ''; position: absolute; top: 0; left: 6px; width: 20px; height: 14px;
  background: #8a7050;
  border-radius: 20% 30% 20% 30%;
  animation: tr-flag 4s ease-in-out infinite;
}
@keyframes tr-ground {
  0% { opacity: 0.9; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 5%; }
  100% { opacity: 0.95; background-position: 0 2%; }
}
@keyframes tr-podium {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes tr-tribune1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes tr-tribune2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes tr-crowd-left {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(3px); }
}
@keyframes tr-crowd-right {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(-3px); }
}
@keyframes tr-banner {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes tr-flag {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.1); }
  100% { transform: rotate(-3deg) scaleX(0.9); }
}

/* menenius-pleads: dark + sunlit interior with pleading figure */
.scn-menenius-pleads {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%, #0a0000 100%), radial-gradient(ellipse at 60% 20%, #ffd080 0%, transparent 70%);
}
.scn-menenius-pleads .window {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0d0ff 0%, #80a0d0 100%);
  border: 4px solid #3a2a1a;
  border-radius: 10% 10% 4% 4%;
  animation: mp-window 8s ease-in-out infinite alternate;
}
.scn-menenius-pleads .light-beam {
  position: absolute; top: 18%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,220,150,0.5) 0%, transparent 100%);
  clip-path: polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%);
  animation: mp-light 4s ease-in-out infinite alternate;
}
.scn-menenius-pleads .wall-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.5);
}
.scn-menenius-pleads .wall-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.5);
}
.scn-menenius-pleads .floor {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-menenius-pleads .menenius {
  position: absolute; bottom: 8%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-menenius 2s ease-in-out infinite;
}
.scn-menenius-pleads .judges {
  position: absolute; bottom: 10%; right: 15%; width: 60px; height: 60px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: mp-judges 6s ease-in-out infinite alternate;
}
.scn-menenius-pleads .chains {
  position: absolute; bottom: 8%; left: 32%; width: 10px; height: 20px;
  border: 2px solid #8a7a5a;
  border-radius: 40%;
  background: transparent;
  animation: mp-chains 1.5s ease-in-out infinite;
}
@keyframes mp-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes mp-light {
  0% { transform: translateX(-50%) skewX(0deg); opacity: 0.5; }
  50% { transform: translateX(-50%) skewX(3deg); opacity: 0.8; }
  100% { transform: translateX(-50%) skewX(-2deg); opacity: 0.6; }
}
@keyframes mp-menenius {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(-2px, -2px) rotate(1deg); }
  60% { transform: translate(2px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes mp-judges {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes mp-chains {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

/* menenius-offers-bring: tense + sunlit threshold scene */
.scn-menenius-offers-bring {
  background: linear-gradient(180deg, #c0a060 0%, #a08040 30%, #6a5030 100%), radial-gradient(ellipse at 50% 20%, #ffdd80 0%, transparent 60%);
}
.scn-menenius-offers-bring .archway {
  position: absolute; bottom: 0; left: 50%; width: 120px; height: 100%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7040 0%, #4a3a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: mob-arch 10s ease-in-out infinite alternate;
}
.scn-menenius-offers-bring .door {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border: 4px solid #2a1a0a;
  border-radius: 6% 6% 4% 4%;
  animation: mob-door 6s ease-in-out infinite alternate;
}
.scn-menenius-offers-bring .menenius {
  position: absolute; bottom: 12%; left: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mob-menenius 2.5s ease-in-out infinite;
}
.scn-menenius-offers-bring .shadow-figure {
  position: absolute; bottom: 15%; right: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a00 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: mob-shadow 4s ease-in-out infinite alternate;
}
.scn-menenius-offers-bring .sunburst {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffeb80 0%, #ffcc40 30%, transparent 70%);
  animation: mob-sunburst 3s ease-in-out infinite alternate;
}
.scn-menenius-offers-bring .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  animation: mob-ground 8s ease-in-out infinite alternate;
}
@keyframes mob-arch {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.01); }
  100% { transform: translateX(-50%) scaleX(0.99); }
}
@keyframes mob-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  50% { transform: translateX(-50%) rotateY(8deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes mob-menenius {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(3px, -2px) rotate(2deg); }
  60% { transform: translate(-2px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes mob-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.7; }
  50% { transform: translateX(-3px) scaleX(1.05); opacity: 0.8; }
  100% { transform: translateX(2px) scaleX(0.95); opacity: 0.6; }
}
@keyframes mob-sunburst {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; }
}
@keyframes mob-ground {
  0% { background-position: 0 0; }
  50% { background-position: 0 5%; }
  100% { background-position: 0 2%; }
}

/* Scene 1: scene-marcius-enters-gates */
.scn-scene-marcius-enters-gates {
  background: 
    linear-gradient(180deg, #f7d794 0%, #f2c68b 30%, #c9914a 60%, #6b4226 100%),
    radial-gradient(ellipse at 30% 80%, #c9914a 0%, transparent 60%);
}
.scn-scene-marcius-enters-gates .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c4de 0%, #ebd6ad 100%);
  opacity: 0.6;
  animation: gts-sky 12s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters-gates .sun {
  position: absolute; top: 10%; left: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7e0 0%, #f5a623 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f5a623;
  animation: gts-sun 8s ease-in-out infinite;
}
.scn-scene-marcius-enters-gates .gate {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 350px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7c5c3e 0%, #3a2618 100%);
  border-radius: 80% 80% 20% 20% / 150% 150% 20% 20%;
  clip-path: polygon(0 0, 20% 0, 20% 100%, 80% 100%, 80% 0, 100% 0, 100% 100%, 0 100%);
  filter: drop-shadow(10px 10px 20px rgba(0,0,0,0.7));
  animation: gts-gate 6s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters-gates .trench {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 60% 60% / 0 0 100% 100%;
  animation: gts-trench 15s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters-gates .figure-marcius {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gts-figure 3s ease-in-out infinite;
}
.scn-scene-marcius-enters-gates .dust {
  position: absolute; top: 60%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,150,80,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: gts-dust 20s linear infinite;
}
.scn-scene-marcius-enters-gates .spear-left {
  position: absolute; bottom: 18%; left: 45%; width: 4px; height: 90px;
  background: linear-gradient(180deg, #6b4226, #3a2618);
  border-radius: 40% 40% 0 0;
  transform: rotate(-15deg);
  animation: gts-spear 5s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters-gates .spear-right {
  position: absolute; bottom: 16%; right: 40%; width: 4px; height: 100px;
  background: linear-gradient(180deg, #6b4226, #3a2618);
  border-radius: 40% 40% 0 0;
  transform: rotate(10deg);
  animation: gts-spear 5s ease-in-out infinite alternate-reverse;
}

@keyframes gts-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes gts-sun {
  0%, 100% { transform: scale(1) translateY(0); box-shadow: 0 0 60px 20px #f5a623; }
  50% { transform: scale(1.1) translateY(-5px); box-shadow: 0 0 80px 30px #f7d794; }
}
@keyframes gts-gate {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes gts-trench {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes gts-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(5deg); }
  50% { transform: translateX(10px) rotate(-2deg); }
  75% { transform: translateX(15px) rotate(3deg); }
}
@keyframes gts-dust {
  0% { transform: translateX(-100px); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.6; }
  100% { transform: translateX(100vw); opacity: 0; }
}
@keyframes gts-spear {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-10deg) scaleY(1.05); }
  100% { transform: rotate(-15deg) scaleY(1); }
}

/* Scene 2: scene-corioli-spoils */
.scn-scene-corioli-spoils {
  background:
    linear-gradient(180deg, #8b6f47 0%, #5a3e2b 30%, #2a1a0a 70%),
    radial-gradient(ellipse at 50% 0%, #c9914a 0%, transparent 50%);
}
.scn-scene-corioli-spoils .wall-left {
  position: absolute; bottom: 0; left: 0; width: 35%; height: 100%;
  background: linear-gradient(135deg, #4a2e1a, #2a1a0a 60%, #1a0a04);
  border-right: 4px solid #6b4226;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: spl-wall 20s ease-in-out infinite alternate;
}
.scn-scene-corioli-spoils .wall-right {
  position: absolute; bottom: 0; right: 0; width: 35%; height: 100%;
  background: linear-gradient(225deg, #4a2e1a, #2a1a0a 60%, #1a0a04);
  border-left: 4px solid #6b4226;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: spl-wall 20s ease-in-out infinite alternate-reverse;
}
.scn-scene-corioli-spoils .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a3e2b, #2a1a0a);
  border-radius: 30% 30% 0 0;
  animation: spl-ground 10s ease-in-out infinite alternate;
}
.scn-scene-corioli-spoils .spoil-pile {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #f5a623 0%, #c9914a 30%, #8b6f47 60%, #5a3e2b 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(245,166,35,0.4);
  animation: spl-spoil 5s ease-in-out infinite alternate;
}
.scn-scene-corioli-spoils .figure-roman-a {
  position: absolute; bottom: 10%; left: 20%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a04);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spl-figure 6s ease-in-out infinite;
}
.scn-scene-corioli-spoils .figure-roman-b {
  position: absolute; bottom: 12%; right: 20%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a04);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spl-figure 6s ease-in-out infinite 0.4s;
}
.scn-scene-corioli-spoils .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: spl-shadow 12s ease-in-out infinite alternate;
}

@keyframes spl-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(0.995); }
}
@keyframes spl-ground {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.95; }
}
@keyframes spl-spoil {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 30px 10px rgba(245,166,35,0.4); }
  50% { transform: scale(1.02) rotate(2deg); box-shadow: 0 0 40px 15px rgba(245,166,35,0.6); }
  100% { transform: scale(0.99) rotate(-1deg); box-shadow: 0 0 25px 8px rgba(245,166,35,0.3); }
}
@keyframes spl-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
}
@keyframes spl-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* Scene 3: scene-cominius-camp */
.scn-scene-cominius-camp {
  background:
    linear-gradient(180deg, #f7d794 0%, #e9b56c 40%, #c9914a 70%, #8b6f47 100%),
    radial-gradient(ellipse at 70% 90%, #c9914a 0%, transparent 50%);
}
.scn-scene-cominius-camp .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #f7d794 100%);
  opacity: 0.5;
  animation: cmp-sky 15s ease-in-out infinite alternate;
}
.scn-scene-cominius-camp .sun {
  position: absolute; top: 15%; left: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff7e0 0%, #f5a623 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px #f5a623;
  animation: cmp-sun 10s ease-in-out infinite;
}
.scn-scene-cominius-camp .tent-left {
  position: absolute; bottom: 15%; left: 15%; width: 120px; height: 100px;
  background: linear-gradient(135deg, #6b4226, #3a2618);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  filter: drop-shadow(5px 5px 10px rgba(0,0,0,0.5));
  animation: cmp-tent 8s ease-in-out infinite alternate;
}
.scn-scene-cominius-camp .tent-right {
  position: absolute; bottom: 18%; right: 20%; width: 100px; height: 80px;
  background: linear-gradient(225deg, #6b4226, #3a2618);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  filter: drop-shadow(5px -5px 10px rgba(0,0,0,0.5));
  animation: cmp-tent 8s ease-in-out infinite alternate-reverse;
}
.scn-scene-cominius-camp .campfire {
  position: absolute; bottom: 10%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff5cc 0%, #f5a623 40%, #c9914a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f5a623;
  animation: cmp-fire 3s ease-in-out infinite;
}
.scn-scene-cominius-camp .soldier-stand {
  position: absolute; bottom: 12%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a, #0d0804);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cmp-soldier 4s ease-in-out infinite;
}
.scn-scene-cominius-camp .soldier-kneel {
  position: absolute; bottom: 8%; left: 38%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a, #0d0804);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmp-soldier 4s ease-in-out infinite 1s;
}
.scn-scene-cominius-camp .flag {
  position: absolute; bottom: 22%; left: 10%; width: 3px; height: 80px;
  background: #3a2618;
  animation: cmp-flag 6s ease-in-out infinite alternate;
}
.scn-scene-cominius-camp .flag::after {
  content: '';
  position: absolute; top: 0; left: 0; width: 30px; height: 20px;
  background: #8b6f47;
  border-radius: 0 60% 0 0;
  animation: cmp-flagwave 6s ease-in-out infinite alternate;
}

@keyframes cmp-sky {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes cmp-sun {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.08) translateY(-4px); }
}
@keyframes cmp-tent {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes cmp-fire {
  0%, 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 50px 15px #f5a623; }
  50% { transform: translateX(-50%) scale(1.15); box-shadow: 0 0 70px 25px #f7d794; }
}
@keyframes cmp-soldier {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  75% { transform: translateX(1px) rotate(1deg); }
}
@keyframes cmp-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes cmp-flagwave {
  0% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transform: translateX(0); }
  50% { clip-path: polygon(0 0, 100% 20%, 100% 100%, 0 80%); transform: translateX(5px); }
  100% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transform: translateX(0); }
}

/* Scene 4: scene-cominius-strate */
.scn-scene-cominius-strate {
  background:
    linear-gradient(180deg, #8b6f47 0%, #5a3e2b 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 20%, #c9914a 0%, transparent 60%);
}
.scn-scene-cominius-strate .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: str-bg 20s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .table {
  position: absolute; bottom: 10%; left: 50%; width: 300px; height: 40px;
  transform: translateX(-50%) perspective(200px) rotateX(60deg);
  background: linear-gradient(180deg, #5a3e2b, #3a2618);
  border-radius: 10px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: str-table 15s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .map {
  position: absolute; bottom: 18%; left: 50%; width: 200px; height: 150px;
  transform: translateX(-50%) perspective(200px) rotateX(45deg);
  background: linear-gradient(135deg, #c9914a 0%, #e9b56c 50%, #f7d794 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 5px 15px rgba(0,0,0,0.5);
  animation: str-map 12s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .cominius-figure {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a04);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: str-figure 7s ease-in-out infinite;
}
.scn-scene-cominius-strate .marcius-figure {
  position: absolute; bottom: 22%; right: 25%; width: 38px; height: 85px;
  background: linear-gradient(180deg, #2a1a0a, #0d0804);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: str-figure 7s ease-in-out infinite 0.2s;
}
.scn-scene-cominius-strate .lantern {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 14px;
  background: radial-gradient(circle, #fff7e0 0%, #f5a623 60%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px #f5a623;
  animation: str-lantern 4s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .shadow-left {
  position: absolute; bottom: 0; left: 0; width: 50%; height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  pointer-events: none;
  animation: str-shadow 18s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .shadow-right {
  position: absolute; bottom: 0; right: 0; width: 50%; height: 100%;
  background: linear-gradient(270deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  pointer-events: none;
  animation: str-shadow 18s ease-in-out infinite alternate-reverse;
}

@keyframes str-bg {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.4; }
}
@keyframes str-table {
  0% { transform: translateX(-50%) perspective(200px) rotateX(60deg) scaleY(1); }
  50% { transform: translateX(-50%) perspective(200px) rotateX(58deg) scaleY(1.02); }
  100% { transform: translateX(-50%) perspective(200px) rotateX(62deg) scaleY(0.98); }
}
@keyframes str-map {
  0% { transform: translateX(-50%) perspective(200px) rotateX(45deg) scale(1); }
  50% { transform: translateX(-50%) perspective(200px) rotateX(43deg) scale(1.03); }
  100% { transform: translateX(-50%) perspective(200px) rotateX(47deg) scale(0.98); }
}
@keyframes str-figure {
  0%, 100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(3px) rotate(3deg) scaleY(1.02); }
  50% { transform: translateX(-3px) rotate(-3deg) scaleY(0.98); }
  75% { transform: translateX(1px) rotate(2deg) scaleY(1.01); }
}
@keyframes str-lantern {
  0% { box-shadow: 0 0 20px 6px #f5a623; opacity: 0.8; }
  50% { box-shadow: 0 0 40px 16px #f7d794; opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #f5a623; opacity: 0.9; }
}
@keyframes str-shadow {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.3; }
}

.scn-volumnia-rages { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #3a2a1a 100%), radial-gradient(ellipse at 60% 30%, #a06030 0%, transparent 70%); }
.scn-volumnia-rages .vr-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, rgba(180,120,60,0.3) 0%, transparent 60%); animation: vr-glow 6s ease-in-out infinite alternate; }
.scn-volumnia-rages .vr-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-volumnia-rages .vr-col-l { position:absolute; left:8%; bottom:35%; width:20px; height:65%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-volumnia-rages .vr-col-r { position:absolute; right:8%; bottom:35%; width:20px; height:65%; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%); border-radius:4px; }
.scn-volumnia-rages .vr-fig { position:absolute; left:50%; bottom:35%; width:50px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0e05 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: vr-fig 4s ease-in-out infinite; }
.scn-volumnia-rages .vr-arm { position:absolute; left:60%; bottom:65%; width:40px; height:10px; background: linear-gradient(90deg, #2a1a0a 0%, #1a0e05 100%); border-radius:5px; transform-origin:0 50%; animation: vr-arm 3s ease-in-out infinite; }
.scn-volumnia-rages .vr-torch { position:absolute; left:62%; bottom:70%; width:8px; height:8px; background: radial-gradient(circle, #ffcc80 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 12px 4px #b08040, 0 0 24px 8px rgba(176,128,64,0.5); animation: vr-torch 1.5s ease-in-out infinite alternate; }
@keyframes vr-glow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes vr-fig { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-48%) rotate(2deg); } 50% { transform:translateX(-50%) rotate(0deg); } 75% { transform:translateX(-52%) rotate(-2deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes vr-arm { 0% { transform:rotate(-20deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-20deg); } }
@keyframes vr-torch { 0% { transform:scale(1) rotate(-5deg); opacity:0.8; } 50% { transform:scale(1.2) rotate(5deg); opacity:1; } 100% { transform:scale(0.9) rotate(-5deg); opacity:0.7; } }

.scn-volumnia-curses { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #3a2a1a 100%), radial-gradient(ellipse at 70% 40%, #a06030 0%, transparent 70%); }
.scn-volumnia-curses .vc-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 40%, rgba(180,120,60,0.3) 0%, transparent 60%); animation: vc-glow 5s ease-in-out infinite alternate; }
.scn-volumnia-curses .vc-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-volumnia-curses .vc-col { position:absolute; left:10%; bottom:35%; width:16px; height:65%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-volumnia-curses .vc-figa { position:absolute; left:40%; bottom:35%; width:45px; height:75px; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: vc-figa 4.5s ease-in-out infinite; }
.scn-volumnia-curses .vc-figb { position:absolute; left:65%; bottom:35%; width:30px; height:55px; transform:scale(0.9); background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: vc-figb 6s ease-in-out infinite; }
.scn-volumnia-curses .vc-shadow { position:absolute; left:40%; bottom:0; width:70px; height:10px; background: #1a0e05; border-radius:50%; filter:blur(4px); animation: vc-shadow 4s ease-in-out infinite; }
.scn-volumnia-curses .vc-torch { position:absolute; left:50%; bottom:55%; width:7px; height:7px; background: radial-gradient(circle, #ffcc80 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 14px 5px #b08040; animation: vc-torch 2s ease-in-out infinite alternate; }
@keyframes vc-glow { 0% { opacity:0.8; } 50% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes vc-figa { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(-3px) rotate(3deg); } 60% { transform:translateX(0) rotate(0deg); } 100% { transform:translateX(2px) rotate(-2deg); } }
@keyframes vc-figb { 0% { transform:scale(0.9) translateX(0); } 50% { transform:scale(0.85) translateX(5px); } 100% { transform:scale(0.9) translateX(0); } }
@keyframes vc-shadow { 0% { transform:scaleX(1); opacity:0.4; } 50% { transform:scaleX(0.8); opacity:0.6; } 100% { transform:scaleX(1); opacity:0.4; } }
@keyframes vc-torch { 0% { transform:scale(1) rotate(-3deg); opacity:0.8; } 50% { transform:scale(1.15) rotate(3deg); opacity:1; } 100% { transform:scale(0.9) rotate(-3deg); opacity:0.7; } }

.scn-menenius-consoles { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #a06030 0%, transparent 70%); }
.scn-menenius-consoles .mc-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, rgba(180,120,60,0.2) 0%, transparent 60%); animation: mc-glow 7s ease-in-out infinite alternate; }
.scn-menenius-consoles .mc-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-menenius-consoles .mc-bench { position:absolute; left:40%; bottom:35%; width:30%; height:6px; background: #4a3a2a; border-radius:3px; animation: mc-bench 8s ease-in-out infinite; }
.scn-menenius-consoles .mc-figa { position:absolute; left:42%; bottom:38%; width:40px; height:70px; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-figa 5s ease-in-out infinite; }
.scn-menenius-consoles .mc-figb { position:absolute; left:55%; bottom:38%; width:35px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-figb 6s ease-in-out infinite; }
.scn-menenius-consoles .mc-lamp { position:absolute; left:70%; bottom:55%; width:10px; height:12px; background: radial-gradient(circle, #ffcc80 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 18px 6px #b08040; animation: mc-lamp 3s ease-in-out infinite alternate; }
.scn-menenius-consoles .mc-wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
@keyframes mc-glow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes mc-bench { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes mc-figa { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(2px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes mc-figb { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes mc-lamp { 0% { transform:scale(1) rotate(-5deg); opacity:0.8; } 50% { transform:scale(1.1) rotate(5deg); opacity:1; } 100% { transform:scale(0.9) rotate(-5deg); opacity:0.7; } }

.scn-roman-and-volsce-meet { background: linear-gradient(180deg, #4a4a4a 0%, #6a6a6a 30%, #8a8a8a 60%, #6a6a6a 100%), radial-gradient(ellipse at 50% 20%, #7a7a7a 0%, transparent 70%); }
.scn-roman-and-volsce-meet .rv-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a5a5a 0%, #7a7a7a 100%); animation: rv-sky 20s ease-in-out infinite alternate; }
.scn-roman-and-volsce-meet .rv-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); }
.scn-roman-and-volsce-meet .rv-road { position:absolute; bottom:15%; left:0; right:0; height:10%; background: linear-gradient(90deg, #5a5a4a 0%, #6a6a5a 50%, #5a5a4a 100%); border-radius:2px; }
.scn-roman-and-volsce-meet .rv-figr { position:absolute; left:25%; bottom:20%; width:35px; height:60px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleX(-1); animation: rv-figr 8s ease-in-out infinite; }
.scn-roman-and-volsce-meet .rv-figv { position:absolute; right:30%; bottom:20%; width:35px; height:60px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rv-figv 8s ease-in-out infinite; }
.scn-roman-and-volsce-meet .rv-shr { position:absolute; left:28%; bottom:15%; width:30px; height:4px; background: #2a2a2a; border-radius:50%; opacity:0.5; animation: rv-shr 8s ease-in-out infinite; }
.scn-roman-and-volsce-meet .rv-shv { position:absolute; right:33%; bottom:15%; width:30px; height:4px; background: #2a2a2a; border-radius:50%; opacity:0.5; animation: rv-shv 8s ease-in-out infinite; }
.scn-roman-and-volsce-meet .rv-cloud { position:absolute; top:5%; left:-20%; width:100px; height:15px; background: rgba(160,160,160,0.4); border-radius:50%; filter:blur(6px); animation: rv-cloud 40s linear infinite; }
@keyframes rv-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes rv-figr { 0%,100% { transform:scaleX(-1) translateX(0); } 50% { transform:scaleX(-1) translateX(-10px); } }
@keyframes rv-figv { 0%,100% { transform:translateX(0); } 50% { transform:translateX(10px); } }
@keyframes rv-shr { 0%,100% { transform:translateX(0); opacity:0.5; } 50% { transform:translateX(-10px); opacity:0.3; } }
@keyframes rv-shv { 0%,100% { transform:translateX(0); opacity:0.5; } 50% { transform:translateX(10px); opacity:0.3; } }
@keyframes rv-cloud { 0% { transform:translateX(0); } 100% { transform:translateX(100vw); } }

/* Scene: coriolanus-peace (tense, dim interior) */
.scn-coriolanus-peace {
  background: 
    linear-gradient(180deg, #1e1b18 0%, #2c2621 40%, #171412 100%),
    radial-gradient(ellipse at 50% 80%, #3a2e26 0%, transparent 70%);
}
.scn-coriolanus-peace .bg-cp { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 60%, #2a221c 0%, transparent 60%); animation: cp-bg 10s ease-in-out infinite alternate; }
.scn-coriolanus-peace .wall-cp { position:absolute; bottom:40%; left:5%; right:5%; height:55%; background:linear-gradient(180deg, #3d322a 0%, #2a1f18 100%); border-radius:4px; box-shadow:0 -4px 12px rgba(0,0,0,.6); }
.scn-coriolanus-peace .floor-cp { position:absolute; bottom:0; left:0; right:0; height:42%; background:linear-gradient(180deg, #1f1813 0%, #0f0c0a 100%); }
.scn-coriolanus-peace .figure-left { position:absolute; bottom:18%; left:22%; width:34px; height:72px; background:linear-gradient(180deg, #1f1a16 0%, #0f0c0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cp-fig-left 5s ease-in-out infinite; }
.scn-coriolanus-peace .figure-right { position:absolute; bottom:18%; right:22%; width:32px; height:68px; background:linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cp-fig-right 5s ease-in-out infinite; }
.scn-coriolanus-peace .lamp-cp { position:absolute; bottom:44%; left:50%; width:14px; height:20px; transform:translateX(-50%); background:radial-gradient(circle, #d8a864 0%, #a07030 50%, #503818 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: cp-lamp 2s ease-in-out infinite alternate; }
.scn-coriolanus-peace .shadow-cp { position:absolute; bottom:18%; left:18%; width:30%; height:20px; background:radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 60%); transform-origin:bottom; animation: cp-shadow 5s ease-in-out infinite; }
.scn-coriolanus-peace .dust-cp { position:absolute; top:20%; left:30%; width:60px; height:60px; background:radial-gradient(circle, rgba(200,180,160,.08) 0%, transparent 70%); filter:blur(4px); animation: cp-dust 20s linear infinite; }
@keyframes cp-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cp-fig-left { 0% { transform:translate(0,0) rotate(-0.5deg) } 25% { transform:translate(2px,-1px) rotate(0.5deg) } 50% { transform:translate(0,-2px) rotate(0deg) } 75% { transform:translate(-2px,-1px) rotate(-0.5deg) } 100% { transform:translate(0,0) rotate(0.5deg) } }
@keyframes cp-fig-right { 0% { transform:translate(0,0) rotate(0.5deg) } 25% { transform:translate(-2px,-1px) rotate(-0.5deg) } 50% { transform:translate(0,-2px) rotate(0deg) } 75% { transform:translate(2px,-1px) rotate(0.5deg) } 100% { transform:translate(0,0) rotate(-0.5deg) } }
@keyframes cp-lamp { 0% { box-shadow:0 0 14px 4px #b08040,0 0 28px 8px rgba(176,128,64,.3); opacity:.8 } 50% { box-shadow:0 0 26px 8px #e8c060,0 0 50px 16px rgba(232,192,96,.5); opacity:1 } 100% { box-shadow:0 0 18px 5px #b08040,0 0 34px 10px rgba(176,128,64,.35); opacity:.85 } }
@keyframes cp-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(0.95) } }
@keyframes cp-dust { 0% { transform:translate(0,0) } 100% { transform:translate(100px, -30px) } }

/* Scene: coriolanus-sweat (warm, dim interior) */
.scn-coriolanus-sweat {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3d2c24 30%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #4d382e 0%, transparent 60%);
}
.scn-coriolanus-sweat .bg-cs { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%, #3a2a22 0%, transparent 50%); animation: cs-bg 8s ease-in-out infinite alternate; }
.scn-coriolanus-sweat .head-cs { position:absolute; bottom:20%; left:50%; width:95px; height:110px; transform:translateX(-50%); background:linear-gradient(170deg, #4d362a 0%, #2a1a12 70%, #1a0e08 100%); border-radius:50% 50% 45% 45% / 60% 60% 45% 45%; box-shadow:0 8px 20px rgba(0,0,0,.7), inset 0 -6px 12px rgba(0,0,0,.5); animation: cs-head 4s ease-in-out infinite; }
.scn-coriolanus-sweat .sweat-1 { position:absolute; bottom:32%; left:42%; width:6px; height:7px; background:radial-gradient(circle, rgba(220,200,180,.6) 0%, transparent 70%); border-radius:50%; animation: cs-sweat-a 5s ease-in-out infinite; }
.scn-coriolanus-sweat .sweat-2 { position:absolute; bottom:30%; left:52%; width:5px; height:6px; background:radial-gradient(circle, rgba(220,200,180,.5) 0%, transparent 70%); border-radius:50%; animation: cs-sweat-b 6s ease-in-out infinite 1s; }
.scn-coriolanus-sweat .sweat-3 { position:absolute; bottom:28%; left:48%; width:4px; height:5px; background:radial-gradient(circle, rgba(220,200,180,.4) 0%, transparent 70%); border-radius:50%; animation: cs-sweat-c 7s ease-in-out infinite 2s; }
.scn-coriolanus-sweat .glow-cs { position:absolute; bottom:20%; left:38%; width:80px; height:80px; background:radial-gradient(circle, #d8a864 0%, transparent 60%); border-radius:50%; filter:blur(12px); animation: cs-glow 3s ease-in-out infinite alternate; }
.scn-coriolanus-sweat .collar-cs { position:absolute; bottom:10%; left:50%; width:70px; height:24px; transform:translateX(-50%); background:linear-gradient(180deg, #1e1410 0%, #0f0a08 100%); border-radius:30% 30% 10% 10%; box-shadow:0 -4px 8px rgba(0,0,0,.5); }
@keyframes cs-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cs-head { 0% { transform:translateX(-50%) rotate(-2deg); } 25% { transform:translateX(-50%) translateY(-2px) rotate(0deg); } 50% { transform:translateX(-50%) rotate(2deg); } 75% { transform:translateX(-50%) translateY(-1px) rotate(0deg); } 100% { transform:translateX(-50%) rotate(-2deg); } }
@keyframes cs-sweat-a { 0% { transform:translate(0,0); opacity:.7 } 30% { transform:translate(4px,12px); opacity:0 } 100% { transform:translate(8px,20px); opacity:0 } }
@keyframes cs-sweat-b { 0% { transform:translate(0,0); opacity:.6 } 30% { transform:translate(-3px,14px); opacity:0 } 100% { transform:translate(-6px,22px); opacity:0 } }
@keyframes cs-sweat-c { 0% { transform:translate(0,0); opacity:.5 } 30% { transform:translate(2px,16px); opacity:0 } 100% { transform:translate(4px,24px); opacity:0 } }
@keyframes cs-glow { 0% { opacity:.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.7; transform:scale(1) } }

/* Scene: coriolanus-departure (calm, dim interior) */
.scn-coriolanus-departure {
  background:
    linear-gradient(180deg, #2c241e 0%, #1e1814 50%, #120e0c 100%),
    radial-gradient(ellipse at 50% 90%, #3a2e26 0%, transparent 60%);
}
.scn-coriolanus-departure .bg-cd { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 50%, #2a201a 0%, transparent 50%); animation: cd-bg 12s ease-in-out infinite alternate; }
.scn-coriolanus-departure .table-cd { position:absolute; bottom:22%; left:20%; right:20%; height:8%; background:linear-gradient(180deg, #4d3a2a 0%, #2a1e14 100%); border-radius:4px 4px 0 0; box-shadow:0 4px 12px rgba(0,0,0,.6); transform: skewY(2deg); }
.scn-coriolanus-departure .cup-left { position:absolute; bottom:28%; left:30%; width:18px; height:20px; background:linear-gradient(180deg, #6a4a38 0%, #3a2618 100%); border-radius:20% 20% 5% 5%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation: cd-cup 6s ease-in-out infinite; }
.scn-coriolanus-departure .cup-right { position:absolute; bottom:28%; right:30%; width:18px; height:20px; background:linear-gradient(180deg, #6a4a38 0%, #3a2618 100%); border-radius:20% 20% 5% 5%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation: cd-cup 6s ease-in-out infinite 0.5s; }
.scn-coriolanus-departure .hand-cd { position:absolute; bottom:26%; left:38%; width:20px; height:30px; background:linear-gradient(180deg, #4d362a 0%, #2a1a12 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation: cd-hand 8s ease-in-out infinite; }
.scn-coriolanus-departure .window-cd { position:absolute; top:15%; left:50%; width:30%; height:35%; transform:translateX(-50%); background:linear-gradient(180deg, #3d3540 0%, #1e1c22 100%); border-radius:10% 10% 4% 4%; border:2px solid #2a221c; box-shadow:inset 0 0 20px rgba(0,0,0,.5); animation: cd-window 20s ease-in-out infinite alternate; }
.scn-coriolanus-departure .drapery-cd { position:absolute; top:10%; left:15%; width:20%; height:50%; background:linear-gradient(180deg, #2a1e18 0%, #1a120e 100%); border-radius:0 60% 60% 0 / 0 40% 40% 0; filter:blur(1px); animation: cd-drapery 15s ease-in-out infinite alternate; }
@keyframes cd-bg { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cd-cup { 0% { transform:scale(1) } 50% { transform:scale(1.02) translateY(-1px) } 100% { transform:scale(1) } }
@keyframes cd-hand { 0% { transform:rotate(0deg) } 25% { transform:rotate(5deg) translateX(4px) } 50% { transform:rotate(0deg) } 75% { transform:rotate(-3deg) translateX(-2px) } 100% { transform:rotate(0deg) } }
@keyframes cd-window { 0% { box-shadow:inset 0 0 20px rgba(0,0,0,.5); opacity:.9 } 50% { box-shadow:inset 0 0 30px rgba(0,0,0,.7); opacity:1 } 100% { box-shadow:inset 0 0 20px rgba(0,0,0,.5); opacity:.9 } }
@keyframes cd-drapery { 0% { transform:translateX(0) } 100% { transform:translateX(-8px) } }

/* Scene: exeunt-ladies (calm, dim interior) */
.scn-exeunt-ladies {
  background:
    linear-gradient(180deg, #1e1b22 0%, #2a2630 40%, #141218 100%),
    radial-gradient(ellipse at 50% 70%, #2a2630 0%, transparent 60%);
}
.scn-exeunt-ladies .bg-el { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 60%, #2a2430 0%, transparent 50%); animation: el-bg 16s ease-in-out infinite alternate; }
.scn-exeunt-ladies .arch-el { position:absolute; top:5%; left:20%; right:20%; height:60%; background:linear-gradient(180deg, #3a3240 0%, #1e1822 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; box-shadow:inset 0 0 30px rgba(0,0,0,.6); }
.scn-exeunt-ladies .window-sky { position:absolute; top:8%; left:22%; right:22%; height:55%; background:linear-gradient(180deg, #2c3844 0%, #1e2430 50%, #141a22 100%); border-radius:30% 30% 0 0; animation: el-sky 30s ease-in-out infinite alternate; }
.scn-exeunt-ladies .capitol-bg { position:absolute; top:20%; left:25%; right:25%; height:30%; background:linear-gradient(180deg, #2a2630 0%, #1e1c22 100%); clip-path:polygon(30% 100%, 40% 20%, 60% 20%, 70% 100%); animation: el-cap 40s linear infinite; }
.scn-exeunt-ladies .lady-1 { position:absolute; bottom:22%; left:12%; width:22px; height:56px; background:linear-gradient(180deg, #4a3a48 0%, #2a1e2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: el-lady 12s ease-in-out infinite; }
.scn-exeunt-ladies .lady-2 { position:absolute; bottom:22%; right:12%; width:20px; height:52px; background:linear-gradient(180deg, #3a2e3a 0%, #1e1420 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: el-lady 12s ease-in-out infinite 1s; }
.scn-exeunt-ladies .floor-el { position:absolute; bottom:0; left:0; right:0; height:22%; background:linear-gradient(180deg, #1a1620 0%, #0e0c12 100%); box-shadow:0 -4px 8px rgba(0,0,0,.4); }
.scn-exeunt-ladies .shadow-el { position:absolute; bottom:20%; left:10%; right:10%; height:10px; background:radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 60%); animation: el-shadow 12s ease-in-out infinite; }
@keyframes el-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes el-sky { 0% { background-position:0 0; } 50% { background-position:0 10px; } 100% { background-position:0 0; } }
@keyframes el-cap { 0% { transform:scale(1) } 50% { transform:scale(1.02) } 100% { transform:scale(1) } }
@keyframes el-lady { 0% { transform:translate(0,0) rotate(0deg) } 25% { transform:translate(4px,-1px) rotate(1deg) } 50% { transform:translate(8px,0) rotate(0deg) } 75% { transform:translate(4px,-1px) rotate(-1deg) } 100% { transform:translate(0,0) rotate(0deg) } }
@keyframes el-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-scene-tribunes-plot { background: linear-gradient(180deg, #5a5e66 0%, #434750 30%, #373a40 70%, #2a2c30 100%), radial-gradient(ellipse at 40% 20%, #6b707a 0%, transparent 60%); }
.scn-scene-tribunes-plot .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6b6f78 0%, #848892 40%, #9a9ea8 100%); animation: tbp-sky 14s ease-in-out infinite alternate; }
.scn-scene-tribunes-plot .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2e3135 0%, #1f2124 100%); border-radius:30% 0 0 0 / 15% 0 0 0; }
.scn-scene-tribunes-plot .column-left { position:absolute; bottom:10%; left:8%; width:20px; height:55%; background: linear-gradient(90deg, #4a4d55 0%, #5c5f67 30%, #3d4048 100%); border-radius:2px; box-shadow: 4px 0 8px rgba(0,0,0,.4); }
.scn-scene-tribunes-plot .marcius { position:absolute; bottom:12%; left:32%; width:24px; height:50%; background: linear-gradient(180deg, #1a1c1f 0%, #141517 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tbp-marcius 2.5s ease-in-out infinite; }
.scn-scene-tribunes-plot .tribune-left { position:absolute; bottom:10%; left:52%; width:22px; height:48%; background: linear-gradient(180deg, #1c1e21 0%, #16181b 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: tbp-tribune 3s ease-in-out infinite; }
.scn-scene-tribunes-plot .tribune-right { position:absolute; bottom:10%; left:66%; width:22px; height:48%; background: linear-gradient(180deg, #1c1e21 0%, #16181b 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: tbp-tribune 3.2s ease-in-out infinite 0.5s; }
.scn-scene-tribunes-plot .cloud-overlay { position:absolute; top:5%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(130,135,145,.3) 0%, transparent 100%); filter: blur(8px); animation: tbp-clouds 25s ease-in-out infinite alternate; }
@keyframes tbp-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes tbp-marcius { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tbp-tribune { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes tbp-clouds { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(5px); } 100% { transform: scaleX(0.95) translateX(-5px); } }

.scn-scene-volscian-camp { background: linear-gradient(180deg, #11141a 0%, #1a1e26 40%, #222734 100%), radial-gradient(ellipse at 50% 60%, #2c3344 0%, transparent 80%); }
.scn-scene-volscian-camp .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0d0f13 0%, #161a22 100%); animation: vcp-dark 20s ease-in-out infinite alternate; }
.scn-scene-volscian-camp .tent { position:absolute; bottom:5%; left:15%; width:120px; height:80px; background: linear-gradient(135deg, #2f3b4a 0%, #1a2028 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform-origin: bottom center; animation: vcp-tent 12s ease-in-out infinite alternate; }
.scn-scene-volscian-camp .campfire { position:absolute; bottom:12%; left:42%; width:30px; height:30px; background: radial-gradient(circle at 50% 60%, #6e4c1a 0%, #3a2810 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(110,76,26,.5); animation: vcp-fire 1.5s ease-in-out infinite alternate; }
.scn-scene-volscian-camp .aufidius { position:absolute; bottom:8%; left:55%; width:26px; height:45%; background: linear-gradient(180deg, #1a1c20 0%, #121418 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vcp-aufidius 3s ease-in-out infinite; }
.scn-scene-volscian-camp .blood-stain { position:absolute; bottom:2%; left:52%; width:16px; height:8px; background: radial-gradient(circle, #5e1a1d 0%, transparent 70%); border-radius:50%; animation: vcp-blood 5s ease-in-out infinite alternate; }
.scn-scene-volscian-camp .spear { position:absolute; bottom:20%; left:72%; width:4px; height:55%; background: linear-gradient(180deg, #3d4147 0%, #2a2d32 100%); transform-origin: bottom center; border-radius:0 0 2px 2px; transform: rotate(-5deg); animation: vcp-spear 4s ease-in-out infinite; }
.scn-scene-volscian-camp .ground-shadow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); }
@keyframes vcp-dark { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes vcp-tent { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(0.98) translateY(0); } }
@keyframes vcp-fire { 0% { transform: scale(1) rotate(0deg); opacity:0.8; box-shadow: 0 0 30px 15px rgba(110,76,26,.4); } 50% { transform: scale(1.1) rotate(2deg); opacity:1; box-shadow: 0 0 50px 25px rgba(110,76,26,.6); } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.9; box-shadow: 0 0 35px 18px rgba(110,76,26,.45); } }
@keyframes vcp-aufidius { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes vcp-blood { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.3); opacity:0.8; } 100% { transform: scale(1); opacity:0.5; } }
@keyframes vcp-spear { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-6deg); } }

.scn-scene-corioli-senate { background: linear-gradient(180deg, #1a1c22 0%, #2a2e38 30%, #3a3f4a 70%, #2f333d 100%), radial-gradient(ellipse at 50% 30%, #c8b080 0%, transparent 70%); }
.scn-scene-corioli-senate .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #1b1d23 0%, #2e3139 100%); animation: cst-bg 15s ease-in-out infinite alternate; }
.scn-scene-corioli-senate .column-left { position:absolute; bottom:0; left:10%; width:16px; height:85%; background: linear-gradient(90deg, #3c3f48 0%, #4a4d57 30%, #353840 100%); border-radius:2px; box-shadow: 2px 0 10px rgba(0,0,0,.5); }
.scn-scene-corioli-senate .column-right { position:absolute; bottom:0; right:10%; width:16px; height:85%; background: linear-gradient(90deg, #3c3f48 0%, #4a4d57 30%, #353840 100%); border-radius:2px; box-shadow: -2px 0 10px rgba(0,0,0,.5); }
.scn-scene-corioli-senate .table { position:absolute; bottom:8%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #3a352c 0%, #24211a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-scene-corioli-senate .senator-left { position:absolute; bottom:18%; left:32%; width:22px; height:40%; background: linear-gradient(180deg, #1a1b1f 0%, #141519 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cst-senator 4s ease-in-out infinite; }
.scn-scene-corioli-senate .senator-right { position:absolute; bottom:18%; right:32%; width:22px; height:40%; background: linear-gradient(180deg, #1a1b1f 0%, #141519 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cst-senator 4.5s ease-in-out infinite 0.5s; }
.scn-scene-corioli-senate .torch-left { position:absolute; top:15%; left:15%; width:8px; height:20px; background: linear-gradient(180deg, #6b4e2a 0%, #3d2c16 100%); border-radius:2px 2px 0 0; }
.scn-scene-corioli-senate .torch-right { position:absolute; top:15%; right:15%; width:8px; height:20px; background: linear-gradient(180deg, #6b4e2a 0%, #3d2c16 100%); border-radius:2px 2px 0 0; }
.scn-scene-corioli-senate .torch-left::after { content:''; position:absolute; top:-8px; left:-3px; width:14px; height:14px; background: radial-gradient(circle, #f0c880 0%, #b08040 40%, transparent 70%); border-radius:50%; animation: cst-torch 2s ease-in-out infinite alternate; }
.scn-scene-corioli-senate .torch-right::after { content:''; position:absolute; top:-8px; left:-3px; width:14px; height:14px; background: radial-gradient(circle, #f0c880 0%, #b08040 40%, transparent 70%); border-radius:50%; animation: cst-torch 2.3s ease-in-out infinite alternate 0.3s; }
@keyframes cst-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cst-senator { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cst-torch { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 10px 5px rgba(240,200,128,0.4); } 50% { transform: scale(1.15) rotate(3deg); box-shadow: 0 0 16px 8px rgba(240,200,128,0.6); } 100% { transform: scale(0.9) rotate(-2deg); box-shadow: 0 0 8px 4px rgba(240,200,128,0.3); } }

.scn-scene-item-letter-aufidius { background: linear-gradient(180deg, #1f1c1a 0%, #2b2622 40%, #35302c 100%), radial-gradient(ellipse at 50% 70%, #4a423c 0%, transparent 70%); }
.scn-scene-item-letter-aufidius .table-surface { position:absolute; inset:20% 5% 5% 5%; background: linear-gradient(180deg, #3a342e 0%, #2c2722 100%); border-radius:8px; box-shadow: inset 0 2px 10px rgba(0,0,0,.5); }
.scn-scene-item-letter-aufidius .hand-silhouette { position:absolute; bottom:20%; left:22%; width:40px; height:50px; background: linear-gradient(180deg, #12100e 0%, #0b0a08 100%); border-radius:60% 40% 30% 70% / 50% 50% 50% 50%; transform-origin: 40% 100%; animation: auf-hand 3s ease-in-out infinite alternate; }
.scn-scene-item-letter-aufidius .scroll { position:absolute; bottom:35%; left:28%; width:60px; height:45px; background: linear-gradient(180deg, #d4c8a8 0%, #b8aa8e 100%); border-radius:2px 2px 10px 10px; box-shadow: 2px 2px 8px rgba(0,0,0,.3); transform: rotate(-3deg); }
.scn-scene-item-letter-aufidius .seal { position:absolute; bottom:38%; left:42%; width:16px; height:16px; background: radial-gradient(circle, #c8553d 0%, #8a3b2a 60%, #5e1d14 100%); border-radius:50%; box-shadow: 0 0 6px rgba(200,85,61,.4); animation: auf-seal 4s ease-in-out infinite alternate; }
.scn-scene-item-letter-aufidius .candle-body { position:absolute; bottom:42%; right:20%; width:10px; height:35px; background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%); border-radius:2px; box-shadow: -1px 0 4px rgba(0,0,0,.2); }
.scn-scene-item-letter-aufidius .candle-flame { position:absolute; bottom:72%; right:23%; width:12px; height:14px; background: radial-gradient(circle, #f8e0a0 0%, #e0a050 40%, transparent 70%); border-radius:50%; animation: auf-flame 1.2s ease-in-out infinite alternate; }
.scn-scene-item-letter-aufidius .ink-bottle { position:absolute; bottom:40%; left:8%; width:12px; height:18px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 0 4px rgba(0,0,0,.5); }
@keyframes auf-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(2deg) translateX(-1px); } }
@keyframes auf-seal { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(1) rotate(-5deg); } }
@keyframes auf-flame { 0% { transform: scale(1) translateY(0); opacity:0.8; box-shadow: 0 0 6px 3px rgba(224,160,80,.3); } 50% { transform: scale(1.2) translateY(-2px); opacity:1; box-shadow: 0 0 12px 6px rgba(224,160,80,.5); } 100% { transform: scale(0.9) translateY(1px); opacity:0.9; box-shadow: 0 0 4px 2px rgba(224,160,80,.25); } }

/* scene-rome-mutiny */
.scn-scene-rome-mutiny {
  background:
    linear-gradient(180deg, #4a5154 0%, #6b7376 30%, #8a9296 100%),
    radial-gradient(ellipse at 50% 100%, #5a6266 0%, transparent 70%);
}
.scn-scene-rome-mutiny .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3e4548 0%, transparent 100%);
  animation: rm-sky 12s ease-in-out infinite alternate;
}
.scn-scene-rome-mutiny .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a524a 0%, #2a322a 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-scene-rome-mutiny .crowd {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 35%;
  background: #2d2d2d;
  clip-path: polygon(0% 100%, 2% 75%, 4% 85%, 6% 70%, 8% 80%, 10% 65%, 12% 78%, 14% 68%, 16% 82%, 18% 70%, 20% 85%, 22% 72%, 24% 88%, 26% 75%, 28% 90%, 30% 78%, 32% 85%, 34% 70%, 36% 82%, 38% 68%, 40% 80%, 42% 65%, 44% 78%, 46% 70%, 48% 85%, 50% 72%, 52% 88%, 54% 75%, 56% 90%, 58% 78%, 60% 85%, 62% 70%, 64% 82%, 66% 68%, 68% 80%, 70% 65%, 72% 78%, 74% 70%, 76% 85%, 78% 72%, 80% 88%, 82% 75%, 84% 90%, 86% 78%, 88% 85%, 90% 70%, 92% 80%, 94% 68%, 96% 78%, 98% 72%, 100% 100%);
  animation: rm-crowd 8s ease-in-out infinite alternate;
}
.scn-scene-rome-mutiny .figure-arm {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a, #1a1a1a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rm-figure 4s ease-in-out infinite;
}
.scn-scene-rome-mutiny .club {
  position: absolute; bottom: 30%; left: 28%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a, #3a1a1a);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: rm-club 4s ease-in-out infinite alternate;
}
.scn-scene-rome-mutiny .banner-pole {
  position: absolute; bottom: 18%; left: 65%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: rm-pole 6s ease-in-out infinite alternate;
}
.scn-scene-rome-mutiny .banner-cloth {
  position: absolute; bottom: 30%; left: 65%; width: 28px; height: 16px;
  background: linear-gradient(180deg, #6a3a3a, #4a1a1a);
  border-radius: 0 40% 40% 0;
  transform-origin: left center;
  animation: rm-banner 6s ease-in-out infinite alternate;
}
@keyframes rm-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes rm-crowd { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes rm-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes rm-club { 0% { transform: rotate(-25deg) } 50% { transform: rotate(-35deg) } 100% { transform: rotate(-25deg) } }
@keyframes rm-pole { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes rm-banner { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }

/* scene-menenius-arrives */
.scn-scene-menenius-arrives {
  background:
    linear-gradient(180deg, #5a6064 0%, #7a8286 40%, #9a9ea2 100%),
    radial-gradient(ellipse at 50% 100%, #6a7276 0%, transparent 70%);
}
.scn-scene-menenius-arrives .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a5256 0%, transparent 100%);
  animation: ma-sky 10s ease-in-out infinite alternate;
}
.scn-scene-menenius-arrives .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a5250 0%, #2a3230 100%);
  border-radius: 15% 25% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.35);
}
.scn-scene-menenius-arrives .menenius {
  position: absolute; bottom: 15%; left: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ma-figure 5s ease-in-out infinite alternate;
}
.scn-scene-menenius-arrives .crowd {
  position: absolute; bottom: 20%; right: 10%; left: 50%; height: 30%;
  background: #2d2d2d;
  clip-path: polygon(0% 100%, 2% 80%, 4% 85%, 6% 78%, 8% 82%, 10% 75%, 12% 80%, 14% 76%, 16% 84%, 18% 78%, 20% 82%, 22% 76%, 24% 80%, 26% 78%, 28% 85%, 30% 80%, 32% 82%, 34% 76%, 36% 80%, 38% 78%, 40% 82%, 42% 76%, 44% 80%, 46% 78%, 48% 84%, 50% 80%, 52% 82%, 54% 76%, 56% 80%, 58% 78%, 60% 82%, 62% 76%, 64% 80%, 66% 78%, 68% 84%, 70% 80%, 72% 82%, 74% 76%, 76% 80%, 78% 78%, 80% 82%, 82% 76%, 84% 80%, 86% 78%, 88% 84%, 90% 80%, 92% 82%, 94% 76%, 96% 80%, 98% 78%, 100% 100%);
  animation: ma-crowd 6s ease-in-out infinite alternate;
}
.scn-scene-menenius-arrives .staff {
  position: absolute; bottom: 15%; left: 12%; width: 4px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 2px;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: ma-staff 5s ease-in-out infinite alternate;
}
.scn-scene-menenius-arrives .step {
  position: absolute; bottom: 14%; left: 10%; width: 50px; height: 4px;
  background: linear-gradient(90deg, #4a3a3a, #2a1a1a);
  border-radius: 2px;
  animation: ma-step 4s ease-in-out infinite alternate;
}
@keyframes ma-sky { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .7 } }
@keyframes ma-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ma-crowd { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(0.99) } }
@keyframes ma-staff { 0% { transform: rotate(4deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(4deg) } }
@keyframes ma-step { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }

/* scene-belly-fable */
.scn-scene-belly-fable {
  background:
    linear-gradient(180deg, #6a5a4a 0%, #9a8a6a 40%, #b8a888 100%),
    radial-gradient(ellipse at 50% 100%, #8a7a5a 0%, transparent 70%);
}
.scn-scene-belly-fable .bg-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a4a3a, transparent 100%);
  animation: bf-bg 12s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a5540, #3a3525);
  border-radius: 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-scene-belly-fable .figure-torso {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: bf-torso 8s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .belly {
  position: absolute; bottom: 12%; left: 50%; width: 45px; height: 35px;
  background: radial-gradient(circle at 50% 50%, #6a4a2a, #3a2a1a);
  border-radius: 50%;
  transform: translateX(-50%) translateY(-10px);
  animation: bf-belly 8s ease-in-out infinite alternate;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-scene-belly-fable .arm-left {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 10px;
  transform-origin: right center;
  transform: rotate(-20deg);
  animation: bf-arm-l 6s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .arm-right {
  position: absolute; bottom: 18%; right: 38%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 10px;
  transform-origin: left center;
  transform: rotate(20deg);
  animation: bf-arm-r 6s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .leg-left {
  position: absolute; bottom: 5%; left: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 4px;
  transform-origin: top center;
  transform: rotate(-10deg);
  animation: bf-leg-l 8s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .leg-right {
  position: absolute; bottom: 5%; right: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 4px;
  transform-origin: top center;
  transform: rotate(10deg);
  animation: bf-leg-r 8s ease-in-out infinite alternate;
}
@keyframes bf-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes bf-torso { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes bf-belly { 0% { transform: translateX(-50%) translateY(-10px) scale(1) } 50% { transform: translateX(-50%) translateY(-12px) scale(1.05) } 100% { transform: translateX(-50%) translateY(-10px) scale(0.98) } }
@keyframes bf-arm-l { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-25deg) } }
@keyframes bf-arm-r { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(25deg) } }
@keyframes bf-leg-l { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-6deg) } 100% { transform: rotate(-14deg) } }
@keyframes bf-leg-r { 0% { transform: rotate(10deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(14deg) } }

/* scene-belly-answer */
.scn-scene-belly-answer {
  background:
    linear-gradient(180deg, #7a6a5a 0%, #a88a6a 50%, #c8a888 100%),
    radial-gradient(ellipse at 50% 80%, #9a7a5a 0%, transparent 70%);
}
.scn-scene-belly-answer .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, #5a4a3a 0%, transparent 70%);
  animation: ba-bg 10s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .head {
  position: absolute; top: 8%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #5a4a3a, #2a1a0a);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ba-head 6s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .eye {
  position: absolute; top: 12%; left: 55%; width: 14px; height: 8px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(-5deg);
  animation: ba-eye 4s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .heart {
  position: absolute; top: 38%; left: 50%; width: 28px; height: 24px;
  background: radial-gradient(circle at 50% 50%, #6a3a2a, #3a1a0a);
  clip-path: path('M14,0 C20-6 28-2 28,6 C28,14 14,24 14,24 C14,24 0,14 0,6 C0-2 8-6 14,0Z');
  transform: translateX(-50%) scale(0.9);
  animation: ba-heart 8s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .arm {
  position: absolute; top: 36%; left: 22%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a, #2a1a0a);
  border-radius: 20%;
  transform-origin: top center;
  transform: rotate(30deg);
  animation: ba-arm 5s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .leg {
  position: absolute; top: 60%; left: 50%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a, #2a1a0a);
  border-radius: 30% 30% 20% 20%;
  transform: translateX(-50%) rotate(5deg);
  transform-origin: top center;
  animation: ba-leg 6s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .tongue {
  position: absolute; top: 22%; left: 65%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #6a3a2a, #3a1a0a);
  border-radius: 50% 50% 10% 10%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: rotate(20deg);
  transform-origin: bottom right;
  animation: ba-tongue 5s ease-in-out infinite alternate;
}
@keyframes ba-bg { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes ba-head { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ba-eye { 0% { transform: translateX(-50%) rotate(-5deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(-3deg) scaleY(1.1) } 100% { transform: translateX(-50%) rotate(-7deg) scaleY(0.9) } }
@keyframes ba-heart { 0% { transform: translateX(-50%) scale(0.9) } 50% { transform: translateX(-50%) scale(1) } 100% { transform: translateX(-50%) scale(0.85) } }
@keyframes ba-arm { 0% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(25deg) } }
@keyframes ba-leg { 0% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(10deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ba-tongue { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(25deg) scaleX(1.1) } 100% { transform: rotate(15deg) scaleX(0.9) } }

.scn-item-tenth-refusal { background: linear-gradient(180deg, #f4d9b2 0%, #e0b786 40%, #c3874f 100%), radial-gradient(ellipse at 50% 100%, #d4b483 0%, transparent 60%); }
.scn-item-tenth-refusal .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f6e3c5 0%, #f0d0a0 100%); animation: itr-sky 12s ease-in-out infinite alternate; }
.scn-item-tenth-refusal .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #a0522d 0%, #7a3c1e 100%); border-radius: 30% 40% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.3); animation: itr-ground 8s ease-in-out infinite alternate; }
.scn-item-tenth-refusal .marcius { position:absolute; bottom:20%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6b4c3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: itr-marcius 4s ease-in-out infinite; }
.scn-item-tenth-refusal .purse  { position:absolute; bottom:38%; left:42%; width:14px; height:10px; background: radial-gradient(circle, #f0c060 0%, #d09030 100%); border-radius: 30%; box-shadow: 0 0 20px 8px rgba(240,192,96,.5); animation: itr-purse 2s ease-in-out infinite alternate; }
.scn-item-tenth-refusal .cap1   { position:absolute; bottom:50%; left:30%; width:20px; height:12px; background: #a0461a; border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: itr-cap1 1.5s ease-in-out infinite; }
.scn-item-tenth-refusal .cap2   { position:absolute; bottom:55%; right:25%; width:18px; height:10px; background: #8b5e3c; border-radius: 50% 50% 20% 20%; animation: itr-cap2 2s ease-in-out infinite 0.5s; }
.scn-item-tenth-refusal .lance  { position:absolute; bottom:45%; left:65%; width:4px; height:50px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%); border-radius: 1px; transform-origin: bottom center; animation: itr-lance 2s ease-in-out infinite 0.3s; }
@keyframes itr-sky    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes itr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes itr-marcius { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(8deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(-8deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes itr-purse  { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.15); opacity:1; box-shadow: 0 0 30px 12px rgba(240,192,96,.7) } 100% { transform: scale(1); opacity:.9 } }
@keyframes itr-cap1   { 0% { transform: translate(0,0) rotate(-10deg) } 50% { transform: translate(20px, -30px) rotate(0deg) } 100% { transform: translate(40px, -60px) rotate(10deg) } }
@keyframes itr-cap2   { 0% { transform: translate(0,0) rotate(5deg) } 50% { transform: translate(-20px, -25px) rotate(-5deg) } 100% { transform: translate(-40px, -50px) rotate(0deg) } }
@keyframes itr-lance  { 0% { transform: rotate(-15deg) } 50% { transform: rotate(5deg) translateY(-10px) } 100% { transform: rotate(15deg) translateY(-20px) } }

.scn-scene-crowning-coriolanus { background: linear-gradient(180deg, #f9e4b7 0%, #dfb68c 40%, #c3874f 100%), radial-gradient(ellipse at 70% 20%, #fadaa0 0%, transparent 60%); }
.scn-scene-crowning-coriolanus .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fdeac8 0%, #f2d8a8 100%); animation: scc-sky 15s ease-in-out infinite alternate; }
.scn-scene-crowning-coriolanus .steps  { position:absolute; bottom:25%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #b88a6a 0%, #8b6a4a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); animation: scc-steps 10s ease-in-out infinite alternate; }
.scn-scene-crowning-coriolanus .coriolanus { position:absolute; bottom:35%; left:50%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #6b4c3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scc-coriolanus 6s ease-in-out infinite; }
.scn-scene-crowning-coriolanus .crown  { position:absolute; bottom:70%; left:50%; width:24px; height:10px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #f0c860 0%, #d09030 60%, #a07020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(240,192,96,.4); animation: scc-crown 3s ease-in-out infinite alternate; }
.scn-scene-crowning-coriolanus .senator-l { position:absolute; bottom:30%; left:10%; width:22px; height:55px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: scc-senator-l 8s ease-in-out infinite; }
.scn-scene-crowning-coriolanus .senator-r { position:absolute; bottom:30%; right:10%; width:22px; height:55px; background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: scc-senator-r 8s ease-in-out infinite 1s; }
.scn-scene-crowning-coriolanus .banner  { position:absolute; top:10%; left:60%; width:8px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #8b2a1a 100%); border-radius: 2px; transform-origin: top center; animation: scc-banner 12s ease-in-out infinite alternate; }
@keyframes scc-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes scc-steps  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes scc-coriolanus { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes scc-crown  { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity:.7 } 50% { transform: translateX(-50%) translateY(-5px) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) translateY(0) scale(1); opacity:.8 } }
@keyframes scc-senator-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes scc-senator-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes scc-banner { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }

.scn-scene-host-freedom { background: linear-gradient(180deg, #e6c9a8 0%, #cfa27c 40%, #b08060 100%), radial-gradient(ellipse at 30% 50%, #e6c9a8 0%, transparent 60%); }
.scn-scene-host-freedom .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b89a7a 0%, #9a7a5a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); animation: shf-wall 20s ease-in-out infinite alternate; }
.scn-scene-host-freedom .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; }
.scn-scene-host-freedom .window { position:absolute; top:20%; right:15%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 50%, #f0d8b0 0%, #d0b080 80%, transparent 100%); border: 2px solid #5a4a3a; border-radius: 10%; box-shadow: 0 0 20px 10px rgba(240,200,160,.3); animation: shf-window 8s ease-in-out infinite alternate; }
.scn-scene-host-freedom .host   { position:absolute; bottom:20%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: shf-host 5s ease-in-out infinite; }
.scn-scene-host-freedom .coriolanus-fig { position:absolute; bottom:20%; right:25%; width:24px; height:45px; background: linear-gradient(180deg, #6b4c3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: shf-coriolanus 6s ease-in-out infinite 0.5s; }
.scn-scene-host-freedom .table  { position:absolute; bottom:28%; left:40%; width:50px; height:8px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: shf-table 12s ease-in-out infinite alternate; }
.scn-scene-host-freedom .light-ray { position:absolute; top:15%; right:18%; width:80px; height:160px; background: linear-gradient(135deg, rgba(255,230,180,.4) 0%, transparent 100%); transform: rotate(-10deg); animation: shf-light 4s ease-in-out infinite alternate; }
@keyframes shf-wall   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes shf-window { 0% { transform: scaleY(1); opacity:.7 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(1); opacity:.8 } }
@keyframes shf-host   { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes shf-coriolanus { 0% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes shf-table  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes shf-light  { 0% { transform: rotate(-10deg) scaleX(1); opacity:.5 } 50% { transform: rotate(-8deg) scaleX(1.1); opacity:1 } 100% { transform: rotate(-10deg) scaleX(1); opacity:.6 } }

.scn-scene-rome-public-place { background: linear-gradient(180deg, #6a7b8c 0%, #4a5b6c 50%, #3a4b5c 100%), radial-gradient(ellipse at 80% 20%, #7a8b9c 0%, transparent 70%); }
.scn-scene-rome-public-place .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a8b9c 0%, #5a6b7c 100%); animation: srp-sky 20s ease-in-out infinite alternate; }
.scn-scene-rome-public-place .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a5b6c 0%, #2a3b4c 100%); border-radius: 40% 30% 0 0; box-shadow: inset 0 8px 24px rgba(0,0,0,.5); animation: srp-ground 15s ease-in-out infinite alternate; }
.scn-scene-rome-public-place .col-l  { position:absolute; bottom:20%; left:15%; width:12px; height:100px; background: linear-gradient(180deg, #8a9aab 0%, #6a7a8b 100%); border-radius: 2px; box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: srp-column-l 12s ease-in-out infinite; }
.scn-scene-rome-public-place .col-r  { position:absolute; bottom:20%; right:15%; width:12px; height:100px; background: linear-gradient(180deg, #8a9aab 0%, #6a7a8b 100%); border-radius: 2px; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: srp-column-r 12s ease-in-out infinite 2s; }
.scn-scene-rome-public-place .menenius { position:absolute; bottom:25%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srp-menenius 4s ease-in-out infinite; }
.scn-scene-rome-public-place .tribune1 { position:absolute; bottom:25%; right:35%; width:20px; height:50px; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srp-tribune1 5s ease-in-out infinite 1s; }
.scn-scene-rome-public-place .tribune2 { position:absolute; bottom:25%; left:48%; width:18px; height:48px; background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srp-tribune2 6s ease-in-out infinite 0.5s; }
.scn-scene-rome-public-place .shadow  { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); animation: srp-shadow 10s ease-in-out infinite alternate; }
@keyframes srp-sky    { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes srp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes srp-column-l { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes srp-column-r { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes srp-menenius { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes srp-tribune1 { 0% { transform: rotate(0deg) } 25% { transform: rotate(-4deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(0deg) } }
@keyframes srp-tribune2 { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes srp-shadow  { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }

/* coriolanus-curses-rome */
.scn-coriolanus-curses-rome {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #3d2b24 50%, #1e140f 100%),
    radial-gradient(circle at 60% 20%, #c28a5a 0%, transparent 70%);
}
.scn-coriolanus-curses-rome .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%);
  border-radius: 0 0 20% 20%;
  animation: crc-wall 12s ease-in-out infinite alternate;
}
.scn-coriolanus-curses-rome .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3d2e24 0%, #1e140e 100%);
  border-radius: 30% 30% 0 0 / 80% 80% 0 0;
  filter: blur(2px);
}
.scn-coriolanus-curses-rome .window {
  position: absolute; top: 15%; left: 55%; width: 80px; height: 120px;
  background: radial-gradient(circle at 50% 50%, #fad6a0 0%, #d49c5a 50%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 60px 20px #d49c5a, 0 0 120px 40px rgba(212,156,90,0.4);
  animation: crc-window 6s ease-in-out infinite alternate;
}
.scn-coriolanus-curses-rome .light-beam {
  position: absolute; top: 10%; left: 45%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(250,214,160,0.5) 0%, transparent 70%);
  transform-origin: top left;
  animation: crc-beam 4s ease-in-out infinite alternate;
}
.scn-coriolanus-curses-rome .pillar-left {
  position: absolute; bottom: 15%; left: 10%; width: 40px; height: 200px;
  background: linear-gradient(90deg, #5a4030 0%, #3a2820 50%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 8px 0 12px rgba(0,0,0,0.6);
}
.scn-coriolanus-curses-rome .pillar-right {
  position: absolute; bottom: 15%; right: 10%; width: 40px; height: 200px;
  background: linear-gradient(90deg, #2a1a10 0%, #3a2820 50%, #5a4030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -8px 0 12px rgba(0,0,0,0.6);
}
.scn-coriolanus-curses-rome .figure-cursor {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crc-figure 5s ease-in-out infinite;
}
.scn-coriolanus-curses-rome .crowd-blur {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 100px;
  background: linear-gradient(90deg, transparent 0%, rgba(30,20,15,0.6) 20%, rgba(30,20,15,0.6) 80%, transparent 100%);
  filter: blur(8px);
  border-radius: 50% 50% 0 0;
  animation: crc-crowd 3s ease-in-out infinite alternate;
}
@keyframes crc-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes crc-window { 0% { box-shadow: 0 0 40px 15px #d49c5a, 0 0 80px 30px rgba(212,156,90,0.3); } 50% { box-shadow: 0 0 80px 30px #fad6a0, 0 0 160px 50px rgba(250,214,160,0.5); } 100% { box-shadow: 0 0 50px 20px #d49c5a, 0 0 100px 40px rgba(212,156,90,0.35); } }
@keyframes crc-beam { 0% { transform: translateX(0) scaleY(1); opacity: 0.3; } 50% { transform: translateX(20px) scaleY(1.05); opacity: 0.7; } 100% { transform: translateX(-10px) scaleY(0.95); opacity: 0.4; } }
@keyframes crc-figure { 0% { transform: translate(0,0) rotate(-3deg); } 25% { transform: translate(8px,-4px) rotate(4deg); } 50% { transform: translate(16px,0) rotate(-2deg); } 75% { transform: translate(24px,-2px) rotate(5deg); } 100% { transform: translate(32px,0) rotate(0deg); } }
@keyframes crc-crowd { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.03); } 100% { transform: translateY(0) scaleX(0.97); } }

/* crowd-rejoices */
.scn-crowd-rejoices {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #4a3528 50%, #1e140f 100%),
    radial-gradient(circle at 40% 30%, #e0b080 0%, transparent 60%);
}
.scn-crowd-rejoices .bg-wall-rejoice {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%);
  border-radius: 0 0 30% 30%;
  animation: crj-wall 10s ease-in-out infinite alternate;
}
.scn-crowd-rejoices .bg-floor-rejoice {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3d2e24 0%, #1e140e 100%);
  border-radius: 40% 40% 0 0 / 90% 90% 0 0;
  filter: blur(1px);
}
.scn-crowd-rejoices .window-rejoice {
  position: absolute; top: 20%; right: 15%; width: 60px; height: 90px;
  background: radial-gradient(circle at 50% 50%, #ffe0a0 0%, #d49c5a 60%, transparent 100%);
  border-radius: 15% 15% 5% 5%;
  box-shadow: 0 0 40px 12px #d49c5a, 0 0 80px 25px rgba(212,156,90,0.3);
  animation: crj-window 5s ease-in-out infinite alternate;
}
.scn-crowd-rejoices .light-beam-rejoice {
  position: absolute; top: 15%; left: 40%; width: 100px; height: 180px;
  background: linear-gradient(135deg, rgba(255,224,160,0.4) 0%, transparent 60%);
  transform-origin: top left;
  animation: crj-beam 3s ease-in-out infinite alternate;
}
.scn-crowd-rejoices .crowd-group {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 120px;
  background: linear-gradient(90deg, transparent 0%, rgba(30,20,15,0.7) 15%, rgba(30,20,15,0.7) 85%, transparent 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(5px);
  animation: crj-crowd 2s ease-in-out infinite alternate;
}
.scn-crowd-rejoices .caps-1 {
  position: absolute; bottom: 45%; left: 25%; width: 14px; height: 14px;
  background: radial-gradient(circle, #a67c52 0%, #5a4030 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: crj-cap1 3s ease-in-out infinite;
}
.scn-crowd-rejoices .caps-2 {
  position: absolute; bottom: 40%; right: 30%; width: 16px; height: 16px;
  background: radial-gradient(circle, #b88a60 0%, #4a3528 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: crj-cap2 3.5s ease-in-out infinite 0.5s;
}
.scn-crowd-rejoices .figure-leader {
  position: absolute; bottom: 30%; left: 45%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crj-leader 4s ease-in-out infinite;
}
@keyframes crj-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes crj-window { 0% { box-shadow: 0 0 20px 8px #d49c5a, 0 0 40px 15px rgba(212,156,90,0.2); } 50% { box-shadow: 0 0 60px 20px #ffe0a0, 0 0 120px 40px rgba(255,224,160,0.5); } 100% { box-shadow: 0 0 30px 12px #d49c5a, 0 0 60px 20px rgba(212,156,90,0.25); } }
@keyframes crj-beam { 0% { transform: translateX(0) scaleY(1); opacity: 0.5; } 50% { transform: translateX(15px) scaleY(1.1); opacity: 0.8; } 100% { transform: translateX(-10px) scaleY(0.9); opacity: 0.4; } }
@keyframes crj-crowd { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes crj-cap1 { 0% { transform: translate(0,0) rotate(0deg); opacity: 0; } 20% { opacity: 1; } 40% { transform: translate(20px,-40px) rotate(60deg); opacity: 0.8; } 60% { transform: translate(40px,-20px) rotate(120deg); opacity: 0.6; } 80% { transform: translate(60px,-50px) rotate(180deg); opacity: 0.3; } 100% { transform: translate(80px,-30px) rotate(240deg); opacity: 0; } }
@keyframes crj-cap2 { 0% { transform: translate(0,0) rotate(0deg); opacity: 0; } 20% { opacity: 1; } 40% { transform: translate(-20px,-50px) rotate(-60deg); opacity: 0.8; } 60% { transform: translate(-40px,-30px) rotate(-120deg); opacity: 0.6; } 80% { transform: translate(-60px,-60px) rotate(-180deg); opacity: 0.3; } 100% { transform: translate(-80px,-40px) rotate(-240deg); opacity: 0; } }
@keyframes crj-leader { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(10px,-3px) rotate(3deg); } 50% { transform: translate(20px,0) rotate(-1deg); } 75% { transform: translate(30px,-2px) rotate(4deg); } 100% { transform: translate(40px,0) rotate(0deg); } }

/* farewell-at-gate */
.scn-farewell-at-gate {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #fceabb 60%, #f8b878 100%),
    radial-gradient(ellipse at 50% 100%, #f8b878 0%, transparent 70%);
}
.scn-farewell-at-gate .sky-sun {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7ec8e3 0%, #fceabb 100%);
  animation: fwg-sky 15s ease-in-out infinite alternate;
}
.scn-farewell-at-gate .ground-sun {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d4a373 0%, #b2845c 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2);
}
.scn-farewell-at-gate .gate-arch {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #8a6d52 0%, #a08060 30%, #c0a080 50%, #a08060 70%, #8a6d52 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: fwg-gate 8s ease-in-out infinite alternate;
}
.scn-farewell-at-gate .wall-left {
  position: absolute; bottom: 15%; left: 5%; width: 40%; height: 150px;
  background: linear-gradient(90deg, #7a5d42 0%, #9a7d62 50%, #8a6d52 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -10px 0 15px rgba(0,0,0,0.3);
}
.scn-farewell-at-gate .wall-right {
  position: absolute; bottom: 15%; right: 5%; width: 40%; height: 150px;
  background: linear-gradient(90deg, #8a6d52 0%, #9a7d62 50%, #7a5d42 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 10px 0 15px rgba(0,0,0,0.3);
}
.scn-farewell-at-gate .figure-center {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fwg-figc 5s ease-in-out infinite;
}
.scn-farewell-at-gate .figure-left {
  position: absolute; bottom: 30%; left: 35%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fwg-figl 6s ease-in-out infinite 0.5s;
}
.scn-farewell-at-gate .figure-right {
  position: absolute; bottom: 30%; right: 35%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fwg-figr 6s ease-in-out infinite 1s;
}
.scn-farewell-at-gate .shadow-creep {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 40px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 20%, rgba(0,0,0,0.5) 80%, transparent 100%);
  filter: blur(4px);
  border-radius: 50%;
  animation: fwg-shadow 10s ease-in-out infinite alternate;
}
@keyframes fwg-sky { 0% { opacity: 0.8; background-position: 0% 0%; } 50% { opacity: 1; background-position: 50% 0%; } 100% { opacity: 0.9; background-position: 100% 0%; } }
@keyframes fwg-gate { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes fwg-figc { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(3deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fwg-figl { 0% { transform: rotate(-3deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: translateY(-1px) rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes fwg-figr { 0% { transform: rotate(3deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: rotate(1deg); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes fwg-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.6; } 50% { transform: translateX(10px) scaleX(1.1); opacity: 0.8; } 100% { transform: translateX(-10px) scaleX(0.9); opacity: 0.5; } }

/* volumnia-laments */
.scn-volumnia-laments {
  background: 
    linear-gradient(180deg, #fceabb 0%, #f8b878 50%, #d48c5a 100%),
    radial-gradient(ellipse at 30% 20%, #fceabb 0%, transparent 60%);
}
.scn-volumnia-laments .sky-lament {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0d0e8 0%, #fceabb 100%);
  animation: vlm-sky 20s ease-in-out infinite alternate;
}
.scn-volumnia-laments .ground-lament {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8845c 0%, #8a5a3a 100%);
  border-radius: 30% 30% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-volumnia-laments .pillar-lament {
  position: absolute; bottom: 20%; right: 10%; width: 30px; height: 180px;
  background: linear-gradient(90deg, #7a5d42 0%, #9a7d62 50%, #7a5d42 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -6px 0 10px rgba(0,0,0,0.4);
  animation: vlm-pillar 12s ease-in-out infinite alternate;
}
.scn-volumnia-laments .figure-volumnia {
  position: absolute; bottom: 35%; left: 35%; width: 44px; height: 90px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: vlm-figure 6s ease-in-out infinite;
}
.scn-volumnia-laments .veil-drape {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(180deg, rgba(250,240,230,0.4) 0%, rgba(250,240,230,0.1) 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(3px);
  animation: vlm-veil 8s ease-in-out infinite alternate;
}
.scn-volumnia-laments .light-rays {
  position: absolute; top: 10%; left: 20%; width: 150px; height: 250px;
  background: linear-gradient(135deg, rgba(255,224,160,0.3) 0%, transparent 60%);
  transform-origin: top left;
  animation: vlm-rays 5s ease-in-out infinite alternate;
}
.scn-volumnia-laments .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 30%, rgba(255,224,160,0.08) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(255,224,160,0.05) 0%, transparent 50%),
              radial-gradient(circle at 30% 70%, rgba(255,224,160,0.04) 0%, transparent 50%);
  background-size: 200px 200px, 150px 150px, 180px 180px;
  animation: vlm-dust 40s linear infinite;
}
@keyframes vlm-sky { 0% { opacity: 0.8; background-position: 0% 0%; } 50% { opacity: 1; background-position: 50% 0%; } 100% { opacity: 0.9; background-position: 100% 0%; } }
@keyframes vlm-pillar { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes vlm-figure { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-4px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes vlm-veil { 0% { transform: translateX(0) rotate(-5deg); opacity: 0.4; } 50% { transform: translateX(8px) rotate(5deg); opacity: 0.7; } 100% { transform: translateX(-4px) rotate(-2deg); opacity: 0.5; } }
@keyframes vlm-rays { 0% { transform: translateX(0) scaleY(1); opacity: 0.3; } 50% { transform: translateX(15px) scaleY(1.05); opacity: 0.6; } 100% { transform: translateX(-10px) scaleY(0.95); opacity: 0.4; } }
@keyframes vlm-dust { 0% { transform: translateY(0); } 100% { transform: translateY(-500px); } }

/* --- menenius-despair --- */
.scn-menenius-despair {
  background: linear-gradient(180deg, #f2d8a0 0%, #c89a5a 40%, #7a5020 80%, #3a1a0a 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255, 215, 140, 0.4) 0%, transparent 70%);
}
.scn-menenius-despair .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f7e6c4 0%, #e3b77a 60%, transparent 100%);
  animation: md-sky 14s ease-in-out infinite alternate;
}
.scn-menenius-despair .sun {
  position: absolute;
  top: 5%;
  left: 70%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #ffecb0 0%, #f2c850 50%, transparent 70%);
  border-radius: 50%;
  animation: md-sun 6s ease-in-out infinite alternate;
}
.scn-menenius-despair .hills {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #6b4a2a 0%, #3a2a12 100%);
  border-radius: 40% 70% 0 0 / 80% 60% 0 0;
  animation: md-hills 20s ease-in-out infinite alternate;
}
.scn-menenius-despair .dragon-body {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 120px;
  height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #2a1a08 0%, #0f0802 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: md-dragon 8s ease-in-out infinite;
}
.scn-menenius-despair .dragon-wing-l {
  position: absolute;
  bottom: 55%;
  left: 40%;
  width: 80px;
  height: 40px;
  background: #1a0e04;
  border-radius: 50% 20% 50% 50% / 50% 30% 70% 50%;
  transform-origin: right center;
  animation: md-wing-l 4s ease-in-out infinite;
}
.scn-menenius-despair .dragon-wing-r {
  position: absolute;
  bottom: 55%;
  right: 40%;
  width: 80px;
  height: 40px;
  background: #1a0e04;
  border-radius: 20% 50% 50% 50% / 30% 50% 50% 70%;
  transform-origin: left center;
  animation: md-wing-r 4s ease-in-out infinite 0.2s;
}
.scn-menenius-despair .mother {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 14px;
  height: 24px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: md-mother 10s ease-in-out infinite;
}
@keyframes md-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes md-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 6px rgba(242,200,80,0.6); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 15px rgba(242,200,80,0.8); } 100% { transform: scale(1); box-shadow: 0 0 40px 10px rgba(242,200,80,0.7); } }
@keyframes md-hills { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(0.97); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes md-dragon { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-8px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes md-wing-l { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes md-wing-r { 0% { transform: rotate(20deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(20deg); } }
@keyframes md-mother { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }

/* --- menenius-dragon --- */
.scn-menenius-dragon {
  background: linear-gradient(180deg, #eac48a 0%, #c89850 40%, #8a5a28 80%, #3a1a08 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255, 200, 100, 0.3) 0%, transparent 60%);
}
.scn-menenius-dragon .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5ddb0 0%, #d4a86a 50%, transparent 100%);
  animation: mdr-sky 10s ease-in-out infinite alternate;
}
.scn-menenius-dragon .mountains {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a12 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  animation: mdr-mountains 25s ease-in-out infinite alternate;
}
.scn-menenius-dragon .dragon-head {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 160px;
  height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  animation: mdr-head 6s ease-in-out infinite;
}
.scn-menenius-dragon .dragon-eye {
  position: absolute;
  bottom: 50%;
  left: 60%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #ffd060 0%, #c08030 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #c08030, 0 0 80px 24px rgba(192,128,48,0.5);
  animation: mdr-eye 3s ease-in-out infinite alternate;
}
.scn-menenius-dragon .dragon-jaw {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 100px;
  height: 50px;
  transform: translateX(-50%);
  background: #0a0502;
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: mdr-jaw 4s ease-in-out infinite;
}
.scn-menenius-dragon .ground-crack {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 8%;
  background: linear-gradient(90deg, transparent 0%, #4a2a12 20%, transparent 40%, #4a2a12 60%, transparent 80%);
  animation: mdr-crack 2s ease-in-out infinite alternate;
}
.scn-menenius-dragon .particles {
  position: absolute;
  top: 10%;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at 20% 30%, rgba(200,160,80,0.3) 0%, transparent 8%),
              radial-gradient(circle at 70% 60%, rgba(200,160,80,0.2) 0%, transparent 6%);
  animation: mdr-particles 3s ease-in-out infinite;
}
@keyframes mdr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mdr-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mdr-head { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes mdr-eye { 0% { box-shadow: 0 0 20px 6px rgba(192,128,48,0.5); opacity: 0.8; } 50% { box-shadow: 0 0 50px 18px rgba(255,208,96,0.7); opacity: 1; } 100% { box-shadow: 0 0 30px 10px rgba(192,128,48,0.5); opacity: 0.9; } }
@keyframes mdr-jaw { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes mdr-crack { 0% { opacity: 0.3; } 100% { opacity: 1; } }
@keyframes mdr-particles { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(1); } }

/* --- menenius-godlike --- */
.scn-menenius-godlike {
  background: linear-gradient(180deg, #fff2d6 0%, #eac68a 40%, #c89850 70%, #8a5a28 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255, 250, 230, 0.5) 0%, transparent 80%);
}
.scn-menenius-godlike .heaven {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fff8e8 0%, #edd6aa 60%, transparent 100%);
  animation: mg-heaven 12s ease-in-out infinite alternate;
}
.scn-menenius-godlike .ray-l {
  position: absolute;
  top: 5%;
  left: 15%;
  width: 8px;
  height: 60%;
  background: linear-gradient(180deg, rgba(255, 235, 180, 0.8) 0%, transparent 100%);
  transform: rotate(-25deg);
  transform-origin: top center;
  border-radius: 4px;
  animation: mg-ray 8s ease-in-out infinite;
}
.scn-menenius-godlike .ray-r {
  position: absolute;
  top: 5%;
  right: 15%;
  width: 8px;
  height: 60%;
  background: linear-gradient(180deg, rgba(255, 235, 180, 0.8) 0%, transparent 100%);
  transform: rotate(25deg);
  transform-origin: top center;
  border-radius: 4px;
  animation: mg-ray 8s ease-in-out infinite 0.5s;
}
.scn-menenius-godlike .throne {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 100px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a12 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
}
.scn-menenius-godlike .figure {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 40px;
  height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mg-figure 9s ease-in-out infinite;
}
.scn-menenius-godlike .halo {
  position: absolute;
  bottom: 52%;
  left: 50%;
  width: 50px;
  height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe8a0 0%, #f0c060 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(240, 192, 96, 0.5);
  animation: mg-halo 4s ease-in-out infinite alternate;
}
@keyframes mg-heaven { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mg-ray { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.3; } }
@keyframes mg-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes mg-halo { 0% { box-shadow: 0 0 20px 8px rgba(240, 192, 96, 0.3); opacity: 0.7; } 50% { box-shadow: 0 0 60px 25px rgba(255, 232, 160, 0.6); opacity: 1; } 100% { box-shadow: 0 0 30px 12px rgba(240, 192, 96, 0.3); opacity: 0.8; } }

/* --- messenger-news --- */
.scn-messenger-news {
  background: linear-gradient(180deg, #c8d8f0 0%, #a0b8d8 40%, #7088a8 70%, #40586a 100%),
              radial-gradient(ellipse at 80% 20%, rgba(255, 240, 200, 0.3) 0%, transparent 60%);
}
.scn-messenger-news .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8f0ff 0%, #b0c8e0 50%, transparent 100%);
  animation: mn-sky 12s ease-in-out infinite alternate;
}
.scn-messenger-news .sun {
  position: absolute;
  top: 5%;
  left: 85%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #fff8d0 0%, #e8c860 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #e8c860;
  animation: mn-sun 2s ease-in-out infinite alternate;
}
.scn-messenger-news .house {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 80px;
  height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-messenger-news .house::before {
  content: '';
  position: absolute;
  top: -20px;
  left: 0;
  width: 80px;
  height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 50% 50% 0 0;
}
.scn-messenger-news .mob-left {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 60px;
  height: 30px;
  background: radial-gradient(circle at 20% 50%, #2a1a0a 0%, transparent 60%);
  animation: mn-mob 0.6s ease-in-out infinite alternate;
}
.scn-messenger-news .mob-right {
  position: absolute;
  bottom: 18%;
  right: 25%;
  width: 70px;
  height: 35px;
  background: radial-gradient(circle at 80% 50%, #2a1a0a 0%, transparent 60%);
  animation: mn-mob 0.6s ease-in-out infinite alternate 0.3s;
}
.scn-messenger-news .tribune {
  position: absolute;
  bottom: 18%;
  left: 48%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: mn-tribune 0.8s ease-in-out infinite alternate;
}
.scn-messenger-news .dust {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at 30% 20%, rgba(180,160,120,0.15) 0%, transparent 5%),
              radial-gradient(circle at 70% 50%, rgba(180,160,120,0.1) 0%, transparent 4%);
  animation: mn-dust 2s ease-in-out infinite;
}
@keyframes mn-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mn-sun { 0% { transform: scale(0.9); box-shadow: 0 0 10px 4px #e8c860; } 50% { transform: scale(1.1); box-shadow: 0 0 30px 12px #ffd880; } 100% { transform: scale(1); box-shadow: 0 0 20px 8px #e8c860; } }
@keyframes mn-mob { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mn-tribune { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes mn-dust { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-volumnia-begs-son {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a0e 50%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-volumnia-begs-son .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: vbs-floor 12s ease-in-out infinite alternate;
}
.scn-volumnia-begs-son .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 5% 5%;
  animation: vbs-wall 8s ease-in-out infinite alternate;
}
.scn-volumnia-begs-son .pillar {
  position: absolute; left: 20%; bottom: 40%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,.5);
  animation: vbs-pillar 6s ease-in-out infinite;
}
.scn-volumnia-begs-son .mother {
  position: absolute; left: 30%; bottom: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vbs-mother 4s ease-in-out infinite;
}
.scn-volumnia-begs-son .son {
  position: absolute; right: 25%; bottom: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: vbs-son 4s ease-in-out infinite;
}
.scn-volumnia-begs-son .lantern {
  position: absolute; left: 45%; bottom: 50%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(255,208,128,.6);
  animation: vbs-lantern 3s ease-in-out infinite alternate;
}
@keyframes vbs-floor {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.98) translateY(2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes vbs-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes vbs-pillar {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes vbs-mother {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes vbs-son {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes vbs-lantern {
  0% { box-shadow: 0 0 20px 4px rgba(255,208,128,.5); opacity: 0.8; }
  50% { box-shadow: 0 0 32px 12px rgba(255,208,128,.8); opacity: 1; }
  100% { box-shadow: 0 0 24px 6px rgba(255,208,128,.6); opacity: 0.9; }
}

.scn-cominius-advises {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a0a 50%, #0a0505 100%),
              radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-cominius-advises .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  animation: cmn-floor 10s ease-in-out infinite alternate;
}
.scn-cominius-advises .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a0a 80%);
  animation: cmn-wall 6s ease-in-out infinite alternate;
}
.scn-cominius-advises .table {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  animation: cmn-table 8s ease-in-out infinite;
}
.scn-cominius-advises .advisor {
  position: absolute; left: 30%; bottom: 38%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cmn-advisor 4s ease-in-out infinite;
}
.scn-cominius-advises .senator {
  position: absolute; right: 30%; bottom: 38%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cmn-senator 5s ease-in-out infinite;
}
.scn-cominius-advises .candle {
  position: absolute; left: 47%; bottom: 42%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #f5d6a0 0%, #b08040 80%);
  border-radius: 20%;
  box-shadow: 0 0 16px 4px rgba(255,208,128,.5);
  animation: cmn-candle 2s ease-in-out infinite alternate;
}
.scn-cominius-advises .scroll {
  position: absolute; left: 48%; bottom: 32%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #d4c4a0 0%, #b0a080 100%);
  border-radius: 10%;
  animation: cmn-scroll 7s ease-in-out infinite;
}
@keyframes cmn-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97) translateY(1px); }
  100% { transform: scaleY(1); }
}
@keyframes cmn-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes cmn-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes cmn-advisor {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes cmn-senator {
  0% { transform: rotate(2deg); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(2deg); }
}
@keyframes cmn-candle {
  0% { box-shadow: 0 0 12px 2px rgba(255,208,128,.4); opacity: 0.9; }
  50% { box-shadow: 0 0 24px 8px rgba(255,208,128,.7); opacity: 1; }
  100% { box-shadow: 0 0 16px 4px rgba(255,208,128,.5); opacity: 0.9; }
}
@keyframes cmn-scroll {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-5deg) scaleY(1); }
}

.scn-coriolanus-agrees-compromise {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 50%, #050505 100%),
              radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, transparent 80%);
}
.scn-coriolanus-agrees-compromise .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: cac-floor 14s ease-in-out infinite alternate;
}
.scn-coriolanus-agrees-compromise .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: cac-wall 9s ease-in-out infinite alternate;
}
.scn-coriolanus-agrees-compromise .figure {
  position: absolute; left: 50%; bottom: 25%; width: 20%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(0,0,0,.8);
  animation: cac-figure 5s ease-in-out infinite;
}
.scn-coriolanus-agrees-compromise .sconce {
  position: absolute; left: 50%; top: 20%; width: 12%; height: 12%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #4a3a2a 0%, #1a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(180,140,80,.3);
  animation: cac-sconce 6s ease-in-out infinite;
}
.scn-coriolanus-agrees-compromise .light-beam {
  position: absolute; left: 45%; top: 0; width: 10%; height: 70%;
  background: linear-gradient(180deg, rgba(255,200,150,0.4) 0%, rgba(255,200,150,0) 100%);
  clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%);
  animation: cac-beam 8s ease-in-out infinite alternate;
}
.scn-coriolanus-agrees-compromise .shadow {
  position: absolute; left: 50%; bottom: 10%; width: 30%; height: 15%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: cac-shadow 5s ease-in-out infinite;
}
@keyframes cac-floor {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.97) translateY(2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cac-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes cac-figure {
  0% { transform: translateX(-50%) rotate(-2deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(-2deg) scaleY(1); }
}
@keyframes cac-sconce {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.8; }
}
@keyframes cac-beam {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}
@keyframes cac-shadow {
  0% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleX(1.1) scaleY(0.9); opacity: 0.4; }
  100% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.6; }
}

.scn-tribunes-prepare-accusation {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #a09070 100%),
              radial-gradient(ellipse at 70% 20%, #f0e0b0 0%, transparent 60%);
}
.scn-tribunes-prepare-accusation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: tbp-floor 12s ease-in-out infinite alternate;
}
.scn-tribunes-prepare-accusation .backwall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  animation: tbp-wall 8s ease-in-out infinite alternate;
}
.scn-tribunes-prepare-accusation .column-left {
  position: absolute; left: 15%; bottom: 30%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #c8b898 0%, #a09070 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,.2);
  animation: tbp-column 7s ease-in-out infinite;
}
.scn-tribunes-prepare-accusation .column-right {
  position: absolute; right: 15%; bottom: 30%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #c8b898 0%, #a09070 100%);
  border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,.2);
  animation: tbp-column 7s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-tribunes-prepare-accusation .tribune-left {
  position: absolute; left: 28%; bottom: 35%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #d4b080 0%, #b09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tbp-figure 5s ease-in-out infinite;
}
.scn-tribunes-prepare-accusation .tribune-right {
  position: absolute; right: 28%; bottom: 35%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tbp-figure 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-tribunes-prepare-accusation .scroll {
  position: absolute; left: 46%; bottom: 42%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #f0e0b0 0%, #d0c0a0 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: tbp-scroll 6s ease-in-out infinite;
}
.scn-tribunes-prepare-accusation .sunlight {
  position: absolute; left: 35%; top: 0; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(255,255,200,0.5) 0%, rgba(255,255,200,0) 100%);
  clip-path: polygon(20% 0, 80% 0, 65% 100%, 35% 100%);
  animation: tbp-sun 10s ease-in-out infinite alternate;
}
@keyframes tbp-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98) translateY(1px); }
  100% { transform: scaleY(1); }
}
@keyframes tbp-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes tbp-column {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes tbp-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes tbp-scroll {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(8deg) scaleY(1.05); }
  100% { transform: rotate(-8deg) scaleY(1); }
}
@keyframes tbp-sun {
  0% { opacity: 0.4; transform: skewX(0deg); }
  50% { opacity: 0.8; transform: skewX(-2deg); }
  100% { opacity: 0.4; transform: skewX(0deg); }
}

.scn-cominius-praises-coriolanus {
  background: 
    radial-gradient(ellipse at 50% 30%, #f0c060 0%, #8a5a2a 50%, #3a1a0a 100%),
    linear-gradient(180deg, #7a3a1a 0%, #4a2a1a 100%);
}

.scn-cominius-praises-coriolanus .backdrop {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 80%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: cp-backdrop 16s ease-in-out infinite;
}

.scn-cominius-praises-coriolanus .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a2a1a 0%, #2a0a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}

.scn-cominius-praises-coriolanus .pedestal {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 60px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0a060 0%, #a07030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cp-pedestal 10s ease-in-out infinite alternate;
}

.scn-cominius-praises-coriolanus .figure-back {
  position: absolute;
  bottom: calc(20% + 40px);
  left: 50%;
  width: 40px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: cp-figure 4s ease-in-out infinite;
}

.scn-cominius-praises-coriolanus .light-glow {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 100px;
  height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe080 0%, #f0c060 30%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: cp-light 5s ease-in-out infinite alternate;
}

.scn-cominius-praises-coriolanus .aura {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,80,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cp-aura 8s ease-in-out infinite alternate;
}

@keyframes cp-backdrop {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.95; transform: scaleY(1); }
}

@keyframes cp-pedestal {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}

@keyframes cp-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

@keyframes cp-light {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
}

@keyframes cp-aura {
  0% { opacity: 0.3; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.5; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.3; transform: translateX(-50%) scale(0.95); }
}

.scn-coriolanus-consul-offer {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b68a 50%, #a07a4a 100%),
    radial-gradient(ellipse at 50% 80%, #c8a070 0%, transparent 60%);
}

.scn-coriolanus-consul-offer .throne {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 100px;
  height: 120px;
  background: linear-gradient(180deg, #b8864a 0%, #8a6020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 10px 10px 20px rgba(0,0,0,0.3);
  animation: co-throne 12s ease-in-out infinite alternate;
}

.scn-coriolanus-consul-offer .figure-kneeling {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: co-kneel 4s ease-in-out infinite;
}

.scn-coriolanus-consul-offer .figure-consul {
  position: absolute;
  bottom: 25%;
  right: 25%;
  width: 35px;
  height: 70px;
  background: linear-gradient(180deg, #f0d8b0 0%, #c0a070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: co-consul 6s ease-in-out infinite alternate;
}

.scn-coriolanus-consul-offer .scroll {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 40px;
  height: 12px;
  background: linear-gradient(90deg, #eeddbb 0%, #bbaa88 100%);
  border-radius: 20%;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  animation: co-scroll 8s ease-in-out infinite;
}

.scn-coriolanus-consul-offer .light-source {
  position: absolute;
  top: 10%;
  right: 20%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #fff5e0 0%, #ffe8b0 20%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: co-light 5s ease-in-out infinite alternate;
}

.scn-coriolanus-consul-offer .shadow-shaft {
  position: absolute;
  top: 60%;
  left: 40%;
  width: 120px;
  height: 200px;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.4) 100%);
  transform: skewX(10deg) translateX(-30px);
  filter: blur(10px);
  animation: co-shadow 7s ease-in-out infinite alternate;
}

@keyframes co-throne {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px) rotate(0.5deg); }
  100% { transform: translateY(0); }
}

@keyframes co-kneel {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95) translateY(-2px); }
  100% { transform: scaleY(1); }
}

@keyframes co-consul {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px) rotate(-1deg); }
  100% { transform: translateX(0); }
}

@keyframes co-scroll {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

@keyframes co-light {
  0% { opacity: 0.8; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.9; transform: scale(1); }
}

@keyframes co-shadow {
  0% { opacity: 0.3; transform: skewX(10deg) translateX(-30px); }
  50% { opacity: 0.5; transform: skewX(12deg) translateX(-25px); }
  100% { opacity: 0.3; transform: skewX(10deg) translateX(-30px); }
}

.scn-forum-citizens-debate {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #deb887 100%),
    radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 50%);
}

.scn-forum-citizens-debate .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6bb3e0 0%, #c9e6ff 100%);
  animation: fc-sky 20s ease-in-out infinite alternate;
}

.scn-forum-citizens-debate .columns {
  position: absolute;
  bottom: 30%;
  left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, #c8a882 0%, #a07858 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(10% 0%, 15% 100%, 20% 100%, 25% 0%, 30% 0%, 35% 100%, 40% 100%, 45% 0%, 50% 0%, 55% 100%, 60% 100%, 65% 0%, 70% 0%, 75% 100%, 80% 100%, 85% 0%, 90% 0%, 95% 100%, 100% 0%, 0% 0%);
  animation: fc-columns 30s linear infinite;
}

.scn-forum-citizens-debate .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #c0a080 0%, #8a6840 100%);
}

.scn-forum-citizens-debate .citizen-left {
  position: absolute;
  bottom: 28%;
  left: 15%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: fc-citizen-left 4s ease-in-out infinite;
}

.scn-forum-citizens-debate .citizen-right {
  position: absolute;
  bottom: 28%;
  right: 20%;
  width: 22px;
  height: 45px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: fc-citizen-right 5s ease-in-out infinite;
  animation-delay: 2s;
}

.scn-forum-citizens-debate .sunburst {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, #fff5e0 0%, #ffe8a0 20%, transparent 60%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: fc-sunburst 6s ease-in-out infinite alternate;
}

@keyframes fc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes fc-columns {
  0% { background-position: 0 0; }
  100% { background-position: 100px 0; }
}

@keyframes fc-citizen-left {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes fc-citizen-right {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes fc-sunburst {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}

.scn-coriolanus-in-gown {
  background: 
    linear-gradient(180deg, #f5deb3 0%, #d2b48c 50%, #a0522d 100%),
    radial-gradient(ellipse at 50% 20%, #fffacd 0%, transparent 40%);
}

.scn-coriolanus-in-gown .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87cefa 0%, #b0e0e6 100%);
  animation: cg-sky 15s ease-in-out infinite alternate;
}

.scn-coriolanus-in-gown .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%);
}

.scn-coriolanus-in-gown .gown-figure {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 50px;
  height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #fff0d0 0%, #e0c0a0 40%, #a08060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.3);
  animation: cg-figure 3s ease-in-out infinite;
}

.scn-coriolanus-in-gown .citizen-1 {
  position: absolute;
  bottom: 32%;
  left: 20%;
  width: 25px;
  height: 55px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: cg-citizen1 2.5s ease-in-out infinite;
}

.scn-coriolanus-in-gown .citizen-2 {
  position: absolute;
  bottom: 28%;
  right: 15%;
  width: 25px;
  height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: cg-citizen2 3.5s ease-in-out infinite;
  animation-delay: 1s;
}

.scn-coriolanus-in-gown .shadow-cast {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 200px;
  height: 80px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.1) 100%);
  transform: skewX(-20deg);
  filter: blur(5px);
  animation: cg-shadow 4s ease-in-out infinite alternate;
}

@keyframes cg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes cg-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-5px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

@keyframes cg-citizen1 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0); }
}

@keyframes cg-citizen2 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0); }
}

@keyframes cg-shadow {
  0% { opacity: 0.2; transform: skewX(-20deg) scaleX(1); }
  50% { opacity: 0.5; transform: skewX(-25deg) scaleX(1.1); }
  100% { opacity: 0.2; transform: skewX(-20deg) scaleX(1); }
}

/* scene-marcius-enters - tense, overcast */
.scn-scene-marcius-enters {
  background: linear-gradient(180deg, #2f3640 0%, #353b48 30%, #2d3436 70%), radial-gradient(ellipse at 50% 100%, #2d3436 0%, transparent 70%);
}
.scn-scene-marcius-enters .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #596275 0%, #2f3640 100%);
  animation: sme-sky 20s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a4e54 0%, #2d3436 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: sme-hills 15s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters .gate {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 150px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4e54 0%, #2d3436 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: sme-gate 10s ease-in-out infinite;
}
.scn-scene-marcius-enters .figure {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 50px;
  background: #1e1e1e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sme-figure 4s ease-in-out infinite;
}
.scn-scene-marcius-enters .crowd {
  position: absolute; bottom: 25%; left: 33%; width: 100px; height: 40px;
  background: #1e1e1e;
  border-radius: 60% 60% 30% 30% / 70% 70% 40% 40%;
  animation: sme-crowd 6s ease-in-out infinite;
}
.scn-scene-marcius-enters .lantern {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 8px;
  background: #ffc864;
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(255,200,100,0.3);
  animation: sme-lantern 3s ease-in-out infinite;
}
.scn-scene-marcius-enters .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 140px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  animation: sme-shadow 8s ease-in-out infinite;
}
@keyframes sme-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes sme-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes sme-gate {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(0.5deg); }
  50% { transform: translateX(-50%) rotate(-0.3deg); }
  75% { transform: translateX(-50%) rotate(0.4deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes sme-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(20px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sme-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sme-lantern {
  0% { box-shadow: 0 0 4px 2px rgba(255,200,100,0.3); }
  50% { box-shadow: 0 0 8px 4px rgba(255,200,100,0.6); }
  100% { box-shadow: 0 0 4px 2px rgba(255,200,100,0.3); }
}
@keyframes sme-shadow {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); }
}

/* scene-marcius-news - tense, overcast */
.scn-scene-marcius-news {
  background: linear-gradient(180deg, #40444a 0%, #353a40 40%, #2d3136 100%), radial-gradient(ellipse at 50% 0%, #4a4f55 0%, transparent 60%);
}
.scn-scene-marcius-news .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a6068 0%, #40444a 100%);
  animation: smn-sky 25s ease-in-out infinite alternate;
}
.scn-scene-marcius-news .bg-buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3e44 0%, #2d3136 100%);
  clip-path: polygon(0% 100%, 5% 40%, 15% 100%, 25% 35%, 35% 100%, 50% 20%, 65% 100%, 75% 45%, 85% 100%, 95% 30%, 100% 100%);
  animation: smn-buildings 18s ease-in-out infinite;
}
.scn-scene-marcius-news .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a4e54 0%, #2d3136 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-scene-marcius-news .figure-citizen {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 40px;
  background: #1e1e1e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: smn-citizen 6s ease-in-out infinite;
}
.scn-scene-marcius-news .figure-marcius {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 52px;
  background: #1e1e1e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: smn-marcius 8s ease-in-out infinite;
}
.scn-scene-marcius-news .bowl {
  position: absolute; bottom: 18%; left: 42%; width: 16px; height: 8px;
  background: #5a4a3a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: smn-bowl 4s ease-in-out infinite;
}
@keyframes smn-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes smn-buildings {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes smn-citizen {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes smn-marcius {
  0% { transform: rotate(5deg); }
  25% { transform: rotate(3deg); }
  50% { transform: rotate(7deg); }
  75% { transform: rotate(4deg); }
  100% { transform: rotate(5deg); }
}
@keyframes smn-bowl {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* scene-volscian-news - tense, sunlit */
.scn-scene-volscian-news {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #c2b280 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-scene-volscian-news .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0e0f0 0%, #87CEEB 100%);
  animation: svn-sky 30s ease-in-out infinite alternate;
}
.scn-scene-volscian-news .sun {
  position: absolute; top: 8%; left: 80%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.5);
  animation: svn-sun 8s ease-in-out infinite;
}
.scn-scene-volscian-news .rays {
  position: absolute; top: 8%; left: 80%; width: 100px; height: 100px;
  margin: -25px 0 0 -25px;
  background: conic-gradient(from 0deg, transparent 0deg, rgba(255,215,0,0.1) 30deg, transparent 60deg, rgba(255,215,0,0.1) 90deg, transparent 120deg, rgba(255,215,0,0.1) 150deg, transparent 180deg, rgba(255,215,0,0.1) 210deg, transparent 240deg, rgba(255,215,0,0.1) 270deg, transparent 300deg, rgba(255,215,0,0.1) 330deg, transparent 360deg);
  border-radius: 50%;
  animation: svn-rays 20s linear infinite;
}
.scn-scene-volscian-news .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c2b280 0%, #8B7355 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-scene-volscian-news .tent {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 100px;
  background: linear-gradient(135deg, #d2b48c 0%, #8B7355 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: svn-tent 12s ease-in-out infinite;
}
.scn-scene-volscian-news .figure-messenger {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 48px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: svn-messenger 3s ease-in-out infinite;
}
.scn-scene-volscian-news .figure-marcius {
  position: absolute; bottom: 15%; left: 65%; width: 22px; height: 52px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: svn-marcius 5s ease-in-out infinite;
}
@keyframes svn-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes svn-sun {
  0% { box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); }
  50% { box-shadow: 0 0 60px 30px rgba(255,215,0,0.7); }
  100% { box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); }
}
@keyframes svn-rays {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes svn-tent {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
  100% { transform: scaleX(1); }
}
@keyframes svn-messenger {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(5deg); }
  50% { transform: translateX(20px) rotate(0deg); }
  75% { transform: translateX(10px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes svn-marcius {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}

/* scene-war-council - determined, sunlit */
.scn-scene-war-council {
  background: linear-gradient(180deg, #b0c4de 0%, #f0e68c 40%, #c2b280 100%), radial-gradient(ellipse at 50% 100%, #d2b48c 0%, transparent 60%);
}
.scn-scene-war-council .tent-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d2b48c 0%, #8B7355 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: swc-tent 20s ease-in-out infinite;
}
.scn-scene-war-council .table {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6b4226 0%, #8B5E3C 50%, #6b4226 100%);
  border-radius: 30px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: swc-table 15s ease-in-out infinite;
}
.scn-scene-war-council .figure-cominius {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 56px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: swc-cominius 10s ease-in-out infinite;
}
.scn-scene-war-council .figure-marcius {
  position: absolute; bottom: 25%; left: 48%; width: 22px; height: 54px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: swc-marcius 12s ease-in-out infinite;
}
.scn-scene-war-council .figure-lartius {
  position: absolute; bottom: 25%; left: 58%; width: 20px; height: 50px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: swc-lartius 8s ease-in-out infinite;
}
.scn-scene-war-council .lamp-light {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd700 0%, #ffa500 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,215,0,0.4);
  animation: swc-lamp 5s ease-in-out infinite alternate;
}
.scn-scene-war-council .map {
  position: absolute; bottom: 22%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c2a570 0%, #8B7355 100%);
  border-radius: 10px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: swc-map 20s ease-in-out infinite;
}
@keyframes swc-tent {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes swc-table {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(0.98); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes swc-cominius {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes swc-marcius {
  0% { transform: rotate(5deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(5deg); }
}
@keyframes swc-lartius {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes swc-lamp {
  0% { box-shadow: 0 0 30px 15px rgba(255,215,0,0.4); }
  100% { box-shadow: 0 0 50px 25px rgba(255,215,0,0.6); }
}
@keyframes swc-map {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(0.95); }
  100% { transform: translateX(-50%) scale(1); }
}

.scn-menenius-baits-guard {
  background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 50%, #FFD700 100%), radial-gradient(ellipse at 50% 0%, #FFA500 0%, transparent 70%);
}
.scn-menenius-baits-guard .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%);
  animation: mbg-sky 10s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .sun {
  position: absolute; top: 5%; right: 20%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px #FFD700, 0 0 80px rgba(255,215,0,0.4);
  animation: mbg-sun 6s ease-in-out infinite;
}
.scn-menenius-baits-guard .wall {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #D2B48C, #A0522D);
  border-radius: 5px;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: mbg-wall 12s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .gate {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, #8B4513, #5C4033);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.5), inset 0 -5px 10px rgba(0,0,0,0.3);
  animation: mbg-gate 8s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .guard {
  position: absolute; bottom: 25%; left: 42%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mbg-guard 4s ease-in-out infinite;
}
.scn-menenius-baits-guard .menenius {
  position: absolute; bottom: 25%; left: 58%;
  width: 25px; height: 50px;
  background: linear-gradient(180deg, #D2691E 0%, #8B4513 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mbg-menenius 3s ease-in-out infinite;
}
.scn-menenius-baits-guard .coin {
  position: absolute; bottom: 30%; left: 50%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #FFD700, #DAA520);
  border-radius: 50%;
  box-shadow: 0 0 8px gold, 0 0 16px rgba(255,215,0,0.3);
  animation: mbg-coin 2s ease-in-out infinite alternate;
}
@keyframes mbg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mbg-sun {
  0% { transform: translateX(0) scale(1); box-shadow: 0 0 40px #FFD700, 0 0 80px rgba(255,215,0,0.4); }
  50% { transform: translateX(10px) scale(1.05); box-shadow: 0 0 60px #FFD700, 0 0 120px rgba(255,215,0,0.6); }
  100% { transform: translateX(0) scale(1); box-shadow: 0 0 40px #FFD700, 0 0 80px rgba(255,215,0,0.4); }
}
@keyframes mbg-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mbg-gate {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes mbg-guard {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes mbg-menenius {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-2px); }
  50% { transform: rotate(-5deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mbg-coin {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  50% { transform: translateY(-10px) rotate(180deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(360deg); opacity: 1; }
}

.scn-item-letter-aufidius { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%); }
.scn-item-letter-aufidius .room-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #0a0a1a 0%, #000 100%); animation: aff-bg 15s ease-in-out infinite alternate; }
.scn-item-letter-aufidius .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-item-letter-aufidius .desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:4px; box-shadow:0 -8px 20px rgba(0,0,0,.7); }
.scn-item-letter-aufidius .letter { position:absolute; bottom:18%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #d0c0a0 0%, #a08060 100%); transform:rotate(5deg); box-shadow:0 4px 8px rgba(0,0,0,.5); animation: aff-letter 6s ease-in-out infinite; }
.scn-item-letter-aufidius .figure { position:absolute; bottom:15%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: aff-figure 4s ease-in-out infinite; }
.scn-item-letter-aufidius .candle { position:absolute; bottom:18%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #a07040 100%); border-radius:4px 4px 2px 2px; }
.scn-item-letter-aufidius .candle-glow { position:absolute; bottom:18%; left:30%; width:40px; height:40px; transform:translate(-16px,-10px); background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,200,100,0) 70%); animation: aff-glow 2s ease-in-out infinite alternate; }

@keyframes aff-bg { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes aff-letter { 0%,100%{transform:rotate(5deg)} 50%{transform:rotate(-3deg) translateY(-2px)} }
@keyframes aff-figure { 0%{transform:translateX(0) translateY(0) rotate(0)} 25%{transform:translateX(2px) translateY(-1px) rotate(2deg)} 50%{transform:translateX(0) translateY(0) rotate(0)} 75%{transform:translateX(-2px) translateY(-1px) rotate(-2deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes aff-glow { 0%{opacity:0.8;transform:translate(-16px,-10px) scale(1)} 50%{opacity:1;transform:translate(-16px,-10px) scale(1.15)} 100%{opacity:0.7;transform:translate(-16px,-10px) scale(0.95)} }

.scn-item-butterfly-gilded { background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 100%), radial-gradient(circle at 70% 30%, #fff8e0 0%, transparent 60%); }
.scn-item-butterfly-gilded .sunlight { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 100%); animation: gld-sun 10s ease-in-out infinite alternate; }
.scn-item-butterfly-gilded .window { position:absolute; top:10%; right:15%; width:120px; height:160px; background: linear-gradient(180deg, #c0d8f0 0%, #a0c0e0 100%); border:6px solid #8a7050; border-radius:4px; }
.scn-item-butterfly-gilded .chair { position:absolute; bottom:15%; left:25%; width:80px; height:100px; background: linear-gradient(135deg, #b08050 0%, #806040 100%); border-radius:10% 10% 30% 30%; }
.scn-item-butterfly-gilded .woman { position:absolute; bottom:20%; left:28%; width:40px; height:80px; background: linear-gradient(180deg, #d8b888 0%, #b09070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: gld-woman 5s ease-in-out infinite; }
.scn-item-butterfly-gilded .child { position:absolute; bottom:18%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: gld-child 6s ease-in-out infinite; }
.scn-item-butterfly-gilded .basket { position:absolute; bottom:12%; left:22%; width:40px; height:30px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:20% 20% 40% 40%; }
.scn-item-butterfly-gilded .butterfly { position:absolute; top:30%; left:60%; width:20px; height:20px; background: radial-gradient(circle at 50% 50%, #e0b040 0%, #c09020 100%); border-radius:50%; animation: gld-butterfly 8s ease-in-out infinite; box-shadow:0 0 20px 6px rgba(224,176,64,0.4); }
.scn-item-butterfly-gilded .butterfly-glow { position:absolute; top:30%; left:60%; width:60px; height:60px; transform:translate(-20px,-20px); background: radial-gradient(circle, rgba(224,176,64,0.3) 0%, transparent 70%); animation: gld-glow 8s ease-in-out infinite; }

@keyframes gld-sun { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes gld-woman { 0%{transform:translateY(0) rotate(0)} 25%{transform:translateY(-2px) rotate(2deg)} 50%{transform:translateY(0) rotate(0)} 75%{transform:translateY(-1px) rotate(-2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes gld-child { 0%{transform:translateX(0) translateY(0)} 50%{transform:translateX(5px) translateY(-3px)} 100%{transform:translateX(0) translateY(0)} }
@keyframes gld-butterfly { 0%{transform:translate(0,0) rotate(0) scale(1)} 25%{transform:translate(10px,-15px) rotate(45deg) scale(1.1)} 50%{transform:translate(-5px,-10px) rotate(-20deg) scale(0.9)} 75%{transform:translate(15px,-5px) rotate(30deg) scale(1)} 100%{transform:translate(0,0) rotate(0) scale(1)} }
@keyframes gld-glow { 0%{opacity:0.5;transform:translate(-20px,-20px) scale(1)} 50%{opacity:0.8;transform:translate(-20px,-20px) scale(1.3)} 100%{opacity:0.5;transform:translate(-20px,-20px) scale(1)} }

.scn-item-butterfly-gilded {
  background: linear-gradient(180deg, #f9e3b0 0%, #d4a373 50%, #a67c52 100%),
              radial-gradient(ellipse at 30% 20%, #f9d59a 0%, transparent 60%);
}
.scn-item-butterfly-gilded .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,235,190,0.3) 0%, rgba(180,140,100,0.2) 100%);
  animation: gb-wall 14s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .window {
  position: absolute; top: 8%; left: 30%; width: 110px; height: 150px;
  background: linear-gradient(135deg, #fce9c0 0%, #f0d8a8 60%, #b8915a 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: inset 0 0 20px rgba(255,220,160,0.5), 0 0 30px rgba(255,200,100,0.3);
  animation: gb-window 6s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .sunbeam {
  position: absolute; top: 0; left: 20%; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  transform-origin: top left; animation: gb-sunbeam 20s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .butterfly {
  position: absolute; top: 30%; left: 55%; width: 48px; height: 38px;
  background: radial-gradient(circle at 50% 40%, #f5c542 0%, #b8860b 50%, #704214 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(255,215,0,0.6), 0 0 40px 12px rgba(200,150,50,0.3);
  animation: gb-butterfly 4s ease-in-out infinite;
}
.scn-item-butterfly-gilded .hoop {
  position: absolute; bottom: 25%; left: 18%; width: 80px; height: 80px;
  background: radial-gradient(circle, #d4a373 0%, #b0804a 50%, #8a6430 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2), inset 0 -2px 6px rgba(0,0,0,0.1);
  animation: gb-hoop 10s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .hoop::after {
  content: ''; position: absolute; top: 12%; left: 12%; width: 76%; height: 76%;
  background: radial-gradient(circle, #f7e4c0 0%, #e2c596 60%, #c9a77a 100%);
  border-radius: 50%; box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
}
.scn-item-butterfly-gilded .figure {
  position: absolute; bottom: 10%; right: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a3020 0%, #2f1e12 60%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: gb-figure 5s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .needle-thread {
  position: absolute; bottom: 32%; left: 25%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #c0a87a 0%, #8a7050 100%);
  border-radius: 40%; transform: rotate(-20deg); animation: gb-needle 3s ease-in-out infinite;
}
@keyframes gb-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gb-window {
  0% { box-shadow: inset 0 0 15px rgba(255,220,160,0.4), 0 0 20px rgba(255,200,100,0.2); }
  50% { box-shadow: inset 0 0 25px rgba(255,240,200,0.7), 0 0 40px rgba(255,220,120,0.5); }
  100% { box-shadow: inset 0 0 18px rgba(255,220,160,0.5), 0 0 28px rgba(255,200,100,0.3); }
}
@keyframes gb-sunbeam {
  0% { transform: rotate(0deg) scaleY(1); opacity: 0.6; }
  50% { transform: rotate(2deg) scaleY(1.05); opacity: 0.9; }
  100% { transform: rotate(-1deg) scaleY(0.95); opacity: 0.7; }
}
@keyframes gb-butterfly {
  0% { transform: translate(0,0) rotate(0deg) scale(1); }
  30% { transform: translate(4px,-6px) rotate(8deg) scale(1.05); }
  60% { transform: translate(-2px,2px) rotate(-4deg) scale(0.95); }
  100% { transform: translate(0,0) rotate(0deg) scale(1); }
}
@keyframes gb-hoop {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes gb-figure {
  0% { transform: translate(0,0) rotate(-1deg); }
  50% { transform: translate(0,-2px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(-1deg); }
}
@keyframes gb-needle {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-18deg) translateX(1px); }
  100% { transform: rotate(-20deg) translateX(0); }
}

.scn-menenius-baits-guard {
  background: linear-gradient(180deg, #f7e7b8 0%, #e2c385 40%, #c99f5c 70%, #9e7138 100%),
              radial-gradient(ellipse at 60% 80%, #d4a373 0%, transparent 60%);
}
.scn-menenius-baits-guard .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a4c2f4 0%, #daf0e0 40%, #f7e7b8 100%);
  animation: mbg-sky 10s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b58d5c 0%, #8b6a3e 60%, #5a4528 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
}
.scn-menenius-baits-guard .gate {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5), 0 4px 12px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateY(-5deg);
  animation: mbg-gate 8s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .guard {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #b87878 0%, #8a4a4a 80%, #5e1a1d 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mbg-guard 6s ease-in-out infinite;
}
.scn-menenius-baits-guard .menenius {
  position: absolute; bottom: 20%; right: 25%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #f5f0e0 0%, #d9cba0 50%, #b08d5a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: mbg-menenius 4s ease-in-out infinite;
}
.scn-menenius-baits-guard .spear {
  position: absolute; bottom: 40%; left: calc(25% + 18px); width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
  animation: mbg-spear 2s ease-in-out infinite;
}
.scn-menenius-baits-guard .sun {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff4c0 0%, #f0d080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,208,128,0.4);
  animation: mbg-sun 12s ease-in-out infinite alternate;
}
@keyframes mbg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes mbg-gate {
  0% { transform: perspective(600px) rotateY(-5deg) translateY(0); }
  50% { transform: perspective(600px) rotateY(-2deg) translateY(-3px); }
  100% { transform: perspective(600px) rotateY(-5deg) translateY(0); }
}
@keyframes mbg-guard {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-3px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes mbg-menenius {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(-4px) rotate(-3deg) scaleY(1.02); }
  60% { transform: translateX(2px) rotate(2deg) scaleY(0.98); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes mbg-spear {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-6deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mbg-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cup { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.servant { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* family-entreaty */
.scn-family-entreaty {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #251810 100%),
              radial-gradient(ellipse at 30% 60%, #3a2510 10%, transparent 80%);
}
.scn-family-entreaty .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a, #2a1e14);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-family-entreaty .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a05 100%);
  border-top: 2px solid #3a2510;
}
.scn-family-entreaty .window {
  position: absolute; top: 18%; left: 55%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at center, #c8955a 0%, #8a6040 70%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(200,149,90,0.4), inset 0 0 20px rgba(200,149,90,0.3);
  animation: fe-window 8s ease-in-out infinite alternate;
}
.scn-family-entreaty .furniture {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-family-entreaty .figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a1c, #1a120a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fe-figL 6s ease-in-out infinite;
}
.scn-family-entreaty .figure-right {
  position: absolute; bottom: 22%; right: 20%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #4a3520, #2a1a10);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fe-figR 7s ease-in-out infinite;
}
.scn-family-entreaty .flame {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at center bottom, #ffb040 0%, #d08020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,176,64,0.5), 0 0 60px 20px rgba(200,100,20,0.3);
  animation: fe-flame 2s ease-in-out infinite alternate;
}
@keyframes fe-window {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.02); }
  100% { opacity: 0.6; transform: scaleY(0.98); }
}
@keyframes fe-figL {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes fe-figR {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-3px) rotate(1deg); }
  66% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fe-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.7; }
}

/* volumnia-reconciliation */
.scn-volumnia-reconciliation {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #201510 100%),
              radial-gradient(ellipse at 70% 40%, #3a2a18 10%, transparent 80%);
}
.scn-volumnia-reconciliation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a, #2a1e14);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-volumnia-reconciliation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a05 100%);
}
.scn-volumnia-reconciliation .column-left {
  position: absolute; top: 10%; left: 15%; width: 18px; height: 70%;
  background: linear-gradient(90deg, #4a3a2a, #3a2a1a, #4a3a2a);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,0.6);
}
.scn-volumnia-reconciliation .column-right {
  position: absolute; top: 10%; right: 15%; width: 18px; height: 70%;
  background: linear-gradient(90deg, #4a3a2a, #3a2a1a, #4a3a2a);
  border-radius: 4px;
  box-shadow: -2px 0 10px rgba(0,0,0,0.6);
}
.scn-volumnia-reconciliation .table {
  position: absolute; bottom: 22%; left: 35%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a4030, #3a2a1a);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-volumnia-reconciliation .figure {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a2a1c, #1a120a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rc-fig 8s ease-in-out infinite;
}
.scn-volumnia-reconciliation .scroll {
  position: absolute; bottom: 30%; left: 46%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #b89860, #8a7040);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: rc-scroll 10s ease-in-out infinite alternate;
}
.scn-volumnia-reconciliation .lamp {
  position: absolute; bottom: 20%; right: 28%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at center, #ffb040 0%, #d08020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 12px rgba(255,176,64,0.4);
  animation: rc-lamp 4s ease-in-out infinite alternate;
}
@keyframes rc-fig {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rc-scroll {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-7deg) translateX(-2px); }
}
@keyframes rc-lamp {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.8; }
}

/* volumnia-legacy */
.scn-volumnia-legacy {
  background: linear-gradient(180deg, #1e1410 0%, #0f0a06 50%, #1a100a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2018 10%, transparent 70%);
}
.scn-volumnia-legacy .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2a1e14, #1a120a);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-volumnia-legacy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a120a, #0d0805);
}
.scn-volumnia-legacy .alcove {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 60%;
  background: linear-gradient(180deg, #3a2a1a, #2a1a10);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-volumnia-legacy .statue {
  position: absolute; top: 15%; left: 44%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.6);
  animation: lg-statue 15s ease-in-out infinite alternate;
}
.scn-volumnia-legacy .figure {
  position: absolute; bottom: 20%; left: 50%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #2a1e14, #0f0a06);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: lg-fig 10s ease-in-out infinite;
}
.scn-volumnia-legacy .shadow {
  position: absolute; bottom: 20%; left: 45%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: lg-shadow 10s ease-in-out infinite;
}
.scn-volumnia-legacy .glow {
  position: absolute; top: 12%; right: 28%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, #c8955a 0%, transparent 100%);
  opacity: 0.3;
  animation: lg-glow 8s ease-in-out infinite alternate;
}
@keyframes lg-statue {
  0% { transform: translateY(0); opacity: 0.5; }
  50% { transform: translateY(-2px); opacity: 0.8; }
  100% { transform: translateY(1px); opacity: 0.6; }
}
@keyframes lg-fig {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-48%) translateY(-3px) rotate(1deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(-1deg); }
}
@keyframes lg-shadow {
  0%, 100% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.2; }
}
@keyframes lg-glow {
  0% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.3); opacity: 0.4; }
  100% { transform: scale(0.9); opacity: 0.3; }
}

/* volumnia-reminder */
.scn-volumnia-reminder {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #1e1410 100%),
              radial-gradient(ellipse at 40% 50%, #3a2018 10%, transparent 80%);
}
.scn-volumnia-reminder .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #3a2a1a, #2a1e14);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-volumnia-reminder .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a120a, #0d0805);
}
.scn-volumnia-reminder .chair {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
}
.scn-volumnia-reminder .figure {
  position: absolute; bottom: 18%; left: 50%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1c, #1a120a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: rm-fig 7s ease-in-out infinite;
}
.scn-volumnia-reminder .sword {
  position: absolute; bottom: 25%; left: 38%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a, #5a4a30);
  border-radius: 2px;
  transform: rotate(20deg);
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: rm-sword 9s ease-in-out infinite alternate;
}
.scn-volumnia-reminder .lamp {
  position: absolute; bottom: 12%; right: 25%; width: 18px; height: 24px;
  background: radial-gradient(ellipse at center, #ffb040 0%, #d08020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 10px rgba(255,176,64,0.4);
  animation: rm-lamp 3s ease-in-out infinite alternate;
}
.scn-volumnia-reminder .smoke {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: rm-smoke 12s ease-in-out infinite;
}
@keyframes rm-fig {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-48%) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(-52%) translateY(0) rotate(-1deg); }
}
@keyframes rm-sword {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(22deg) translateY(0); }
}
@keyframes rm-lamp {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
@keyframes rm-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-10px) scale(1.3); opacity: 0.1; }
  100% { transform: translateY(5px) scale(0.8); opacity: 0.2; }
}

/* aufidius-accusation */
.scn-aufidius-accusation {
  background: linear-gradient(180deg, #f0e6d0 0%, #c8b89a 40%, #9a7a5a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-aufidius-accusation .sun-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f0d090 60%, transparent 100%);
  animation: ac-sunpulse 6s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .col-left {
  position:absolute; bottom:20%; left:10%; width:30px; height:80%;
  background: linear-gradient(90deg, #8a7a5a 0%, #b0a080 30%, #8a7a5a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: ac-colshrink 12s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .col-right {
  position:absolute; bottom:20%; right:10%; width:30px; height:80%;
  background: linear-gradient(90deg, #8a7a5a 0%, #b0a080 30%, #8a7a5a 100%);
  border-radius: 10% 10% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  animation: ac-colshrink 12s ease-in-out infinite alternate-reverse;
}
.scn-aufidius-accusation .figure-left {
  position:absolute; bottom:15%; left:20%; width:34px; height:80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-figleft 4s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .figure-right {
  position:absolute; bottom:15%; right:20%; width:34px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-figright 4s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .arm-point {
  position:absolute; bottom:40%; left:30%; width:20px; height:4px;
  background: #3a2a1a; border-radius: 2px; transform: rotate(-20deg);
  transform-origin: right center;
  animation: ac-point 2s ease-in-out infinite alternate;
}
.scn-aufidius-accusation .shadow-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.35) 100%);
  border-radius: 30% 30% 0 0;
  animation: ac-floor 8s ease-in-out infinite alternate;
}
@keyframes ac-sunpulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ac-colshrink {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.98) translateY(2px); }
  100% { transform: scaleY(1.01) translateY(-1px); }
}
@keyframes ac-figleft {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(-4px) rotate(-2deg); }
}
@keyframes ac-figright {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-6px) rotate(-3deg); }
  100% { transform: translateX(4px) rotate(2deg); }
}
@keyframes ac-point {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.1); }
  100% { transform: rotate(-25deg) scaleX(0.9); }
}
@keyframes ac-floor {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.05); }
  100% { opacity: 0.6; transform: scaleY(0.95); }
}

/* coriolanus-rage */
.scn-coriolanus-rage {
  background: linear-gradient(180deg, #e8d8b8 0%, #c0a880 40%, #907050 100%), radial-gradient(ellipse at 50% 100%, #b09070 0%, transparent 80%);
}
.scn-coriolanus-rage .sun-bg {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffd8a0 0%, #f0b870 60%, transparent 100%);
  animation: cr-sunflame 4s ease-in-out infinite alternate;
}
.scn-coriolanus-rage .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 20% 20% 0 0;
  animation: cr-ground 10s ease-in-out infinite alternate;
}
.scn-coriolanus-rage .figure-central {
  position:absolute; bottom:35%; left:50%; width:50px; height:100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 30px 5px rgba(0,0,0,0.5);
  animation: cr-figcentral 3s ease-in-out infinite alternate;
}
.scn-coriolanus-rage .rage-particles {
  position:absolute; bottom:45%; left:40%; width:60px; height:60px;
  background: radial-gradient(circle, #d08040 0%, transparent 60%);
  filter: blur(4px);
  animation: cr-particles 2s ease-in-out infinite;
}
.scn-coriolanus-rage .shadow-figure {
  position:absolute; bottom:30%; left:50%; width:40px; height:20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: cr-shadow 3s ease-in-out infinite alternate;
}
.scn-coriolanus-rage .sunburst {
  position:absolute; top:10%; left:50%; width:80px; height:80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff0c0 0%, #ffd080 30%, transparent 60%);
  animation: cr-burst 6s ease-in-out infinite alternate;
}
@keyframes cr-sunflame {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes cr-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(5px); }
  100% { transform: translateY(-3px); }
}
@keyframes cr-figcentral {
  0% { transform: translateX(-50%) rotate(-3deg) scale(1); }
  50% { transform: translateX(-50%) rotate(5deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-1deg) scale(0.95); }
}
@keyframes cr-particles {
  0% { opacity: 0; transform: translate(0,0) scale(0.5); }
  33% { opacity: 0.8; transform: translate(10px,-10px) scale(1.2); }
  66% { opacity: 0.5; transform: translate(-5px,-20px) scale(0.8); }
  100% { opacity: 0; transform: translate(5px,-30px) scale(0.3); }
}
@keyframes cr-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scaleX(1.3); opacity: 0.8; }
  100% { transform: translateX(-50%) scaleX(0.9); opacity: 0.4; }
}
@keyframes cr-burst {
  0% { transform: translateX(-50%) scale(0.8); opacity: 0.6; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; }
}

/* lords-intervention */
.scn-lords-intervention {
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a080 40%, #907050 100%), radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 70%);
}
.scn-lords-intervention .sun-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #f0c890 50%, transparent 100%);
  animation: li-sunglow 8s ease-in-out infinite alternate;
}
.scn-lords-intervention .floor-tiled {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px, #8a7a5a 20px, #a09070 20px, #a09070 40px);
  border-radius: 10% 10% 0 0;
  animation: li-floor 12s ease-in-out infinite alternate;
}
.scn-lords-intervention .lord-left {
  position:absolute; bottom:20%; left:15%; width:30px; height:70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-lordleft 5s ease-in-out infinite alternate;
}
.scn-lords-intervention .lord-center {
  position:absolute; bottom:20%; left:50%; width:35px; height:75px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: li-lordcenter 4s ease-in-out infinite alternate;
}
.scn-lords-intervention .lord-right {
  position:absolute; bottom:20%; right:15%; width:30px; height:70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-lordright 5s ease-in-out infinite alternate-reverse;
}
.scn-lords-intervention .arm-extend {
  position:absolute; bottom:40%; left:45%; width:50px; height:4px;
  background: #3a2a1a; border-radius: 2px; transform: rotate(-10deg);
  transform-origin: left center;
  animation: li-arm 2s ease-in-out infinite alternate;
}
.scn-lords-intervention .shadow-group {
  position:absolute; bottom:18%; left:10%; right:10%; height:15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: li-shadow 6s ease-in-out infinite alternate;
}
@keyframes li-sunglow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes li-floor {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(2px); }
  100% { transform: scaleX(0.98) translateY(-1px); }
}
@keyframes li-lordleft {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes li-lordcenter {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-3deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes li-lordright {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes li-arm {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-5deg) scaleX(1.2); }
  100% { transform: rotate(-15deg) scaleX(0.8); }
}
@keyframes li-shadow {
  0% { transform: scaleY(1); opacity: 0.5; }
  50% { transform: scaleY(1.2); opacity: 0.8; }
  100% { transform: scaleY(0.8); opacity: 0.4; }
}

/* mob-chaos */
.scn-mob-chaos {
  background: linear-gradient(180deg, #c8b090 0%, #a08060 40%, #705030 100%), radial-gradient(ellipse at 50% 100%, #a08060 0%, transparent 70%);
}
.scn-mob-chaos .sun-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffd090 0%, #e8b870 50%, transparent 100%);
  animation: mc-sunflicker 4s ease-in-out infinite alternate;
}
.scn-mob-chaos .ground-rough {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0;
  animation: mc-ground 8s ease-in-out infinite alternate;
}
.scn-mob-chaos .mob-figures {
  position:absolute; bottom:20%; left:5%; right:5%; height:50%;
  background: repeating-linear-gradient(90deg, 
    rgba(50,30,20,0.6) 0px, rgba(50,30,20,0.6) 12px,
    rgba(40,20,10,0.4) 12px, rgba(40,20,10,0.4) 18px,
    rgba(60,40,30,0.5) 18px, rgba(60,40,30,0.5) 30px);
  mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 70%);
  animation: mc-mob 3s ease-in-out infinite alternate;
}
.scn-mob-chaos .central-figure {
  position:absolute; bottom:25%; left:50%; width:40px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.6);
  animation: mc-central 2s ease-in-out infinite alternate;
}
.scn-mob-chaos .weapons {
  position:absolute; bottom:30%; left:15%; right:15%; height:20%;
  background: repeating-linear-gradient(45deg, 
    #8a5a3a 0px, #8a5a3a 3px,
    transparent 3px, transparent 10px,
    #6a3a1a 10px, #6a3a1a 13px,
    transparent 13px, transparent 20px);
  mask-image: linear-gradient(180deg, black 0%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, black 0%, transparent 100%);
  animation: mc-weapons 1.5s ease-in-out infinite alternate;
}
.scn-mob-chaos .dust-clouds {
  position:absolute; bottom:15%; left:0; right:0; height:30%;
  background: radial-gradient(ellipse at 20% 50%, rgba(180,140,100,0.3) 0%, transparent 50%);
  filter: blur(8px);
  animation: mc-dust 6s ease-in-out infinite alternate;
}
.scn-mob-chaos .shadow-mob {
  position:absolute; bottom:15%; left:10%; right:10%; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: mc-shadow 4s ease-in-out infinite alternate;
}
@keyframes mc-sunflicker {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes mc-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(-2px); }
}
@keyframes mc-mob {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(1.05); }
  100% { transform: translateX(-4px) scaleX(0.95); }
}
@keyframes mc-central {
  0% { transform: translateX(-50%) rotate(-5deg) scale(1); }
  33% { transform: translateX(-50%) rotate(8deg) scale(1.1); }
  66% { transform: translateX(-50%) rotate(-3deg) scale(0.9); }
  100% { transform: translateX(-50%) rotate(4deg) scale(1.05); }
}
@keyframes mc-weapons {
  0% { transform: rotate(-2deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.15); }
  100% { transform: rotate(-3deg) scaleX(0.85); }
}
@keyframes mc-dust {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-8px) scale(1.2); opacity: 0.7; }
  100% { transform: translateY(4px) scale(0.9); opacity: 0.3; }
}
@keyframes mc-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.4); opacity: 0.8; }
  100% { transform: scaleX(0.8); opacity: 0.5; }
}

/* -------------- virgilia-begs -------------- */
.scn-virgilia-begs {
  background:
    linear-gradient(180deg, #c8a678 0%, #a08050 40%),
    radial-gradient(ellipse at 30% 60%, #e0c090 0%, transparent 60%);
}
.scn-virgilia-begs .vb-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b89868 0%, #8a7050 100%);
}
.scn-virgilia-begs .vb-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #5a4030 0%, #7a5a40 100%);
}
.scn-virgilia-begs .vb-window {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #ffecb0 0%, #ffe090 50%, #d4a060 100%);
  border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,230,150,.5);
  animation: vb-window 6s ease-in-out infinite alternate;
}
.scn-virgilia-begs .vb-light {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 35% 40%, rgba(255,240,180,.3) 0%, transparent 60%);
  pointer-events: none;
}
.scn-virgilia-begs .vb-figure-kneel {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: vb-kneel 4s ease-in-out infinite alternate;
}
.scn-virgilia-begs .vb-figure-stand {
  position: absolute; bottom: 10%; right: 20%; width: 24px; height: 72px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 35% 35%;
  animation: vb-stand 5s ease-in-out infinite;
}
.scn-virgilia-begs .vb-dust {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 20% 40%, rgba(255,220,150,.15) 0%, transparent 40%),
              radial-gradient(circle at 80% 60%, rgba(255,200,130,.1) 0%, transparent 50%);
  animation: vb-dust 12s linear infinite;
}
@keyframes vb-window {
  0% { opacity: .85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: .9; filter: brightness(1); }
}
@keyframes vb-kneel {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes vb-stand {
  0% { transform: translateX(0) rotate(-0.5deg); }
  33% { transform: translateX(3px) rotate(0.5deg); }
  66% { transform: translateX(-2px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vb-dust {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.05) rotate(5deg); }
}

/* -------------- volumnia-kneels -------------- */
.scn-volumnia-kneels {
  background:
    linear-gradient(180deg, #b08858 0%, #7a5a3a 60%),
    radial-gradient(ellipse at 50% 80%, #a08050 0%, transparent 60%);
}
.scn-volumnia-kneels .vk-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #9a7850 0%, #705030 100%);
}
.scn-volumnia-kneels .vk-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #4a3020 0%, #6a4a30 100%);
}
.scn-volumnia-kneels .vk-column-left {
  position: absolute; bottom: 20%; left: 10%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 4px;
  animation: vk-col 8s ease-in-out infinite alternate;
}
.scn-volumnia-kneels .vk-column-right {
  position: absolute; bottom: 20%; right: 10%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 4px;
  animation: vk-col 8s ease-in-out infinite alternate-reverse;
}
.scn-volumnia-kneels .vk-figure-kneel {
  position: absolute; bottom: 25%; left: 42%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: vk-kneel 4s ease-in-out infinite;
}
.scn-volumnia-kneels .vk-figure-stand {
  position: absolute; bottom: 15%; right: 42%; width: 22px; height: 68px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 35% 35%;
  animation: vk-stand 5s ease-in-out infinite alternate;
}
.scn-volumnia-kneels .vk-drapes {
  position: absolute; top: 5%; left: 5%; width: 90%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  filter: blur(4px); opacity: .6;
  animation: vk-drapes 10s ease-in-out infinite alternate;
}
@keyframes vk-col {
  0% { box-shadow: 0 0 4px rgba(0,0,0,.3); transform: scaleY(1); }
  50% { box-shadow: 0 0 8px rgba(0,0,0,.2); transform: scaleY(1.01); }
  100% { box-shadow: 0 0 4px rgba(0,0,0,.3); transform: scaleY(1); }
}
@keyframes vk-kneel {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vk-stand {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes vk-drapes {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}

/* -------------- blessing-on-grandson -------------- */
.scn-blessing-on-grandson {
  background:
    linear-gradient(180deg, #c09870 0%, #8a6a4a 50%),
    radial-gradient(ellipse at 50% 30%, #d4a880 0%, transparent 60%);
}
.scn-blessing-on-grandson .bg-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #b08860 0%, #6a4a30 100%);
}
.scn-blessing-on-grandson .bg-halo {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,230,180,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: bg-halo 6s ease-in-out infinite alternate;
}
.scn-blessing-on-grandson .bg-grandma {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bg-grandma 5s ease-in-out infinite;
}
.scn-blessing-on-grandson .bg-grandson {
  position: absolute; bottom: 15%; right: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bg-grandson 4s ease-in-out infinite alternate;
}
.scn-blessing-on-grandson .bg-hand {
  position: absolute; bottom: 30%; left: 37%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 40%;
  transform: rotate(-30deg);
  animation: bg-hand 3s ease-in-out infinite alternate;
}
.scn-blessing-on-grandson .bg-light-rays {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,.15) 0%, transparent 50%),
              linear-gradient(225deg, rgba(255,240,200,.1) 0%, transparent 50%);
  pointer-events: none;
  animation: bg-rays 8s ease-in-out infinite alternate;
}
.scn-blessing-on-grandson .bg-particles {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 45% 40%, rgba(255,220,150,.2) 0%, transparent 30%),
              radial-gradient(circle at 55% 50%, rgba(255,200,130,.15) 0%, transparent 30%);
  animation: bg-particles 10s linear infinite;
}
@keyframes bg-halo {
  0% { transform: translateX(-50%) scale(1); opacity: .6; }
  50% { transform: translateX(-50%) scale(1.08); opacity: .8; }
  100% { transform: translateX(-50%) scale(1); opacity: .65; }
}
@keyframes bg-grandma {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bg-grandson {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bg-hand {
  0% { transform: rotate(-35deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-2px); }
  100% { transform: rotate(-35deg) translateY(0); }
}
@keyframes bg-rays {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes bg-particles {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.03) rotate(3deg); }
}

/* -------------- volumnia-persuades -------------- */
.scn-volumnia-persuades {
  background:
    linear-gradient(180deg, #a88860 0%, #70503a 50%),
    radial-gradient(ellipse at 50% 70%, #8a6a4a 0%, transparent 50%);
}
.scn-volumnia-persuades .vp-room {
  position: absolute; inset: 0;
  background: 
    radial-gradient(ellipse at 30% 50%, rgba(180,140,100,.3) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 30%, rgba(160,120,80,.2) 0%, transparent 40%);
}
.scn-volumnia-persuades .vp-wall-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #8a6a4a 0%, #50382a 100%);
  border-right: 2px solid #604030;
}
.scn-volumnia-persuades .vp-wall-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #8a6a4a 0%, #50382a 100%);
  border-left: 2px solid #604030;
}
.scn-volumnia-persuades .vp-fireplace {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: inset 0 -4px 12px rgba(0,0,0,.5);
}
.scn-volumnia-persuades .vp-fire-glow {
  position: absolute; bottom: 12%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffa050 0%, #e06020 40%, transparent 70%);
  border-radius: 50%;
  animation: vp-fire 2s ease-in-out infinite alternate;
}
.scn-volumnia-persuades .vp-figure-volumnia {
  position: absolute; bottom: 15%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: vp-fig1 5s ease-in-out infinite alternate;
}
.scn-volumnia-persuades .vp-figure-audio {
  position: absolute; bottom: 10%; right: 20%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 40% 40%;
  transform-origin: bottom center;
  animation: vp-fig2 6s ease-in-out infinite;
}
.scn-volumnia-persuades .vp-figure-martius {
  position: absolute; bottom: 12%; left: 45%; width: 22px; height: 62px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 40% 40%;
  transform-origin: bottom center;
  animation: vp-fig3 4.5s ease-in-out infinite alternate-reverse;
}
@keyframes vp-fire {
  0% { transform: translateX(-50%) scale(1); opacity: .8; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(.95); opacity: .9; }
}
@keyframes vp-fig1 {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vp-fig2 {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); }
  66% { transform: translateX(-2px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vp-fig3 {
  0% { transform: translateX(0) rotate(-0.5deg); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-menenius-at-camp-gate {
  background: linear-gradient(180deg, #f5d6a8 0%, #e8c48a 30%, #d4a96a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 50%);
}
.scn-menenius-at-camp-gate .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fae6c8 0%, #f0ce9c 100%); animation: mgc-sky 10s ease-in-out infinite alternate; }
.scn-menenius-at-camp-gate .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fffbe0 0%, #f4d48a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(244,212,138,0.3); animation: mgc-sun 8s ease-in-out infinite; }
.scn-menenius-at-camp-gate .gate { position:absolute; bottom:22%; left:30%; width:40%; height:45%; background: linear-gradient(180deg, #8b6b4a 0%, #6e4f2e 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.3); }
.scn-menenius-at-camp-gate .guard-left { position:absolute; bottom:20%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #b08060 0%, #8a5e3e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mgc-guard 3s ease-in-out infinite; }
.scn-menenius-at-camp-gate .guard-right { position:absolute; bottom:20%; left:65%; width:22px; height:52px; background: linear-gradient(180deg, #b08060 0%, #8a5e3e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mgc-guard 3s ease-in-out infinite 1.5s; }
.scn-menenius-at-camp-gate .menenius { position:absolute; bottom:18%; left:8%; width:18px; height:45px; background: linear-gradient(180deg, #c09070 0%, #906848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mgc-menenius 4s ease-in-out infinite; }
.scn-menenius-at-camp-gate .ground { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #c9a86a 0%, #a07a4a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-menenius-at-camp-gate .dust { position:absolute; bottom:10%; left:30%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,170,120,0.4) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: mgc-dust 6s ease-in-out infinite; }
@keyframes mgc-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes mgc-sun { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-4px); } }
@keyframes mgc-guard { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes mgc-menenius { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(1deg); } }
@keyframes mgc-dust { 0% { transform: translateX(0) scale(1); opacity:0.4; } 50% { transform: translateX(10px) scale(1.2); opacity:0.6; } 100% { transform: translateX(-5px) scale(0.9); opacity:0.3; } }

.scn-menenius-pleads-entry {
  background: linear-gradient(180deg, #eed6aa 0%, #dbbf8a 50%, #c4a26a 100%), radial-gradient(ellipse at 60% 30%, #fff5d0 0%, transparent 50%);
}
.scn-menenius-pleads-entry .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fae6c8 0%, #edd4a0 100%); animation: mpe-sky 12s ease-in-out infinite alternate; }
.scn-menenius-pleads-entry .sun { position:absolute; top:5%; right:15%; width:50px; height:50px; background: radial-gradient(circle, #fffce0 0%, #f4d48a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(244,212,138,0.3); animation: mpe-sun 9s ease-in-out infinite; }
.scn-menenius-pleads-entry .shield-guard { position:absolute; bottom:20%; left:50%; width:35px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: mpe-shield 3s ease-in-out infinite; }
.scn-menenius-pleads-entry .guard-body { position:absolute; bottom:18%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #b08060 0%, #805030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mpe-guard 4s ease-in-out infinite; }
.scn-menenius-pleads-entry .menenius-hand { position:absolute; bottom:25%; left:18%; width:12px; height:20px; background: linear-gradient(180deg, #d0a080 0%, #b08060 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform: rotate(30deg); transform-origin: bottom left; animation: mpe-hand 5s ease-in-out infinite; }
.scn-menenius-pleads-entry .menenius-body { position:absolute; bottom:15%; left:12%; width:18px; height:50px; background: linear-gradient(180deg, #c09070 0%, #906848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mpe-menenius 6s ease-in-out infinite; }
.scn-menenius-pleads-entry .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c9a86a 0%, #a07a4a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-menenius-pleads-entry .shadow { position:absolute; bottom:18%; left:10%; width:30%; height:8px; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(4px); animation: mpe-shadow 6s ease-in-out infinite; }
@keyframes mpe-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mpe-sun { 0%,100% { transform: scale(1); } 50% { transform: scale(1.03); } }
@keyframes mpe-shield { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes mpe-guard { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-1deg); } 70% { transform: translateX(3px) rotate(1deg); } }
@keyframes mpe-hand { 0%,100% { transform: rotate(25deg); } 50% { transform: rotate(35deg) translateX(2px); } }
@keyframes mpe-menenius { 0%,100% { transform: translateX(0) rotate(-2deg); } 40% { transform: translateX(4px) rotate(1deg); } 80% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes mpe-shadow { 0%,100% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } }

.scn-menenius-baits-guard {
  background: linear-gradient(180deg, #f7e0b0 0%, #e6c88a 40%, #c9a86a 100%), radial-gradient(ellipse at 70% 40%, #fff5d0 0%, transparent 50%);
}
.scn-menenius-baits-guard .sky { position:absolute; inset:0 0 48% 0; background: linear-gradient(180deg, #fdeac8 0%, #f0d09c 100%); animation: mbg-sky 10s ease-in-out infinite alternate; }
.scn-menenius-baits-guard .table { position:absolute; bottom:18%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #8b6b4a 0%, #5a4028 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 6px 10px rgba(0,0,0,0.4); }
.scn-menenius-baits-guard .plate { position:absolute; bottom:24%; left:40%; width:30px; height:8px; background: radial-gradient(ellipse, #e0c090 0%, #b08060 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: mbg-plate 4s ease-in-out infinite; }
.scn-menenius-baits-guard .guard-head { position:absolute; bottom:28%; left:50%; width:28px; height:28px; background: linear-gradient(180deg, #c09070 0%, #a06848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: mbg-guard-head 3s ease-in-out infinite; }
.scn-menenius-baits-guard .guard-body { position:absolute; bottom:8%; left:46%; width:24px; height:40px; background: linear-gradient(180deg, #b08060 0%, #805030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mbg-guard-body 3s ease-in-out infinite reverse; }
.scn-menenius-baits-guard .menenius-head { position:absolute; bottom:30%; left:20%; width:22px; height:22px; background: linear-gradient(180deg, #d0a080 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mbg-menenius-head 5s ease-in-out infinite; }
.scn-menenius-baits-guard .menenius-body { position:absolute; bottom:8%; left:16%; width:18px; height:42px; background: linear-gradient(180deg, #c09070 0%, #906848 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mbg-menenius-body 5s ease-in-out infinite alternate; }
.scn-menenius-baits-guard .ground { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #c9a86a 0%, #a07a4a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
@keyframes mbg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mbg-plate { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(5deg); } }
@keyframes mbg-guard-head { 0%,100% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-48%) rotate(-5deg); } 70% { transform: translateX(-52%) rotate(5deg); } }
@keyframes mbg-guard-body { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes mbg-menenius-head { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(6px) rotate(8deg); } 70% { transform: translateX(-3px) rotate(-5deg); } }
@keyframes mbg-menenius-body { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(3deg); } }

.scn-menenius-greets-coriolanus {
  background: linear-gradient(180deg, #eed6aa 0%, #dbbf8a 60%, #c4a26a 100%), radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 50%);
}
.scn-menenius-greets-coriolanus .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fae6c8 0%, #edd4a0 100%); animation: mgc2-sky 10s ease-in-out infinite alternate; }
.scn-menenius-greets-coriolanus .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c9a86a 0%, #a07a4a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-menenius-greets-coriolanus .coriolanus { position:absolute; bottom:10%; left:45%; width:30px; height:75px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mgc2-cor 4s ease-in-out infinite; }
.scn-menenius-greets-coriolanus .aufidius { position:absolute; bottom:10%; left:60%; width:28px; height:70px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mgc2-auf 4s ease-in-out infinite 2s; }
.scn-menenius-greets-coriolanus .menenius { position:absolute; bottom:12%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #c09070 0%, #906848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mgc2-men 5s ease-in-out infinite; }
.scn-menenius-greets-coriolanus .spear-cor { position:absolute; bottom:10%; left:55%; width:4px; height:80px; background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%); border-radius: 10%; transform: rotate(10deg); transform-origin: bottom center; animation: mgc2-spear 6s ease-in-out infinite; }
.scn-menenius-greets-coriolanus .spear-auf { position:absolute; bottom:10%; left:68%; width:4px; height:75px; background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%); border-radius: 10%; transform: rotate(-5deg); transform-origin: bottom center; animation: mgc2-spear 6s ease-in-out infinite 3s; }
.scn-menenius-greets-coriolanus .shadow { position:absolute; bottom:8%; left:15%; width:60%; height:8px; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(5px); animation: mgc2-shadow 6s ease-in-out infinite; }
@keyframes mgc2-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mgc2-cor { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(1deg); } 70% { transform: translateX(2px) rotate(-1deg); } }
@keyframes mgc2-auf { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-1deg); } 70% { transform: translateX(-2px) rotate(1deg); } }
@keyframes mgc2-men { 0%,100% { transform: translateX(0) rotate(-3deg) scale(1); } 50% { transform: translateX(6px) rotate(2deg) scale(1.05); } }
@keyframes mgc2-spear { 0%,100% { transform: rotate(8deg); } 50% { transform: rotate(12deg); } }
@keyframes mgc2-shadow { 0%,100% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.15); opacity:0.5; } }

.scn-scene-ladies-approach {
  background: linear-gradient(180deg, #fce4b8 0%, #f9d08e 40%, #e0b06a 100%), radial-gradient(ellipse at 60% 20%, #ffe4a0 0%, transparent 60%);
}
.scn-scene-ladies-approach .sky-ladies {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce4b8 0%, #f9d08e 100%);
  animation: la-sky 12s ease-in-out infinite alternate;
}
.scn-scene-ladies-approach .sun-ladies {
  position: absolute; top: 12%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8d0 0%, #fce4b8 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,220,140,0.6);
  animation: la-sun 8s ease-in-out infinite alternate;
}
.scn-scene-ladies-approach .ground-ladies {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #d4a56a 0%, #b0854a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
}
.scn-scene-ladies-approach .arch-ladies {
  position: absolute; bottom: 35%; left: 50%; width: 180px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8985a 0%, #a06e3a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.2);
}
.scn-scene-ladies-approach .lady-1,
.scn-scene-ladies-approach .lady-2,
.scn-scene-ladies-approach .lady-3 {
  position: absolute; bottom: 22%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #8a603a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-scene-ladies-approach .lady-1 { left: 30%; animation: la-walk 4s ease-in-out infinite; }
.scn-scene-ladies-approach .lady-2 { left: 46%; animation: la-walk 4.2s ease-in-out infinite 0.2s; width: 22px; height: 46px; }
.scn-scene-ladies-approach .lady-3 { left: 62%; animation: la-walk 3.8s ease-in-out infinite 0.4s; width: 20px; height: 42px; }
.scn-scene-ladies-approach .dust-ladies {
  position: absolute; bottom: 20%; left: 28%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(200,160,100,0.6) 0%, transparent 100%);
  filter: blur(4px); animation: la-dust 6s ease-in-out infinite alternate;
}
@keyframes la-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes la-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes la-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes la-dust { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.3); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-item-scars-wounds {
  background: linear-gradient(180deg, #d9b382 0%, #c09a6a 50%, #a67a4a 100%), radial-gradient(ellipse at 50% 30%, #e0c090 0%, transparent 70%);
}
.scn-item-scars-wounds .bg-scars {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #c8a070 0%, transparent 70%);
}
.scn-item-scars-wounds .figure-scars {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: sw-figure 6s ease-in-out infinite;
}
.scn-item-scars-wounds .arm-scars {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 22px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 20% 20% 40% / 80% 30% 30% 80%;
  transform: rotate(-15deg);
  animation: sw-arm 4s ease-in-out infinite alternate;
}
.scn-item-scars-wounds .scar-line-1,
.scn-item-scars-wounds .scar-line-2,
.scn-item-scars-wounds .scar-line-3 {
  position: absolute; height: 3px; background: linear-gradient(90deg, #d8a080, #f0c8a0, #d8a080);
  border-radius: 2px; box-shadow: 0 0 6px rgba(255,200,160,0.5);
  opacity: 0.8;
}
.scn-item-scars-wounds .scar-line-1 { top: 42%; left: 42%; width: 30px; transform: rotate(10deg); animation: sw-scar 3s ease-in-out infinite; }
.scn-item-scars-wounds .scar-line-2 { top: 48%; left: 44%; width: 20px; transform: rotate(-5deg); animation: sw-scar 3.2s ease-in-out infinite 0.4s; }
.scn-item-scars-wounds .scar-line-3 { top: 55%; left: 43%; width: 25px; transform: rotate(20deg); animation: sw-scar 2.8s ease-in-out infinite 0.8s; }
.scn-item-scars-wounds .glow-scars {
  position: absolute; top: 35%; left: 35%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,220,180,0.3) 0%, transparent 70%);
  filter: blur(8px); animation: sw-glow 4s ease-in-out infinite alternate;
}
@keyframes sw-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sw-arm { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.05); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes sw-scar { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes sw-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }

.scn-scene-coriolanus-arrival {
  background: linear-gradient(180deg, #fde8c0 0%, #f5d4a0 40%, #d4a86a 100%), radial-gradient(ellipse at 50% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-scene-coriolanus-arrival .sky-arrival {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fde8c0 0%, #f5d4a0 100%);
  animation: ca-sky 15s ease-in-out infinite alternate;
}
.scn-scene-coriolanus-arrival .sunburst-arrival {
  position: absolute; top: 15%; left: 50%; width: 160px; height: 160px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff8d0 0%, #fce4a0 30%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 40px rgba(255,220,140,0.5);
  animation: ca-sunburst 10s ease-in-out infinite alternate;
}
.scn-scene-coriolanus-arrival .ground-arrival {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d0a86a 0%, #b08a4a 100%);
  border-radius: 40% 60% 0 0 / 70% 50% 0 0;
}
.scn-scene-coriolanus-arrival .coriolanus {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ca-hero 5s ease-in-out infinite;
}
.scn-scene-coriolanus-arrival .trumpet-left,
.scn-scene-coriolanus-arrival .trumpet-right {
  position: absolute; bottom: 28%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #c8985a 0%, #a06e3a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  animation: ca-trumpet 3s ease-in-out infinite alternate;
}
.scn-scene-coriolanus-arrival .trumpet-left { left: 35%; transform: rotate(10deg); }
.scn-scene-coriolanus-arrival .trumpet-right { right: 35%; transform: rotate(-10deg); }
.scn-scene-coriolanus-arrival .crowd-left,
.scn-scene-coriolanus-arrival .crowd-right {
  position: absolute; bottom: 18%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
  filter: blur(3px);
  animation: ca-crowd 7s ease-in-out infinite alternate;
}
.scn-scene-coriolanus-arrival .crowd-left { left: 10%; transform-origin: bottom center; }
.scn-scene-coriolanus-arrival .crowd-right { right: 10%; transform-origin: bottom center; }
@keyframes ca-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ca-sunburst { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.85; } }
@keyframes ca-hero { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-4px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes ca-trumpet { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes ca-crowd { 0% { transform: scaleY(0.9); opacity: 0.6; } 50% { transform: scaleY(1.1); opacity: 0.8; } 100% { transform: scaleY(0.9); opacity: 0.6; } }

.scn-scene-tribunes-scheme {
  background: linear-gradient(180deg, #6b7b8a 0%, #4a5a6a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-scene-tribunes-scheme .sky-scheme {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7b8b9a 0%, #4a5a6a 100%);
  animation: ts-sky 20s ease-in-out infinite alternate;
}
.scn-scene-tribunes-scheme .wall-scheme {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-scene-tribunes-scheme .malkin-figure {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts-climb 5s ease-in-out infinite alternate;
}
.scn-scene-tribunes-scheme .crowd-base {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
  filter: blur(4px);
  animation: ts-crowd 8s ease-in-out infinite alternate;
}
.scn-scene-tribunes-scheme .whisper-1,
.scn-scene-tribunes-scheme .whisper-2 {
  position: absolute; bottom: 40%; width: 30px; height: 10px;
  background: linear-gradient(90deg, transparent, rgba(200,200,220,0.3), transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: ts-whisper 3s ease-in-out infinite alternate;
}
.scn-scene-tribunes-scheme .whisper-1 { left: 25%; top: 20%; }
.scn-scene-tribunes-scheme .whisper-2 { right: 30%; top: 25%; animation-delay: 1.5s; }
.scn-scene-tribunes-scheme .baby-scheme {
  position: absolute; bottom: 35%; left: 55%; width: 16px; height: 14px;
  background: radial-gradient(circle, #d0b080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ts-baby 4s ease-in-out infinite alternate;
}
@keyframes ts-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ts-climb { 0% { transform: translateY(0) translateX(0) rotate(-2deg); } 50% { transform: translateY(-8px) translateX(4px) rotate(2deg); } 100% { transform: translateY(0) translateX(0) rotate(-2deg); } }
@keyframes ts-crowd { 0% { opacity: 0.5; transform: scaleY(0.9); } 50% { opacity: 0.8; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(0.9); } }
@keyframes ts-whisper { 0% { opacity: 0.2; transform: scaleX(0.5); } 50% { opacity: 0.6; transform: scaleX(1.5); } 100% { opacity: 0.2; transform: scaleX(0.5); } }
@keyframes ts-baby { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }

/* Scene 1: coriolanus-rejects-menenius */
.scn-coriolanus-rejects-menenius {
  background: linear-gradient(180deg, #f9d68a 0%, #e8b86a 30%, #b87a4a 60%, #7a4a2a 100%),
              radial-gradient(ellipse at 50% 0%, #f9e0a0 0%, transparent 70%);
}
.scn-coriolanus-rejects-menenius .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f0c878 0%, #f8d890 100%);
  animation: cor-skys 8s ease-in-out infinite alternate;
}
.scn-coriolanus-rejects-menenius .sun {
  position: absolute; top: 8%; left: 70%;
  width: 70px; height: 70px;
  background: radial-gradient(circle at 50% 50%, #fff6e0 0%, #ffcc80 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #fff4d0, 0 0 120px 40px rgba(255,200,100,.4);
  animation: cor-sun 20s ease-in-out infinite alternate;
}
.scn-coriolanus-rejects-menenius .hills {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 30% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: cor-hills 12s ease-in-out infinite alternate;
}
.scn-coriolanus-rejects-menenius .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 0 0 0 0;
}
.scn-coriolanus-rejects-menenius .figure-a {
  position: absolute; bottom: 20%; left: 30%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cor-fig-a 5s ease-in-out infinite;
}
.scn-coriolanus-rejects-menenius .figure-b {
  position: absolute; bottom: 18%; left: 55%;
  width: 36px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cor-fig-b 6s ease-in-out infinite;
}
.scn-coriolanus-rejects-menenius .shadow {
  position: absolute; bottom: 15%; left: 28%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: cor-shadow 5s ease-in-out infinite alternate;
}
.scn-coriolanus-rejects-menenius .dust {
  position: absolute; bottom: 35%; left: 10%; width: 100px; height: 20px;
  background: rgba(200,170,120,.15);
  filter: blur(10px);
  border-radius: 50%;
  animation: cor-dust 30s linear infinite;
}
@keyframes cor-skys { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes cor-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes cor-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cor-fig-a { 0% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes cor-fig-b { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes cor-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.1) } 100% { opacity: .4; transform: scaleX(.9) } }
@keyframes cor-dust { 0% { transform: translateX(-50px) } 100% { transform: translateX(100vw) } }

/* Scene 2: menenius-dismissed */
.scn-menenius-dismissed {
  background: linear-gradient(180deg, #b87a4a 0%, #8a5a3a 30%, #5a3a1a 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 0%, #d8a868 0%, transparent 60%);
}
.scn-menenius-dismissed .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #d8b078 0%, #b08050 100%);
  animation: men-skys 10s ease-in-out infinite alternate;
}
.scn-menenius-dismissed .sunset {
  position: absolute; top: 5%; left: 75%;
  width: 80px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #f0c880 0%, #c89050 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #e0b060, 0 0 100px 40px rgba(200,140,60,.3);
  animation: men-sunset 15s ease-in-out infinite alternate;
}
.scn-menenius-dismissed .road {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%);
  animation: men-road 8s ease-in-out infinite alternate;
}
.scn-menenius-dismissed .figure-walk {
  position: absolute; bottom: 18%; left: 40%;
  width: 38px; height: 110px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: men-walk 4s ease-in-out infinite;
}
.scn-menenius-dismissed .cape {
  position: absolute; bottom: 20%; left: 36%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 20% 50% 50%;
  transform-origin: top left;
  animation: men-cape 3s ease-in-out infinite alternate;
}
.scn-menenius-dismissed .staff {
  position: absolute; bottom: 22%; left: 48%;
  width: 4px; height: 70px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: men-staff 5s ease-in-out infinite;
}
.scn-menenius-dismissed .ghost {
  position: absolute; bottom: 25%; left: 20%;
  width: 30px; height: 80px;
  background: rgba(200,180,160,.08);
  filter: blur(8px);
  border-radius: 50%;
  animation: men-ghost 20s ease-in-out infinite alternate;
}
@keyframes men-skys { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes men-sunset { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.03) translateX(-5px) } 100% { transform: scale(.97) translateX(5px) } }
@keyframes men-road { 0% { transform: skewX(0deg) } 50% { transform: skewX(-2deg) } 100% { transform: skewX(0deg) } }
@keyframes men-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(-3deg) } 50% { transform: translateX(16px) rotate(0deg) } 75% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes men-cape { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes men-staff { 0% { transform: translateX(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) } }
@keyframes men-ghost { 0% { opacity: .05 } 50% { opacity: .15 } 100% { opacity: .05 } }

/* Scene 3: coriolanus-resolves */
.scn-coriolanus-resolves {
  background: linear-gradient(180deg, #c8a878 0%, #a88868 40%, #7a6a5a 100%),
              radial-gradient(ellipse at 50% 0%, #d8b898 0%, transparent 70%);
}
.scn-coriolanus-resolves .tent-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b09880 0%, #8a7a6a 100%);
  clip-path: polygon(0 0, 100% 0, 95% 90%, 5% 90%);
}
.scn-coriolanus-resolves .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-coriolanus-resolves .table {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-coriolanus-resolves .map {
  position: absolute; bottom: 14%; left: 35%; right: 35%; height: 4%;
  background: linear-gradient(180deg, #d8c0a0 0%, #b8a080 100%);
  border-radius: 2px;
  animation: corr-map 6s ease-in-out infinite alternate;
}
.scn-coriolanus-resolves .figure-leader {
  position: absolute; bottom: 0; left: 40%;
  width: 50px; height: 140px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: corr-leader 4s ease-in-out infinite;
}
.scn-coriolanus-resolves .figure-officer {
  position: absolute; bottom: 0; left: 55%;
  width: 44px; height: 130px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: corr-officer 5s ease-in-out infinite alternate;
}
.scn-coriolanus-resolves .lamp {
  position: absolute; top: 25%; left: 50%;
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #f0c868 0%, #c89040 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 10px #e0b050, 0 0 60px 20px rgba(200,140,60,.4);
  animation: corr-lamp 3s ease-in-out infinite alternate;
}
.scn-coriolanus-resolves .shadowcast {
  position: absolute; bottom: 10%; left: 38%; width: 80px; height: 15px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: corr-shadow 4s ease-in-out infinite alternate;
}
@keyframes corr-map { 0% { opacity: .8; transform: scaleX(1) } 50% { opacity: 1; transform: scaleX(1.05) } 100% { opacity: .9; transform: scaleX(1) } }
@keyframes corr-leader { 0% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) translateY(-2px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) translateY(1px) } 100% { transform: rotate(0deg) } }
@keyframes corr-officer { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes corr-lamp { 0% { box-shadow: 0 0 20px 6px #e0b050, 0 0 40px 12px rgba(200,140,60,.3); opacity: .8 } 50% { box-shadow: 0 0 40px 14px #f0c060, 0 0 80px 24px rgba(200,140,60,.5); opacity: 1 } 100% { box-shadow: 0 0 25px 8px #e0b050, 0 0 50px 16px rgba(200,140,60,.35); opacity: .9 } }
@keyframes corr-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.2) } 100% { opacity: .4; transform: scaleX(1) } }

/* Scene 4: family-entreats-coriolanus */
.scn-family-entreats-coriolanus {
  background: linear-gradient(180deg, #c0a080 0%, #a08060 40%, #7a604a 100%),
              radial-gradient(ellipse at 50% 0%, #d8b898 0%, transparent 70%);
}
.scn-family-entreats-coriolanus .chamber-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b09880 0%, #8a7a6a 100%);
  clip-path: polygon(5% 0, 95% 0, 100% 100%, 0% 100%);
}
.scn-family-entreats-coriolanus .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-family-entreats-coriolanus .column {
  position: absolute; top: 0; left: 50%;
  width: 12px; height: 100%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  animation: fam-column 10s ease-in-out infinite alternate;
}
.scn-family-entreats-coriolanus .figure-corio {
  position: absolute; bottom: 10%; left: 60%;
  width: 48px; height: 130px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fam-corio 5s ease-in-out infinite;
}
.scn-family-entreats-coriolanus .figure-volumnia {
  position: absolute; bottom: 10%; left: 20%;
  width: 40px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fam-vol 6s ease-in-out infinite alternate;
}
.scn-family-entreats-coriolanus .figure-virgilia {
  position: absolute; bottom: 10%; left: 32%;
  width: 36px; height: 110px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fam-vir 7s ease-in-out infinite alternate;
}
.scn-family-entreats-coriolanus .figure-young {
  position: absolute; bottom: 10%; left: 38%;
  width: 28px; height: 70px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fam-young 4s ease-in-out infinite;
}
.scn-family-entreats-coriolanus .altar {
  position: absolute; bottom: 0; left: 45%;
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #7a604a 0%, #5a402a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-family-entreats-coriolanus .glow {
  position: absolute; top: 20%; left: 50%;
  width: 80px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #f0c868 0%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: fam-glow 3s ease-in-out infinite alternate;
}
@keyframes fam-column { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes fam-corio { 0% { transform: rotate(0deg) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) translateY(1px) } 100% { transform: rotate(0deg) } }
@keyframes fam-vol { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes fam-vir { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes fam-young { 0% { transform: translateX(0) } 25% { transform: translateX(3px) } 50% { transform: translateX(0) } 75% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes fam-glow { 0% { opacity: .6; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .7; transform: scale(.9) } }

/* cominius-berates-tribunes */
.scn-cominius-berates-tribunes {
  background: linear-gradient(180deg, #1a1423 0%, #2a1e2e 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-cominius-berates-tribunes .hall-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a1423 100%);
  animation: cb-hall 10s ease-in-out infinite alternate;
}
.scn-cominius-berates-tribunes .dais {
  position:absolute; bottom:18%; left:25%; right:25%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 30% 10% 10% / 60% 50% 20% 20%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: cb-dais 8s ease-in-out infinite;
}
.scn-cominius-berates-tribunes .tribune-left {
  position:absolute; bottom:15%; left:15%; width:40px; height:60px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120a 100%);
  border-radius: 45% 40% 30% 30% / 55% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cb-figure 4s ease-in-out infinite;
}
.scn-cominius-berates-tribunes .tribune-right {
  position:absolute; bottom:15%; right:15%; width:40px; height:60px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120a 100%);
  border-radius: 40% 45% 30% 30% / 50% 55% 30% 30%;
  transform-origin: bottom center;
  animation: cb-figure 4s ease-in-out infinite -1.2s;
}
.scn-cominius-berates-tribunes .figure-cominius {
  position:absolute; bottom:25%; left:50%; width:50px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1423 0%, #0a0a1a 100%);
  border-radius: 50% 45% 40% 40% / 60% 55% 40% 40%;
  box-shadow: 0 0 20px rgba(180,120,60,0.3);
  animation: cb-cominius 6s ease-in-out infinite;
}
.scn-cominius-berates-tribunes .torch {
  position:absolute; bottom:30%; left:10%; width:8px; height:24px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: cb-torch 2s ease-in-out infinite alternate;
}
.scn-cominius-berates-tribunes .torch-glow {
  position:absolute; bottom:35%; left:10%; width:40px; height:40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffc060 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cb-glow 3s ease-in-out infinite alternate;
}
@keyframes cb-hall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cb-dais { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } }
@keyframes cb-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cb-cominius { 0%,100% { transform: translateX(-50%) } 25% { transform: translateX(-50%) translateY(-1px) scale(1.01) } 50% { transform: translateX(-50%) translateY(2px) } 75% { transform: translateX(-50%) translateY(-1px) } }
@keyframes cb-torch { 0% { opacity:0.8; transform: scaleY(1) } 100% { opacity:1; transform: scaleY(1.1) } }
@keyframes cb-glow { 0% { opacity:0.7; transform: translate(-50%, -50%) scale(0.9) } 100% { opacity:1; transform: translate(-50%, -50%) scale(1.1) } }

/* rome-in-panic */
.scn-rome-in-panic {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e3a 40%, #1a141e 100%),
              radial-gradient(ellipse at 70% 60%, #4a2a3a 0%, transparent 60%);
}
.scn-rome-in-panic .room-bg {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, #2a1e3a 0%, #1a1423 100%);
  animation: rp-room 12s ease-in-out infinite alternate;
}
.scn-rome-in-panic .column-left {
  position:absolute; bottom:10%; left:12%; width:20px; height:60%;
  background: linear-gradient(90deg, #3a2a3a 0%, #4a3a4a 50%, #2a1a2a 100%);
  border-radius: 6px;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-rome-in-panic .column-right {
  position:absolute; bottom:10%; right:12%; width:20px; height:60%;
  background: linear-gradient(90deg, #3a2a3a 0%, #4a3a4a 50%, #2a1a2a 100%);
  border-radius: 6px;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-rome-in-panic .crowd-back {
  position:absolute; bottom:15%; left:20%; right:20%; height:40%;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a120a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.6;
  animation: rp-crowd 5s ease-in-out infinite alternate;
}
.scn-rome-in-panic .crowd-front {
  position:absolute; bottom:10%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #3a2a2e 0%, #1a1423 100%);
  border-radius: 40% 60% 0 0 / 80% 80% 0 0;
  animation: rp-crowd 5s ease-in-out infinite alternate -1.5s;
}
.scn-rome-in-panic .messenger {
  position:absolute; bottom:25%; left:50%; transform: translateX(-50%);
  width:35px; height:70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 45% 40% 35% 35% / 55% 50% 35% 35%;
  animation: rp-messenger 3s ease-in-out infinite;
}
.scn-rome-in-panic .falling-figure {
  position:absolute; bottom:35%; left:30%; width:30px; height:50px;
  background: linear-gradient(180deg, #2a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rp-fall 4s ease-in-out infinite;
}
@keyframes rp-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rp-crowd { 0% { transform: translateY(0) } 100% { transform: translateY(-5px) } }
@keyframes rp-messenger { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(1px) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } }
@keyframes rp-fall { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-10px) scaleY(0.9) } 50% { transform: translateY(0) scaleY(1) } 75% { transform: translateY(10px) scaleY(1.1) } 100% { transform: translateY(0) scaleY(1) } }

/* citizens-regret */
.scn-citizens-regret {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e2e 40%, #1a141e 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 60%);
}
.scn-citizens-regret .bg-deep {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a1423 100%);
  animation: cr-bg 10s ease-in-out infinite alternate;
}
.scn-citizens-regret .table {
  position:absolute; bottom:10%; left:15%; right:15%; height:20%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-citizens-regret .citizen-a {
  position:absolute; bottom:18%; left:22%; width:35px; height:65px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 50% 45% 35% 35% / 55% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cr-citizen 4s ease-in-out infinite;
}
.scn-citizens-regret .citizen-b {
  position:absolute; bottom:18%; left:45%; width:35px; height:65px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 45% 50% 35% 35% / 50% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cr-citizen 4s ease-in-out infinite -1s;
}
.scn-citizens-regret .citizen-c {
  position:absolute; bottom:18%; right:22%; width:35px; height:65px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 50% 45% 35% 35% / 55% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cr-citizen 4s ease-in-out infinite -2s;
}
.scn-citizens-regret .lamp {
  position:absolute; bottom:35%; left:50%; transform: translateX(-50%);
  width:10px; height:20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 3px;
  box-shadow: 0 0 6px rgba(100,70,30,0.5);
}
.scn-citizens-regret .lamp-glow {
  position:absolute; bottom:38%; left:50%; transform: translateX(-50%);
  width:50px; height:50px;
  background: radial-gradient(circle, #d09040 0%, #a07030 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cr-glow 3s ease-in-out infinite alternate;
}
@keyframes cr-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cr-citizen { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes cr-glow { 0% { opacity:0.7; transform: translateX(-50%) scale(0.9) } 100% { opacity:1; transform: translateX(-50%) scale(1.1) } }

/* citizens-admit-fault */
.scn-citizens-admit-fault {
  background: linear-gradient(90deg, #1a1423 0%, #2a1e2e 50%, #1a1423 100%),
              radial-gradient(ellipse at 50% 60%, #4a2a3a 0%, transparent 70%);
}
.scn-citizens-admit-fault .bg-floor {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a1423 100%);
  animation: ca-floor 8s ease-in-out infinite alternate;
}
.scn-citizens-admit-fault .figure-center {
  position:absolute; bottom:20%; left:50%; transform: translateX(-50%);
  width:45px; height:85px;
  background: linear-gradient(180deg, #2a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 45% 40% 40% / 60% 50% 40% 40%;
  animation: ca-center 5s ease-in-out infinite;
}
.scn-citizens-admit-fault .figure-left {
  position:absolute; bottom:20%; left:25%; width:35px; height:70px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 45% 50% 35% 35% / 50% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ca-side 4s ease-in-out infinite -0.5s;
}
.scn-citizens-admit-fault .figure-right {
  position:absolute; bottom:20%; right:25%; width:35px; height:70px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 50% 45% 35% 35% / 55% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ca-side 4s ease-in-out infinite -1.5s;
}
.scn-citizens-admit-fault .hands-up {
  position:absolute; bottom:32%; left:50%; transform: translateX(-50%);
  width:30px; height:20px;
  background: linear-gradient(180deg, #1a1423 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: ca-hands 2s ease-in-out infinite alternate;
}
.scn-citizens-admit-fault .light-source {
  position:absolute; bottom:40%; left:50%; transform: translateX(-50%);
  width:20px; height:20px;
  background: radial-gradient(circle, #ffc060 0%, #b08040 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ca-light 3s ease-in-out infinite alternate;
}
@keyframes ca-floor { 0% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ca-center { 0%,100% { transform: translateX(-50%) } 25% { transform: translateX(-50%) translateY(-2px) scale(1.02) } 50% { transform: translateX(-50%) translateY(1px) } 75% { transform: translateX(-50%) translateY(-2px) } }
@keyframes ca-side { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-3px) } 50% { transform: translateY(0) } 75% { transform: translateY(-3px) } }
@keyframes ca-hands { 0% { transform: translateX(-50%) translateY(0) scaleY(1) } 100% { transform: translateX(-50%) translateY(-5px) scaleY(1.2) } }
@keyframes ca-light { 0% { opacity:0.8; transform: translateX(-50%) scale(0.9) } 100% { opacity:1; transform: translateX(-50%) scale(1.1) } }

/* coriolanus-house-defiance */
.scn-coriolanus-house-defiance {
  background: linear-gradient(180deg, #0d0806 0%, #1a0f0a 40%, #2b1a10 70%, #0f0a08 100%), 
              radial-gradient(ellipse at 30% 40%, #3a1e10 0%, transparent 60%);
}
.scn-coriolanus-house-defiance .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #0a050400 0%, #1a0f0a 100%);
  animation: cd-bg 8s ease-in-out infinite alternate;
}
.scn-coriolanus-house-defiance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-coriolanus-house-defiance .wall-left {
  position: absolute; top: 0; left: 0; width: 18%; height: 72%;
  background: linear-gradient(90deg, #0f0804 0%, #1a0f0a 100%);
  box-shadow: 4px 0 20px rgba(0,0,0,0.8);
}
.scn-coriolanus-house-defiance .wall-right {
  position: absolute; top: 0; right: 0; width: 18%; height: 72%;
  background: linear-gradient(-90deg, #0f0804 0%, #1a0f0a 100%);
  box-shadow: -4px 0 20px rgba(0,0,0,0.8);
}
.scn-coriolanus-house-defiance .window-frame {
  position: absolute; top: 12%; left: 38%; width: 24%; height: 35%;
  border: 6px solid #2a1a0e; border-radius: 4px;
  background: linear-gradient(180deg, #0a0d12 0%, #141a24 60%, #0f1218 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 0 0 20px rgba(0,0,0,0.5);
  animation: cd-window 12s ease-in-out infinite alternate;
}
.scn-coriolanus-house-defiance .figure-defiant {
  position: absolute; bottom: 28%; left: 42%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: cd-figure 4s ease-in-out infinite alternate;
}
.scn-coriolanus-house-defiance .candle {
  position: absolute; bottom: 30%; left: 54%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #d06a30 0%, #a84a20 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 8px #a84a2040, 0 0 40px 16px #a84a2020;
  animation: cd-candle 3s ease-in-out infinite alternate;
}
.scn-coriolanus-house-defiance .table {
  position: absolute; bottom: 26%; left: 50%; width: 14%; height: 4%;
  background: linear-gradient(90deg, #3a1e0e 0%, #2a1406 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
@keyframes cd-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes cd-window { 0% { background: linear-gradient(180deg, #0a0d12 0%, #141a24 60%, #0f1218 100%); } 50% { background: linear-gradient(180deg, #0e1118 0%, #181e30 60%, #121620 100%); } 100% { background: linear-gradient(180deg, #080b10 0%, #10151c 60%, #0c0f14 100%); } }
@keyframes cd-figure { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02) rotate(1deg); } 100% { transform: translateX(-1px) scale(0.98) rotate(-0.5deg); } }
@keyframes cd-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.85; transform: scaleY(0.95); } }

/* volumnia-enters */
.scn-volumnia-enters {
  background: linear-gradient(180deg, #120a06 0%, #1a0f0a 40%, #2a1810 70%, #0e0804 100%),
              radial-gradient(ellipse at 50% 30%, #3a1e10 0%, transparent 70%);
}
.scn-volumnia-enters .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a050400 0%, #1a0f0a 100%);
  animation: ve-bg 10s ease-in-out infinite alternate;
}
.scn-volumnia-enters .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-volumnia-enters .doorway {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 70%;
  background: linear-gradient(180deg, #0f0804 0%, #1a0f0a 100%);
  border-radius: 0 0 6px 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 4px 0 20px rgba(0,0,0,0.6);
}
.scn-volumnia-enters .doorlight {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, #c0804040 0%, transparent 70%);
  animation: ve-light 4s ease-in-out infinite alternate;
}
.scn-volumnia-enters .figure-volumnia {
  position: absolute; bottom: 32%; left: 42%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: ve-figure 6s ease-in-out infinite alternate;
}
.scn-volumnia-enters .shadow {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #00000060 100%);
  filter: blur(8px);
  animation: ve-shadow 6s ease-in-out infinite alternate;
}
.scn-volumnia-enters .chair {
  position: absolute; bottom: 28%; left: 56%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  transform: rotate(2deg);
}
@keyframes ve-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes ve-light { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.1); } 100% { opacity:0.65; transform: scaleY(0.95); } }
@keyframes ve-figure { 0% { transform: translateX(0) scale(1) rotate(0deg); } 50% { transform: translateX(3px) scale(1.03) rotate(2deg); } 100% { transform: translateX(-2px) scale(0.98) rotate(-1deg); } }
@keyframes ve-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.55; } }

/* menenius-senators-enter-house */
.scn-menenius-senators-enter-house {
  background: linear-gradient(180deg, #0d0804 0%, #1a0f0a 40%, #2a1810 70%, #0e0804 100%),
              radial-gradient(ellipse at 40% 60%, #3a1e10 0%, transparent 60%);
}
.scn-menenius-senators-enter-house .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a050400 0%, #1a0f0a 100%);
  animation: ms-bg 12s ease-in-out infinite alternate;
}
.scn-menenius-senators-enter-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-menenius-senators-enter-house .arch {
  position: absolute; bottom: 32%; left: 30%; width: 40%; height: 68%;
  background: linear-gradient(180deg, #0f0804 0%, #1a0f0a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
}
.scn-menenius-senators-enter-house .figures-senators {
  position: absolute; bottom: 34%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  filter: blur(2px);
  animation: ms-figures 5s ease-in-out infinite alternate;
}
.scn-menenius-senators-enter-house .table-round {
  position: absolute; bottom: 28%; left: 50%; width: 16%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, #3a1e0e 0%, #2a1406 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-menenius-senators-enter-house .candle-two {
  position: absolute; bottom: 30%; left: 50%; width: 2%; height: 5%;
  background: linear-gradient(180deg, #d06a30 0%, #a84a20 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 8px #a84a2040, 0 0 40px 16px #a84a2020;
  transform: translateX(-50%);
  animation: ms-candle 3s ease-in-out infinite alternate;
}
.scn-menenius-senators-enter-house .chair-back {
  position: absolute; bottom: 28%; left: 36%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
@keyframes ms-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ms-figures { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); } 100% { transform: translateX(-1px) scale(0.98); } }
@keyframes ms-candle { 0% { opacity:0.8; transform: scaleY(1) translateX(-50%); } 50% { opacity:1; transform: scaleY(1.05) translateX(-50%); } 100% { opacity:0.85; transform: scaleY(0.95) translateX(-50%); } }

/* coriolanus-reluctant-compromise */
.scn-coriolanus-reluctant-compromise {
  background: linear-gradient(180deg, #0d0806 0%, #1a0f0a 40%, #2b1a10 70%, #0f0a08 100%),
              radial-gradient(ellipse at 60% 50%, #3a1e10 0%, transparent 60%);
}
.scn-coriolanus-reluctant-compromise .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a050400 0%, #1a0f0a 100%);
  animation: cc-bg 8s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-coriolanus-reluctant-compromise .table-desk {
  position: absolute; bottom: 26%; left: 38%; width: 24%; height: 6%;
  background: linear-gradient(90deg, #3a1e0e 0%, #2a1406 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-coriolanus-reluctant-compromise .figure-coriolanus {
  position: absolute; bottom: 30%; left: 40%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: cc-coriolanus 4s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .figure-senator {
  position: absolute; bottom: 30%; left: 52%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #2a1c12 0%, #100a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: cc-senator 4s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .scroll {
  position: absolute; bottom: 28%; left: 45%; width: 6%; height: 4%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: cc-scroll 6s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .candle-three {
  position: absolute; bottom: 30%; left: 50%; width: 2%; height: 5%;
  background: linear-gradient(180deg, #d06a30 0%, #a84a20 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 8px #a84a2040, 0 0 40px 16px #a84a2020;
  animation: cc-candle 3s ease-in-out infinite alternate;
}
.scn-coriolanus-reluctant-compromise .wall-shadow {
  position: absolute; bottom: 30%; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #00000030 100%);
  pointer-events: none;
}
@keyframes cc-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes cc-coriolanus { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(-2px) rotate(-2deg) scale(1.02); } 100% { transform: translateX(1px) rotate(1deg) scale(0.98); } }
@keyframes cc-senator { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(2px) rotate(2deg) scale(1.02); } 100% { transform: translateX(-1px) rotate(-1deg) scale(0.98); } }
@keyframes cc-scroll { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-12deg) translateX(-1px); } }
@keyframes cc-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.85; transform: scaleY(0.95); } }

/* mother-advises: tense, sunlit interior */
.scn-mother-advises {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #f0e0b0 100%),
    linear-gradient(135deg, rgba(255,230,180,0.5) 0%, transparent 60%),
    #f5e6c8;
}
.scn-mother-advises .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #dec78a 0%, #ccb070 100%); }
.scn-mother-advises .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b89a68 0%, #a08050 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.15); }
.scn-mother-advises .window { position:absolute; top:10%; left:20%; width:30%; height:45%; background: linear-gradient(180deg, #fff8e0 0%, #ffe680 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 0 60px 20px rgba(255,230,128,0.6); animation: ma-window 6s ease-in-out infinite alternate; }
.scn-mother-advises .light-shaft { position:absolute; top:0; left:22%; width:26%; height:100%; background: linear-gradient(180deg, rgba(255,245,200,0.5) 0%, rgba(255,245,200,0.05) 100%); filter: blur(8px); animation: ma-shaft 8s ease-in-out infinite alternate; }
.scn-mother-advises .mother { position:absolute; bottom:38%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-mother 5s ease-in-out infinite; }
.scn-mother-advises .son { position:absolute; bottom:38%; left:50%; width:36px; height:44px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-son 7s ease-in-out infinite; }
.scn-mother-advises .shadow { position:absolute; bottom:0; left:28%; width:20%; height:8%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 100%); animation: ma-shadow 5s ease-in-out infinite alternate; }
@keyframes ma-window { 0% { opacity:0.7; transform: scaleX(1) scaleY(1); } 50% { opacity:1; transform: scaleX(1.02) scaleY(1.01); } 100% { opacity:0.8; transform: scaleX(0.98) scaleY(0.99); } }
@keyframes ma-shaft { 0% { opacity:0.4; transform: rotate(-2deg); } 50% { opacity:0.7; transform: rotate(2deg); } 100% { opacity:0.5; transform: rotate(-1deg); } }
@keyframes ma-mother { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(0.5deg); } 50% { transform: translateX(0) translateY(-3px) rotate(1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-0.5deg); } }
@keyframes ma-son { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 33% { transform: translateX(-3px) translateY(-1px) rotate(-0.5deg); } 66% { transform: translateX(2px) translateY(-2px) rotate(0.5deg); } 100% { transform: translateX(0) translateY(-0.5px) rotate(0deg); } }
@keyframes ma-shadow { 0% { opacity:0.3; scale:1; } 50% { opacity:0.5; scale:1.1; } 100% { opacity:0.4; scale:0.95; } }

/* final-farewell: warm, sunlit outdoor farewell */
.scn-final-farewell {
  background:
    linear-gradient(180deg, #f4d9a0 0%, #e8b870 40%, #c89050 100%),
    radial-gradient(ellipse at 80% 60%, rgba(255,200,100,0.4) 0%, transparent 50%),
    #f4d9a0;
}
.scn-final-farewell .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffd080 0%, #f4c070 100%); animation: ff-sky 10s ease-in-out infinite alternate; }
.scn-final-farewell .sun { position:absolute; top:10%; right:25%; width:80px; height:80px; background: radial-gradient(circle, #ffe080 0%, #f4b040 70%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,200,100,0.5); animation: ff-sun 8s ease-in-out infinite alternate; }
.scn-final-farewell .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a7a50 0%, #7a5a30 100%); border-radius: 40% 60% 0 0 / 30% 20% 0 0; }
.scn-final-farewell .figure-left { position:absolute; bottom:28%; left:35%; width:30px; height:45px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ff-figure-l 6s ease-in-out infinite; }
.scn-final-farewell .figure-right { position:absolute; bottom:28%; left:55%; width:32px; height:48px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ff-figure-r 7s ease-in-out infinite; }
.scn-final-farewell .dust { position:absolute; bottom:25%; left:30%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 100%); filter: blur(4px); animation: ff-dust 5s ease-in-out infinite alternate; }
@keyframes ff-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ff-sun { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-5px) translateY(-3px) scale(1.05); } 100% { transform: translateX(3px) translateY(2px) scale(0.95); } }
@keyframes ff-figure-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(-3px) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes ff-figure-r { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 33% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 66% { transform: translateX(1px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes ff-dust { 0% { opacity:0.2; transform: scale(1) translateY(0); } 50% { opacity:0.6; transform: scale(1.2) translateY(-4px); } 100% { opacity:0.3; transform: scale(0.9) translateY(2px); } }

/* tribunes-after-banishment: tense, bright interior scene */
.scn-tribunes-after-banishment {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8ccb0 50%, #c8b898 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,240,210,0.3) 0%, transparent 70%),
    #f0e8d0;
}
.scn-tribunes-after-banishment .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #d8c8a8 0%, #c0b090 100%); }
.scn-tribunes-after-banishment .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0a080 0%, #908060 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); }
.scn-tribunes-after-banishment .pillar-left { position:absolute; bottom:25%; left:15%; width:12px; height:65%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.15); animation: tb-pillar 9s ease-in-out infinite alternate; }
.scn-tribunes-after-banishment .pillar-right { position:absolute; bottom:25%; right:15%; width:12px; height:65%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,0.15); animation: tb-pillar 9s ease-in-out infinite alternate-reverse; }
.scn-tribunes-after-banishment .tribune-a { position:absolute; bottom:28%; left:35%; width:28px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tb-figure 5s ease-in-out infinite; }
.scn-tribunes-after-banishment .tribune-b { position:absolute; bottom:28%; left:55%; width:30px; height:42px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tb-figure 6s ease-in-out infinite 0.5s; }
.scn-tribunes-after-banishment .table { position:absolute; bottom:30%; left:42%; width:16%; height:10%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: tb-table 4s ease-in-out infinite alternate; }
@keyframes tb-pillar { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.9; transform: scaleY(0.98); } }
@keyframes tb-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(1px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(-1px) rotate(0deg); } 75% { transform: translateX(2px) translateY(-3px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes tb-table { 0% { transform: scaleX(1) skewX(0deg); } 50% { transform: scaleX(1.01) skewX(-1deg); } 100% { transform: scaleX(0.99) skewX(1deg); } }

/* volumnia-confronts-tribunes: dark mood, bright interior */
.scn-volumnia-confronts-tribunes {
  background:
    linear-gradient(180deg, #e8ddd0 0%, #c8bcb0 40%, #a89888 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,230,200,0.2) 0%, transparent 60%),
    #e8ddd0;
}
.scn-volumnia-confronts-tribunes .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b8a898 0%, #988878 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.2); }
.scn-volumnia-confronts-tribunes .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d8ccc0 0%, #b8ac9c 100%); }
.scn-volumnia-confronts-tribunes .doorway { position:absolute; bottom:30%; left:43%; width:14%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(255,200,150,0.3); animation: vt-door 8s ease-in-out infinite alternate; }
.scn-volumnia-confronts-tribunes .volumnia { position:absolute; bottom:33%; left:30%; width:34px; height:48px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vt-volumnia 5s ease-in-out infinite; }
.scn-volumnia-confronts-tribunes .tribune-left { position:absolute; bottom:33%; left:55%; width:28px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vt-tribune 6s ease-in-out infinite; }
.scn-volumnia-confronts-tribunes .tribune-right { position:absolute; bottom:33%; left:65%; width:26px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vt-tribune 7s ease-in-out infinite 0.3s; }
.scn-volumnia-confronts-tribunes .shadow { position:absolute; bottom:0; left:25%; width:50%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 100%); animation: vt-shadow 6s ease-in-out infinite alternate; }
@keyframes vt-door { 0% { opacity:0.7; transform: scaleX(1); } 50% { opacity:0.9; transform: scaleX(1.02) scaleY(1.01); } 100% { opacity:0.8; transform: scaleX(0.98); } }
@keyframes vt-volumnia { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 33% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(-1px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes vt-tribune { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(1px) translateY(-2px) rotate(0.5deg); } 75% { transform: translateX(-1px) translateY(0) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes vt-shadow { 0% { opacity:0.3; scale:1; } 50% { opacity:0.6; scale:1.2; } 100% { opacity:0.4; scale:0.9; } }

.scn-brutus-sicinius-plot {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0d0a08 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a20 0%, transparent 60%);
}
.scn-brutus-sicinius-plot .wall-dark {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1f1410 100%);
  animation: bp-wall 12s ease-in-out infinite alternate;
}
.scn-brutus-sicinius-plot .floor-wood {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-top: 2px solid #2a1e1a;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-brutus-sicinius-plot .table-plank {
  position:absolute; bottom:28%; left:35%; right:35%; height:6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: perspective(200px) rotateX(10deg);
}
.scn-brutus-sicinius-plot .candle-glow {
  position:absolute; bottom:34%; left:47%; width:8px; height:20px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,80,.4), 0 0 60px 20px rgba(255,200,80,.15);
  animation: bp-candle 3s ease-in-out infinite alternate;
}
.scn-brutus-sicinius-plot .figure-left {
  position:absolute; bottom:25%; left:20%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: bp-fig-left 5s ease-in-out infinite;
}
.scn-brutus-sicinius-plot .figure-right {
  position:absolute; bottom:25%; right:22%; width:24px; height:52px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: bp-fig-right 7s ease-in-out infinite;
  filter: drop-shadow(-4px 0 6px rgba(0,0,0,.5));
}
.scn-brutus-sicinius-plot .shadow-pool {
  position:absolute; bottom:24%; left:10%; right:10%; height:12%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 80%);
  animation: bp-shadow 10s ease-in-out infinite alternate;
}
.scn-brutus-sicinius-plot .dagger-hilt {
  position:absolute; bottom:32%; left:46%; width:6px; height:10px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  transform: rotate(-15deg);
  animation: bp-dagger 8s ease-in-out infinite;
}
@keyframes bp-wall {
  0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 }
}
@keyframes bp-candle {
  0% { box-shadow: 0 0 25px 8px rgba(255,200,80,.3), 0 0 50px 15px rgba(255,200,80,.1); opacity:.8 }
  50% { box-shadow: 0 0 40px 15px rgba(255,200,80,.5), 0 0 80px 30px rgba(255,200,80,.2); opacity:1 }
  100% { box-shadow: 0 0 30px 10px rgba(255,200,80,.35), 0 0 60px 20px rgba(255,200,80,.12); opacity:.85 }
}
@keyframes bp-fig-left {
  0% { transform: translateX(0) rotate(-2deg) }
  50% { transform: translateX(4px) rotate(2deg) translateY(-2px) }
  100% { transform: translateX(0) rotate(-1deg) }
}
@keyframes bp-fig-right {
  0% { transform: translateX(0) rotate(1deg) }
  50% { transform: translateX(-3px) rotate(-1deg) translateY(-1px) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes bp-shadow {
  0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 }
}
@keyframes bp-dagger {
  0% { transform: rotate(-15deg) scaleY(1) }
  50% { transform: rotate(-10deg) scaleY(1.05) translateY(-1px) }
  100% { transform: rotate(-15deg) scaleY(1) }
}

.scn-messenger-arrival {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0d0a08 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a20 0%, transparent 70%);
}
.scn-messenger-arrival .wall-stone {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
  animation: ma-wall 15s ease-in-out infinite alternate;
}
.scn-messenger-arrival .door-arch {
  position:absolute; bottom:20%; left:50%; width:40px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0d0a08 0%, #1a1210 70%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  border: 2px solid #2a1f1a;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.8);
}
.scn-messenger-arrival .torch-flame {
  position:absolute; bottom:25%; left:40%; width:8px; height:16px;
  background: radial-gradient(circle at 50% 80%, #ffcc60 0%, #ff6020 50%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ma-torch 1.5s ease-in-out infinite alternate;
}
.scn-messenger-arrival .torch-halo {
  position:absolute; bottom:24%; left:40%; width:40px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, rgba(255,200,80,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: ma-halo 3s ease-in-out infinite alternate;
}
.scn-messenger-arrival .messenger-figure {
  position:absolute; bottom:22%; right:25%; width:20px; height:48px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ma-messenger 6s ease-in-out infinite;
}
.scn-messenger-arrival .scroll-hand {
  position:absolute; bottom:28%; right:30%; width:12px; height:4px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: ma-scroll 8s ease-in-out infinite;
}
.scn-messenger-arrival .shadow-splay {
  position:absolute; bottom:20%; left:20%; right:20%; height:8%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 80%);
}
.scn-messenger-arrival .dust-motes {
  position:absolute; top:10%; left:0; right:0; height:90%;
  background: radial-gradient(circle at 30% 20%, rgba(255,220,150,.04) 0%, transparent 50%),
              radial-gradient(circle at 70% 40%, rgba(255,220,150,.03) 0%, transparent 50%);
  animation: ma-dust 30s linear infinite;
}
@keyframes ma-wall {
  0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 }
}
@keyframes ma-torch {
  0% { box-shadow: 0 0 15px 5px #ff6020; opacity:.8; transform: translateX(-50%) scale(1) }
  50% { box-shadow: 0 0 25px 10px #ff8020; opacity:1; transform: translateX(-50%) scale(1.1) }
  100% { box-shadow: 0 0 15px 5px #ff6020; opacity:.85; transform: translateX(-50%) scale(1) }
}
@keyframes ma-halo {
  0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.35 }
}
@keyframes ma-messenger {
  0% { transform: translateX(0) rotate(-1deg) }
  50% { transform: translateX(-2px) rotate(1deg) translateY(-1px) }
  100% { transform: translateX(2px) rotate(0) }
}
@keyframes ma-scroll {
  0% { transform: rotate(30deg) translateX(0) }
  50% { transform: rotate(25deg) translateX(2px) translateY(-1px) }
  100% { transform: rotate(30deg) translateX(0) }
}
@keyframes ma-dust {
  0% { transform: translateY(0) rotate(0) }
  50% { transform: translateY(10px) rotate(2deg) }
  100% { transform: translateY(0) rotate(0) }
}

.scn-capitol-officers-cushions {
  background: 
    linear-gradient(180deg, #d4c8b8 0%, #c0b0a0 30%, #a89888 100%),
    radial-gradient(ellipse at 50% 0%, #e8dcc8 0%, transparent 60%);
}
.scn-capitol-officers-cushions .floor-marble {
  position:absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #b8a898 0%, #a09080 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.1);
  animation: co-floor 20s ease-in-out infinite alternate;
}
.scn-capitol-officers-cushions .column-left {
  position:absolute; top:5%; left:10%; width:20px; height:70%;
  background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%);
  border-radius: 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,.1);
  transform: scaleX(0.8);
}
.scn-capitol-officers-cushions .column-right {
  position:absolute; top:5%; right:10%; width:20px; height:70%;
  background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%);
  border-radius: 10%;
  box-shadow: -2px 0 6px rgba(0,0,0,.1);
  transform: scaleX(0.8);
}
.scn-capitol-officers-cushions .cushion-left {
  position:absolute; bottom:25%; left:25%; width:30px; height:12px;
  background: radial-gradient(ellipse at 50% 30%, #805030 0%, #502818 100%);
  border-radius: 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  transform: rotate(-5deg);
  animation: co-cushion 8s ease-in-out infinite;
}
.scn-capitol-officers-cushions .cushion-right {
  position:absolute; bottom:25%; right:25%; width:30px; height:12px;
  background: radial-gradient(ellipse at 50% 30%, #805030 0%, #502818 100%);
  border-radius: 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  transform: rotate(5deg);
  animation: co-cushion 8s ease-in-out infinite reverse;
  animation-delay: 2s;
}
.scn-capitol-officers-cushions .officer-figure {
  position:absolute; bottom:22%; left:38%; width:18px; height:42px;
  background: linear-gradient(180deg, #c0a890 0%, #a08068 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: co-officer 6s ease-in-out infinite;
}
.scn-capitol-officers-cushions .citizen-silhouette {
  position:absolute; bottom:24%; right:30%; width:16px; height:38px;
  background: linear-gradient(180deg, #302820 0%, #181008 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: co-citizen 10s ease-in-out infinite;
  opacity: .7;
}
.scn-capitol-officers-cushions .sunbeam-shaft {
  position:absolute; top:0; left:50%; width:40px; height:80%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,255,230,.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: co-sunbeam 12s ease-in-out infinite alternate;
}
@keyframes co-floor {
  0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 }
}
@keyframes co-cushion {
  0% { transform: rotate(-5deg) translateY(0) }
  50% { transform: rotate(-3deg) translateY(-2px) scale(1.02) }
  100% { transform: rotate(-5deg) translateY(0) }
}
@keyframes co-officer {
  0% { transform: translateX(0) rotate(-1deg) }
  50% { transform: translateX(2px) rotate(1deg) translateY(-1px) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes co-citizen {
  0% { transform: translateX(0) scaleY(1) opacity:.7 }
  50% { transform: translateX(-1px) scaleY(1.02) opacity:.8 }
  100% { transform: translateX(0) scaleY(1) opacity:.7 }
}
@keyframes co-sunbeam {
  0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 }
}

.scn-senate-meeting {
  background: 
    linear-gradient(180deg, #e0d4c0 0%, #d0c0a8 30%, #b8a890 100%),
    radial-gradient(ellipse at 50% 40%, #f0e4d0 0%, transparent 60%);
}
.scn-senate-meeting .floor-tessera {
  position:absolute; inset: 65% 0 0 0;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.08);
}
.scn-senate-meeting .rostrum {
  position:absolute; bottom:35%; left:35%; right:35%; height:6%;
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a890 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,.1), inset 0 2px 4px rgba(255,255,255,.4);
  transform: perspective(300px) rotateX(5deg);
}
.scn-senate-meeting .elder-left {
  position:absolute; bottom:25%; left:18%; width:20px; height:46px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: sm-elder 10s ease-in-out infinite;
}
.scn-senate-meeting .elder-right {
  position:absolute; bottom:25%; right:18%; width:20px; height:46px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: sm-elder 12s ease-in-out infinite reverse;
  animation-delay: 3s;
}
.scn-senate-meeting .scroll-unfurled {
  position:absolute; bottom:32%; left:43%; width:40px; height:10px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  transform: rotate(-2deg);
  animation: sm-scroll 14s ease-in-out infinite;
}
.scn-senate-meeting .banner-drape {
  position:absolute; top:5%; left:10%; right:10%; height:8%;
  background: linear-gradient(180deg, #a08068 0%, #806048 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.1);
  animation: sm-banner 16s ease-in-out infinite alternate;
}
.scn-senate-meeting .chandelier-light {
  position:absolute; top:10%; left:45%; right:45%; height:4%;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,80,.2);
  animation: sm-chandelier 4s ease-in-out infinite alternate;
}
.scn-senate-meeting .consul-chair {
  position:absolute; bottom:20%; left:42%; right:42%; height:14%;
  background: linear-gradient(180deg, #806048 0%, #604028 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.2);
  transform: scaleY(0.95);
}
@keyframes sm-elder {
  0% { transform: translateX(0) rotate(-1deg) }
  50% { transform: translateX(2px) rotate(1deg) translateY(-1px) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes sm-scroll {
  0% { transform: rotate(-2deg) translateY(0) }
  50% { transform: rotate(0) translateY(-2px) }
  100% { transform: rotate(-2deg) translateY(0) }
}
@keyframes sm-banner {
  0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) }
}
@keyframes sm-chandelier {
  0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.5 }
}

/* volumnia-plea-opening */
.scn-volumnia-plea-opening {
  background: linear-gradient(180deg, #1c1428 0%, #2a1e2f 40%, #0f0b12 100%), radial-gradient(ellipse at 30% 40%, #3a2a3e 0%, transparent 70%);
}
.scn-volumnia-plea-opening .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1220 0%, #0e0912 100%); animation: vpo-bg 18s ease-in-out infinite alternate;
}
.scn-volumnia-plea-opening .column-left {
  position: absolute; left: 12%; top: 0; bottom: 20%; width: 4%; background: linear-gradient(180deg, #4a3a3e 0%, #2a1e24 100%); border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.6); animation: vpo-column 12s ease-in-out infinite alternate;
}
.scn-volumnia-plea-opening .column-right {
  position: absolute; right: 12%; top: 0; bottom: 20%; width: 4%; background: linear-gradient(180deg, #4a3a3e 0%, #2a1e24 100%); border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.6); animation: vpo-column 12s ease-in-out infinite alternate-reverse;
}
.scn-volumnia-plea-opening .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1c1418 0%, #0f0a0c 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: vpo-floor 15s ease-in-out infinite alternate;
}
.scn-volumnia-plea-opening .figure-volumnia {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vpo-figure 6s ease-in-out infinite;
}
.scn-volumnia-plea-opening .figure-woman-1 {
  position: absolute; bottom: 22%; left: 30%; width: 10%; height: 26%; background: linear-gradient(180deg, #2e2222 0%, #140e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vpo-figure 6s ease-in-out infinite 1s;
}
.scn-volumnia-plea-opening .figure-woman-2 {
  position: absolute; bottom: 24%; left: 60%; width: 10%; height: 24%; background: linear-gradient(180deg, #2e2222 0%, #140e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vpo-figure 6s ease-in-out infinite 2s;
}
.scn-volumnia-plea-opening .brazier {
  position: absolute; bottom: 18%; left: 50%; width: 8%; height: 12%; background: radial-gradient(circle at 50% 30%, #c8553d 0%, #5a1a1a 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,85,61,0.4), 0 0 60px 20px rgba(200,85,61,0.2); animation: vpo-brazier 4s ease-in-out infinite alternate;
}
.scn-volumnia-plea-opening .light-spot {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 0%, rgba(200,120,80,0.15) 0%, transparent 70%); animation: vpo-light 7s ease-in-out infinite alternate;
}
@keyframes vpo-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vpo-column { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes vpo-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes vpo-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vpo-brazier { 0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 5px rgba(200,85,61,0.3); } 50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px rgba(200,85,61,0.5); } 100% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 25px 8px rgba(200,85,61,0.35); } }
@keyframes vpo-light { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }

/* volumnia-prayer */
.scn-volumnia-prayer {
  background: linear-gradient(180deg, #14101a 0%, #1c1628 40%, #0a0810 100%), radial-gradient(ellipse at 50% 60%, #2a1e3a 0%, transparent 70%);
}
.scn-volumnia-prayer .bg-altar {
  position: absolute; inset: 0; background: linear-gradient(180deg, #120e18 0%, #0a080e 100%); animation: vpr-bg 20s ease-in-out infinite alternate;
}
.scn-volumnia-prayer .altar-step {
  position: absolute; bottom: 28%; left: 35%; right: 35%; height: 4%; background: linear-gradient(180deg, #3a2a2a 0%, #1e1414 100%); border-radius: 4px; animation: vpr-step 14s ease-in-out infinite alternate;
}
.scn-volumnia-prayer .altar-stone {
  position: absolute; bottom: 32%; left: 38%; right: 38%; height: 8%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); animation: vpr-altar 16s ease-in-out infinite alternate;
}
.scn-volumnia-prayer .figure-kneeling {
  position: absolute; bottom: 28%; left: 48%; width: 14%; height: 30%; background: linear-gradient(180deg, #2e1e1e 0%, #120a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vpr-kneel 8s ease-in-out infinite;
}
.scn-volumnia-prayer .hands-raised {
  position: absolute; bottom: 45%; left: 46%; width: 6%; height: 12%; background: linear-gradient(180deg, #3a2828 0%, #1a1010 100%); border-radius: 50% 50% 30% 30%; transform-origin: center; animation: vpr-hands 5s ease-in-out infinite;
}
.scn-volumnia-prayer .light-beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 60%; background: linear-gradient(180deg, rgba(180,140,100,0.1) 0%, rgba(180,140,100,0.05) 30%, transparent 100%); filter: blur(4px); animation: vpr-beam 6s ease-in-out infinite alternate;
}
.scn-volumnia-prayer .shadow-figure {
  position: absolute; bottom: 24%; left: 40%; width: 20%; height: 36%; background: linear-gradient(180deg, #0e0a0e 0%, #060406 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.6; filter: blur(6px); animation: vpr-shadow 12s ease-in-out infinite alternate;
}
@keyframes vpr-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vpr-step { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes vpr-altar { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes vpr-kneel { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vpr-hands { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes vpr-beam { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes vpr-shadow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.02); } 100% { opacity: 0.6; transform: scale(0.98); } }

/* volumnia-choice */
.scn-volumnia-choice {
  background: linear-gradient(180deg, #0e0a12 0%, #1a1420 40%, #08040a 100%), radial-gradient(ellipse at 50% 70%, #1a1222 0%, transparent 80%);
}
.scn-volumnia-choice .bg-chamber {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c0810 0%, #06040a 100%); animation: vch-bg 22s ease-in-out infinite alternate;
}
.scn-volumnia-choice .wall-left {
  position: absolute; left: 0; top: 5%; bottom: 20%; width: 25%; background: linear-gradient(180deg, #1a141e 0%, #0e0a12 100%); overflow: hidden; animation: vch-wall 15s ease-in-out infinite alternate;
}
.scn-volumnia-choice .wall-right {
  position: absolute; right: 0; top: 5%; bottom: 20%; width: 25%; background: linear-gradient(180deg, #1a141e 0%, #0e0a12 100%); animation: vch-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-volumnia-choice .floor-stones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #14101a 0%, #0a0810 100%); border-radius: 8% 8% 0 0 / 15% 15% 0 0; animation: vch-floor 18s ease-in-out infinite alternate;
}
.scn-volumnia-choice .figure-bound {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 30%; background: linear-gradient(180deg, #2a1e1e 0%, #100a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vch-figure 7s ease-in-out infinite;
}
.scn-volumnia-choice .chains-left {
  position: absolute; bottom: 32%; left: 40%; width: 8%; height: 4%; background: linear-gradient(90deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.6); animation: vch-chain 3s ease-in-out infinite alternate;
}
.scn-volumnia-choice .chains-right {
  position: absolute; bottom: 32%; right: 40%; width: 8%; height: 4%; background: linear-gradient(90deg, #3a2a2a 0%, #5a4a4a 100%); border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.6); animation: vch-chain 3s ease-in-out infinite alternate-reverse;
}
.scn-volumnia-choice .door-left {
  position: absolute; left: 28%; bottom: 20%; width: 8%; height: 40%; background: linear-gradient(180deg, #2a1e24 0%, #140e12 100%); border-radius: 4% 4% 0 0; box-shadow: inset 2px 0 6px rgba(0,0,0,0.5); animation: vch-door 20s ease-in-out infinite alternate;
}
.scn-volumnia-choice .door-right {
  position: absolute; right: 28%; bottom: 20%; width: 8%; height: 40%; background: linear-gradient(180deg, #2a1e24 0%, #140e12 100%); border-radius: 4% 4% 0 0; box-shadow: inset -2px 0 6px rgba(0,0,0,0.5); animation: vch-door 20s ease-in-out infinite alternate-reverse;
}
@keyframes vch-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vch-wall { 0% { filter: brightness(0.7); } 50% { filter: brightness(0.9); } 100% { filter: brightness(0.8); } }
@keyframes vch-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1); } }
@keyframes vch-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vch-chain { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vch-door { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }

/* volumnia-womb */
.scn-volumnia-womb {
  background: linear-gradient(180deg, #0e0616 0%, #1a0e22 40%, #08020e 100%), radial-gradient(ellipse at 50% 60%, #1a0e22 0%, transparent 80%);
}
.scn-volumnia-womb .bg-womb-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c0412 0%, #06020a 100%); animation: vwb-bg 25s ease-in-out infinite alternate;
}
.scn-volumnia-womb .figure-volumnia-womb {
  position: absolute; bottom: 20%; left: 45%; width: 14%; height: 34%; background: linear-gradient(180deg, #2a1e1e 0%, #120a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vwb-figure 8s ease-in-out infinite;
}
.scn-volumnia-womb .womb-glow {
  position: absolute; bottom: 38%; left: 48%; width: 8%; height: 10%; background: radial-gradient(circle, #c8553d 0%, #5a1a1a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,85,61,0.4), 0 0 80px 30px rgba(200,85,61,0.2); animation: vwb-glow 5s ease-in-out infinite alternate;
}
.scn-volumnia-womb .shadow-arch {
  position: absolute; bottom: 40%; left: 30%; right: 30%; height: 20%; background: radial-gradient(ellipse at 50% 100%, #0a0412 0%, transparent 70%); filter: blur(10px); animation: vwb-arch 15s ease-in-out infinite alternate;
}
.scn-volumnia-womb .dust-motes {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 20%, rgba(200,180,160,0.03) 0%, transparent 50%), radial-gradient(circle at 70% 80%, rgba(200,180,160,0.02) 0%, transparent 50%); animation: vwb-dust 20s linear infinite;
}
@keyframes vwb-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vwb-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vwb-glow { 0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 20px 10px rgba(200,85,61,0.3); } 50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 50px 25px rgba(200,85,61,0.5); } 100% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 30px 15px rgba(200,85,61,0.35); } }
@keyframes vwb-arch { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.02); } 100% { opacity: 0.6; transform: scale(0.98); } }
@keyframes vwb-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

/* coriolanus-begging-citizens */
.scn-coriolanus-begging-citizens {
  background: linear-gradient(180deg, #f0e6c0 0%, #d4c8a0 30%, #b8a878 70%, #8a6e4a 100%),
              radial-gradient(ellipse at 30% 100%, #f5d090 0%, transparent 60%);
}
.scn-coriolanus-begging-citizens .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8fc4e8 0%, #b8d4f0 40%, transparent 100%);
  animation: cbc-sky 10s ease-in-out infinite alternate;
}
.scn-coriolanus-begging-citizens .sunburst {
  position: absolute; top: 18%; left: 65%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff5c0 0%, #fade80 30%, transparent 70%);
  filter: blur(8px); opacity: 0.7;
  animation: cbc-sun 12s ease-in-out infinite alternate;
}
.scn-coriolanus-begging-citizens .building-left {
  position: absolute; bottom: 8%; left: 5%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #c8b088 0%, #a08060 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset -8px 0 20px rgba(0,0,0,0.2);
  animation: cbc-bld 20s linear infinite;
}
.scn-coriolanus-begging-citizens .building-right {
  position: absolute; bottom: 8%; right: 5%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #b89c74 0%, #9c7c58 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 8px 0 15px rgba(0,0,0,0.15);
  animation: cbc-bld 25s linear infinite reverse;
}
.scn-coriolanus-begging-citizens .coriolanus {
  position: absolute; bottom: 8%; left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 50%, #8a6e4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbc-fig 4s ease-in-out infinite;
}
.scn-coriolanus-begging-citizens .coriolanus::before {
  content: ''; position: absolute; top: 15%; left: 50%; width: 18px; height: 18px;
  background: radial-gradient(circle at 50% 50%, #c0a880 0%, #8a6e4a 100%);
  border-radius: 50% 50% 50% 50%; transform: translateX(-50%);
}
.scn-coriolanus-begging-citizens .citizens {
  position: absolute; bottom: 8%; right: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #b8a088 0%, #9c7c5c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cbc-crowd 6s ease-in-out infinite;
}
.scn-coriolanus-begging-citizens .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
}
@keyframes cbc-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cbc-sun { 0% { transform: scale(0.9) translateY(0); opacity: 0.6 } 50% { transform: scale(1.1) translateY(-4px); opacity: 0.8 } 100% { transform: scale(0.95) translateY(2px); opacity: 0.65 } }
@keyframes cbc-bld { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cbc-fig { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(0) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes cbc-crowd { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }

/* after-election */
.scn-after-election {
  background: linear-gradient(180deg, #d6c8a0 0%, #c0b090 30%, #a89878 60%, #7a6a4a 100%);
}
.scn-after-election .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c8b8a0 0%, #a89078 100%);
  border-radius: 0 0 5% 5%; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.15);
}
.scn-after-election .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #9c8a70 0%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-after-election .window {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #b8d4f0 0%, #8fc4e8 100%);
  border-radius: 8% 8% 4% 4%; border: 10px solid #7a6a4a; box-sizing: border-box;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-after-election .lightbeam {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 80%;
  background: linear-gradient(135deg, rgba(255,240,180,0.5) 0%, rgba(255,240,180,0) 70%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: ael-beam 8s ease-in-out infinite alternate;
}
.scn-after-election .figure {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a08868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ael-fig 5s ease-in-out infinite;
}
.scn-after-election .cloak {
  position: absolute; bottom: 15%; left: 37%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #c8a878 0%, #a08060 100%);
  border-radius: 0 50% 50% 50%; transform: rotate(10deg);
  animation: ael-cloak 3s ease-in-out infinite;
}
@keyframes ael-beam { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 0.9; transform: scaleY(1.05) } 100% { opacity: 0.5; transform: scaleY(0.95) } }
@keyframes ael-fig { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(3deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ael-cloak { 0% { transform: rotate(8deg) } 50% { transform: rotate(14deg) } 100% { transform: rotate(8deg) } }

/* tribunes-stir-citizens */
.scn-tribunes-stir-citizens {
  background: linear-gradient(180deg, #f5dca0 0%, #e0c080 30%, #b88a50 70%, #7a5a2a 100%),
              radial-gradient(ellipse at 20% 80%, #f5d090 0%, transparent 50%);
}
.scn-tribunes-stir-citizens .tense {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0d8f0 0%, #a0b8d0 40%, transparent 100%);
  animation: tsc-sky 5s ease-in-out infinite alternate;
}
.scn-tribunes-stir-citizens .forum-base {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b09878 100%);
  border-radius: 40% 40% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-tribunes-stir-citizens .column-left {
  position: absolute; bottom: 30%; left: 15%; width: 5%; height: 35%;
  background: linear-gradient(180deg, #e0d0b0 0%, #b09878 100%);
  border-radius: 10% 10% 5% 5%;
  animation: tsc-col 15s ease-in-out infinite alternate;
}
.scn-tribunes-stir-citizens .column-right {
  position: absolute; bottom: 30%; right: 15%; width: 5%; height: 35%;
  background: linear-gradient(180deg, #e0d0b0 0%, #b09878 100%);
  border-radius: 10% 10% 5% 5%;
  animation: tsc-col 18s ease-in-out infinite alternate reverse;
}
.scn-tribunes-stir-citizens .tribune-sicinius {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #c85a3a 0%, #a04028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsc-tribune 2s ease-in-out infinite;
}
.scn-tribunes-stir-citizens .tribune-brutus {
  position: absolute; bottom: 10%; left: 50%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #b05030 0%, #8a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsc-tribune 2.3s ease-in-out infinite reverse;
}
.scn-tribunes-stir-citizens .citizen-mob {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #a08868 0%, #7a5a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: -8px 0 10px rgba(0,0,0,0.1);
  animation: tsc-mob 3s ease-in-out infinite;
}
@keyframes tsc-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes tsc-col { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tsc-tribune { 0% { transform: translateY(0) rotate(-5deg) } 30% { transform: translateY(-2px) rotate(5deg) } 60% { transform: translateY(0) rotate(-3deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes tsc-mob { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.08) } 100% { transform: translateY(0) scaleX(1) } }

/* coriolanus-menenius-gentry */
.scn-coriolanus-menenius-gentry {
  background: linear-gradient(180deg, #c8b898 0%, #a89070 30%, #7a5a3a 70%, #4a3020 100%);
}
.scn-coriolanus-menenius-gentry .tent-canvas {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, #d0c0a0 0%, #a89070 60%);
  clip-path: polygon(10% 100%, 90% 100%, 100% 0, 0 0);
  animation: cmg-tent 12s ease-in-out infinite alternate;
}
.scn-coriolanus-menenius-gentry .table {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #c8a878 0%, #a08060 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-coriolanus-menenius-gentry .coriolanus-senate {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b09878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmg-fig 4s ease-in-out infinite;
}
.scn-coriolanus-menenius-gentry .menenius {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a08868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmg-fig 4.5s ease-in-out infinite reverse;
}
.scn-coriolanus-menenius-gentry .other-senators {
  position: absolute; bottom: 20%; left: 15%; width: 15px; height: 35px;
  background: linear-gradient(180deg, #c0a888 0%, #906a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 20px 0 0 rgba(0,0,0,0.1);
  animation: cmg-other 5s ease-in-out infinite;
}
.scn-coriolanus-menenius-gentry .light-shaft {
  position: absolute; top: 0; left: 40%; width: 15%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0) 80%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%);
  animation: cmg-light 8s ease-in-out infinite alternate;
}
@keyframes cmg-tent { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cmg-fig { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cmg-other { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cmg-light { 0% { opacity: 0.4; transform: scaleY(0.95) } 50% { opacity: 0.7; transform: scaleY(1.05) } 100% { opacity: 0.5; transform: scaleY(1) } }

/* Scene: conspirator-plot */
.scn-conspirator-plot {
  background:
    linear-gradient(180deg, #4a3b2e 0%, #2c221a 40%, #1a1412 100%),
    radial-gradient(ellipse at 30% 20%, #f5d0a0 0%, transparent 60%);
}
.scn-conspirator-plot .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6b5a4a 0%, #3a2f26 100%);
  animation: cp-wall 12s ease-in-out infinite alternate;
}
.scn-conspirator-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2c221a 0%, #1a1412 100%);
}
.scn-conspirator-plot .table {
  position: absolute; bottom: 18%; left: 25%; width: 55%; height: 8%;
  background: linear-gradient(180deg, #4d3c2b 0%, #35281b 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: cp-table 10s ease-in-out infinite;
}
.scn-conspirator-plot .vessel {
  position: absolute; bottom: 23%; left: 40%; width: 10%; height: 10%;
  background: radial-gradient(circle, #a0764a 0%, #6b4e2e 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 16px 4px rgba(160,118,74,.3);
}
.scn-conspirator-plot .figure-a {
  position: absolute; bottom: 10%; left: 20%; width: 18%; height: 34%;
  background: linear-gradient(180deg, #1a1412 0%, #0e0b09 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-fig-a 6s ease-in-out infinite;
}
.scn-conspirator-plot .figure-b {
  position: absolute; bottom: 10%; right: 20%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #1a1412 0%, #0e0b09 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-fig-b 7s ease-in-out infinite;
}
.scn-conspirator-plot .knife {
  position: absolute; bottom: 20%; left: 49%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 80% 80%;
  transform: rotate(25deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: cp-knife 4s ease-in-out infinite alternate;
}
.scn-conspirator-plot .light-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(245,208,160,.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: cp-light 8s ease-in-out infinite alternate;
}
@keyframes cp-wall {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes cp-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cp-fig-a {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(3px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cp-fig-b {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cp-knife {
  0% { transform: rotate(20deg) translateY(0); }
  100% { transform: rotate(30deg) translateY(-4px); }
}
@keyframes cp-light {
  0% { opacity: .4; transform: scaleX(1); }
  100% { opacity: .8; transform: scaleX(1.1); }
}

/* Scene: aufidius-resentment */
.scn-aufidius-resentment {
  background:
    linear-gradient(180deg, #8aa3b0 0%, #4f6d7a 40%, #2a3b44 100%),
    radial-gradient(ellipse at 60% 30%, #f5e6c8 0%, transparent 70%);
}
.scn-aufidius-resentment .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8ced6 0%, #7fa3b0 100%);
  animation: ar-sky 20s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .sun {
  position: absolute; top: 10%; right: 20%; width: 12%; height: 12%;
  background: radial-gradient(circle, #f5e6c8 0%, #d9b68a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(245,230,200,.4);
  animation: ar-sun 15s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5c7a6a 0%, #3a4f43 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.3);
  animation: ar-hills 18s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .camp-tent {
  position: absolute; bottom: 35%; left: 15%; width: 24%; height: 20%;
  background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  transform: scaleY(0.7);
  animation: ar-tent 12s ease-in-out infinite;
}
.scn-aufidius-resentment .figure-c {
  position: absolute; bottom: 12%; left: 50%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0e1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-fig 5s ease-in-out infinite;
}
.scn-aufidius-resentment .spear {
  position: absolute; bottom: 20%; left: 46%; width: 2%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ar-spear 6s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .banner {
  position: absolute; bottom: 28%; left: 48%; width: 6%; height: 16%;
  background: linear-gradient(180deg, #b87878 0%, #7a4a4a 100%);
  border-radius: 0 0 20% 20%;
  transform: skewX(-5deg);
  animation: ar-banner 8s ease-in-out infinite alternate;
}
.scn-aufidius-resentment .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: ar-shadow 12s ease-in-out infinite alternate;
}
@keyframes ar-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes ar-sun {
  0% { transform: scale(1); opacity: .9; }
  100% { transform: scale(1.1); opacity: 1; }
}
@keyframes ar-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ar-tent {
  0%,100% { transform: scaleY(0.7) translateX(0); }
  50% { transform: scaleY(0.72) translateX(2px); }
}
@keyframes ar-fig {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(5px) rotate(1deg); }
  66% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ar-spear {
  0% { transform: rotate(-12deg) translateY(0); }
  100% { transform: rotate(-8deg) translateY(-5px); }
}
@keyframes ar-banner {
  0% { transform: skewX(-5deg) scaleX(1); opacity: .8; }
  100% { transform: skewX(0deg) scaleX(1.1); opacity: 1; }
}
@keyframes ar-shadow {
  0% { opacity: .5; }
  100% { opacity: .7; }
}

/* Scene: coriolanus-return-2 */
.scn-coriolanus-return-2 {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9b68a 40%, #b8966a 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%);
}
.scn-coriolanus-return-2 .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8d9e6 0%, #a8b8c8 100%);
  animation: cr2-sky 20s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .arch-left {
  position: absolute; bottom: 10%; left: 8%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #b8966a 0%, #8a7050 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  border-radius: 40% 0 0 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,.2);
  animation: cr2-arch-l 15s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .arch-right {
  position: absolute; bottom: 10%; right: 8%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #b8966a 0%, #8a7050 100%);
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  border-radius: 0 40% 0 0;
  box-shadow: inset 8px 0 20px rgba(0,0,0,.2);
  animation: cr2-arch-r 15s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: cr2-ground 18s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .figure-r {
  position: absolute; bottom: 6%; left: 42%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr2-fig 6s ease-in-out infinite;
}
.scn-coriolanus-return-2 .cloak {
  position: absolute; bottom: 8%; left: 38%; width: 22%; height: 20%;
  background: linear-gradient(180deg, #702243 0%, #4a162c 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: skewX(-5deg);
  opacity: .8;
  animation: cr2-cloak 8s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .laurel {
  position: absolute; bottom: 38%; left: 44%; width: 10%; height: 6%;
  background: radial-gradient(circle, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(74,106,42,.4);
  animation: cr2-laurel 5s ease-in-out infinite alternate;
}
.scn-coriolanus-return-2 .dust {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse, rgba(200,170,130,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: cr2-dust 12s ease-in-out infinite alternate;
}
@keyframes cr2-sky {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes cr2-arch-l {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.02); }
}
@keyframes cr2-arch-r {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.02); }
}
@keyframes cr2-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cr2-fig {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(4px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cr2-cloak {
  0% { transform: skewX(-5deg) scaleX(1); opacity: .7; }
  100% { transform: skewX(0deg) scaleX(1.05); opacity: .9; }
}
@keyframes cr2-laurel {
  0% { transform: scale(1) rotate(-5deg); }
  100% { transform: scale(1.08) rotate(5deg); }
}
@keyframes cr2-dust {
  0% { opacity: .3; transform: translateX(0); }
  100% { opacity: .6; transform: translateX(10px); }
}

/* Scene: coriolanus-peace-2 */
.scn-coriolanus-peace-2 {
  background:
    linear-gradient(180deg, #ebd8b0 0%, #c8a878 40%, #a08050 100%),
    radial-gradient(ellipse at 50% 50%, #f5e6c8 0%, transparent 60%);
}
.scn-coriolanus-peace-2 .bg-council {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: cp2-bg 20s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .table-top {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: cp2-table 10s ease-in-out infinite;
}
.scn-coriolanus-peace-2 .scroll {
  position: absolute; bottom: 24%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c098 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-1deg);
  animation: cp2-scroll 12s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .seal {
  position: absolute; bottom: 24%; left: 48%; width: 4%; height: 5%;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,85,61,.5);
  animation: cp2-seal 8s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .hand-l {
  position: absolute; bottom: 22%; left: 28%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: cp2-hand-l 5s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .hand-r {
  position: absolute; bottom: 22%; right: 28%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: cp2-hand-r 5s ease-in-out infinite alternate;
}
.scn-coriolanus-peace-2 .goblet {
  position: absolute; bottom: 18%; left: 55%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 20% 20% 30% 30% / 10% 10% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.3);
  animation: cp2-goblet 14s ease-in-out infinite;
}
@keyframes cp2-bg {
  0% { opacity: .85; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.02); }
}
@keyframes cp2-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes cp2-scroll {
  0% { transform: rotate(-2deg) scaleX(1); }
  100% { transform: rotate(1deg) scaleX(1.02); }
}
@keyframes cp2-seal {
  0% { transform: scale(1); opacity: .9; }
  100% { transform: scale(1.08); opacity: 1; }
}
@keyframes cp2-hand-l {
  0% { transform: rotate(18deg) translateY(0); }
  100% { transform: rotate(22deg) translateY(-2px); }
}
@keyframes cp2-hand-r {
  0% { transform: rotate(-18deg) translateY(0); }
  100% { transform: rotate(-22deg) translateY(-2px); }
}
@keyframes cp2-goblet {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}

/* welcome-ladies */
.scn-welcome-ladies {
  background: 
    linear-gradient(180deg, #fcedd0 0%, #eed5a0 40%, #d4b87a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-welcome-ladies .sky-wl {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fde8c0 0%, transparent 100%);
  animation: wl-sky 12s ease-in-out infinite alternate;
}
.scn-welcome-ladies .temple-bg-wl {
  position: absolute;
  bottom: 25%;
  left: 10%;
  right: 10%;
  height: 45%;
  background: linear-gradient(180deg, #d1b078 0%, #b8945a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: wl-temple 18s ease-in-out infinite;
}
.scn-welcome-ladies .columns-wl {
  position: absolute;
  bottom: 25%;
  left: 15%;
  right: 15%;
  height: 40%;
  background: repeating-linear-gradient(90deg, #e8d5b0 0px, #e8d5b0 10px, transparent 10px, transparent 20px);
  border-radius: 5% 5% 0 0;
  opacity: 0.6;
  animation: wl-columns 24s linear infinite;
}
.scn-welcome-ladies .figure-patron-wl {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #c8905a 0%, #8a6030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wl-patron 6s ease-in-out infinite;
}
.scn-welcome-ladies .figure-crowd1-wl {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 32px;
  height: 70px;
  background: linear-gradient(180deg, #b08050 0%, #7a5428 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: wl-crowd1 8s ease-in-out infinite alternate;
}
.scn-welcome-ladies .figure-crowd2-wl {
  position: absolute;
  bottom: 28%;
  right: 25%;
  width: 28px;
  height: 65px;
  background: linear-gradient(180deg, #a07040 0%, #6a4820 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: wl-crowd2 7s ease-in-out infinite alternate;
}
.scn-welcome-ladies .flowers-wl {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 12%;
  background: 
    radial-gradient(circle at 20% 100%, #f0a050 4px, transparent 4px),
    radial-gradient(circle at 40% 100%, #f0c060 3px, transparent 3px),
    radial-gradient(circle at 60% 100%, #e08040 5px, transparent 5px),
    radial-gradient(circle at 80% 100%, #f0a050 4px, transparent 4px);
  background-repeat: repeat-x;
  background-size: 20% 100%;
  animation: wl-flowers 20s linear infinite;
}
.scn-welcome-ladies .banner-wl {
  position: absolute;
  bottom: 55%;
  left: 42%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: top center;
  animation: wl-banner 4s ease-in-out infinite alternate;
}
@keyframes wl-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wl-temple { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wl-columns { 0% { background-position: 0% 0%; } 100% { background-position: 20% 0%; } }
@keyframes wl-patron { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wl-crowd1 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(8px) translateY(-4px); } 100% { transform: translateX(-4px) translateY(2px); } }
@keyframes wl-crowd2 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-6px) scaleX(0.95); } 100% { transform: translateX(2px) scaleX(1.02); } }
@keyframes wl-flowers { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes wl-banner { 0% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }

/* antium-plot */
.scn-antium-plot {
  background: 
    linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 40%, #0e0e2a 100%),
    radial-gradient(ellipse at 30% 60%, #3b3b6e 0%, transparent 70%);
}
.scn-antium-plot .bg-arch-anp {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1e1e3a 0%, transparent 50%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: anp-bg 20s ease-in-out infinite;
}
.scn-antium-plot .sunlight-beam-anp {
  position: absolute;
  top: 0;
  left: 35%;
  width: 150%;
  height: 60%;
  background: linear-gradient(135deg, rgba(255,220,150,0.2) 0%, transparent 70%);
  transform: rotate(30deg);
  transform-origin: top left;
  animation: anp-beam 12s ease-in-out infinite alternate;
}
.scn-antium-plot .speaker-anp {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 36px;
  height: 80px;
  background: linear-gradient(180deg, #2a2a5a 0%, #10102a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 5px 0 10px rgba(0,0,0,0.5);
  animation: anp-speaker 6s ease-in-out infinite;
}
.scn-antium-plot .paper-anp {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 20px;
  height: 14px;
  background: linear-gradient(135deg, #e0c080 0%, #b09050 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: anp-paper 8s ease-in-out infinite alternate;
}
.scn-antium-plot .crowd-fig1-anp {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: anp-crowd1 10s ease-in-out infinite alternate;
}
.scn-antium-plot .crowd-fig2-anp {
  position: absolute;
  bottom: 22%;
  right: 18%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, #14142e 0%, #08081a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: anp-crowd2 9s ease-in-out infinite alternate;
}
.scn-antium-plot .shadow-anp {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: anp-shadow 14s ease-in-out infinite alternate;
}
@keyframes anp-bg { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.7; } }
@keyframes anp-beam { 0% { opacity: 0.2; transform: rotate(25deg) scaleX(0.8); } 50% { opacity: 0.4; transform: rotate(32deg) scaleX(1); } 100% { opacity: 0.1; transform: rotate(28deg) scaleX(0.9); } }
@keyframes anp-speaker { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes anp-paper { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(-1px); } }
@keyframes anp-crowd1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.02); } 100% { transform: translateX(-3px) scaleY(0.98); } }
@keyframes anp-crowd2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes anp-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* item-paper-accusation */
.scn-item-paper-accusation {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #1a1010 30%, #0e0808 100%),
    radial-gradient(ellipse at 60% 20%, #4a2a1a 0%, transparent 60%);
}
.scn-item-paper-accusation .bg-chamber-ipa {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1e1210 0%, #0a0606 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.8);
  animation: ipa-bg 25s ease-in-out infinite;
}
.scn-item-paper-accusation .desk-ipa {
  position: absolute;
  bottom: 15%;
  left: 20%;
  right: 20%;
  height: 25%;
  background: linear-gradient(180deg, #3a2010 0%, #2a1508 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
  animation: ipa-desk 18s ease-in-out infinite alternate;
}
.scn-item-paper-accusation .hand-ipa {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #7a4a2a 0%, #5a3018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ipa-hand 6s ease-in-out infinite;
}
.scn-item-paper-accusation .document-ipa {
  position: absolute;
  bottom: 22%;
  left: 37%;
  width: 40px;
  height: 50px;
  background: linear-gradient(135deg, #e0c890 0%, #c0a060 100%);
  border-radius: 3px;
  transform: rotate(-5deg);
  box-shadow: 3px 3px 6px rgba(0,0,0,0.6);
  animation: ipa-doc 10s ease-in-out infinite alternate;
}
.scn-item-paper-accusation .inkpot-ipa {
  position: absolute;
  bottom: 18%;
  right: 30%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0800 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: ipa-ink 14s ease-in-out infinite;
}
.scn-item-paper-accusation .candle-ipa {
  position: absolute;
  bottom: 30%;
  right: 25%;
  width: 10px;
  height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #d8b060 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 0 20px 4px #f0c060, 0 0 40px 8px rgba(240,192,96,0.4);
  animation: ipa-candle 4s ease-in-out infinite alternate;
}
.scn-item-paper-accusation .shadow-stripe-ipa {
  position: absolute;
  top: 0;
  left: 40%;
  width: 20%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 50%, transparent 100%);
  animation: ipa-stripe 20s linear infinite;
}
@keyframes ipa-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ipa-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ipa-hand { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ipa-doc { 0% { transform: rotate(-7deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(-1px); } }
@keyframes ipa-ink { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes ipa-candle { 0% { opacity: 0.8; box-shadow: 0 0 15px 3px #f0c060; } 50% { opacity: 1; box-shadow: 0 0 30px 8px #f0c060, 0 0 50px 12px rgba(240,192,96,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 20px 4px #d8a050; } }
@keyframes ipa-stripe { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

/* aufidius-grievance */
.scn-aufidius-grievance {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #12121e 40%, #08080e 100%),
    radial-gradient(ellipse at 40% 50%, #2a2a4e 0%, transparent 60%);
}
.scn-aufidius-grievance .bg-corridor-ag {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #0e0e1a 0%, #1a1a2e 30%, #0e0e1a 70%, #08080e 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  animation: ag-corridor 30s ease-in-out infinite;
}
.scn-aufidius-grievance .figure-left-ag {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 40px;
  height: 90px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag-left 8s ease-in-out infinite;
}
.scn-aufidius-grievance .figure-right-ag {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 38px;
  height: 85px;
  background: linear-gradient(180deg, #141430 0%, #08081a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag-right 7s ease-in-out infinite;
}
.scn-aufidius-grievance .sword-ag {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 8px;
  height: 60px;
  background: linear-gradient(180deg, #a0a0b0 0%, #606080 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(255,255,255,0.2);
  animation: ag-sword 5s ease-in-out infinite alternate;
}
.scn-aufidius-grievance .light-ray-ag {
  position: absolute;
  top: 0;
  left: 30%;
  width: 100%;
  height: 50%;
  background: linear-gradient(135deg, rgba(200,180,140,0.15) 0%, transparent 70%);
  transform: rotate(15deg);
  transform-origin: top left;
  animation: ag-ray 16s ease-in-out infinite alternate;
}
.scn-aufidius-grievance .shadow-pool-ag {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ag-pool 12s ease-in-out infinite alternate;
}
@keyframes ag-corridor { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ag-left { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ag-right { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(1px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ag-sword { 0% { transform: rotate(18deg) scaleX(1); } 50% { transform: rotate(22deg) scaleX(1.02); } 100% { transform: rotate(20deg) scaleX(0.98); } }
@keyframes ag-ray { 0% { opacity: 0.2; transform: rotate(12deg) scaleX(0.8); } 50% { opacity: 0.4; transform: rotate(18deg) scaleX(1); } 100% { opacity: 0.1; transform: rotate(15deg) scaleX(0.9); } }
@keyframes ag-pool { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

/* tribune-sentences-death */
.scn-tribune-sentences-death {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 40%, #a88b6a 100%),
              radial-gradient(ellipse at 50% 60%, #e8d4b8 0%, transparent 70%);
}
.scn-tribune-sentences-death .bg-deep {
  position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, #c8b08a 0%, transparent 60%);
  animation: tsd-pulse 6s ease-in-out infinite alternate;
}
.scn-tribune-sentences-death .bg-mid {
  position:absolute; inset:20% 10% 30% 10%; background: linear-gradient(135deg, transparent 0%, #d4b890 50%, transparent 100%);
  opacity:0.4; animation: tsd-sway 12s ease-in-out infinite;
}
.scn-tribune-sentences-death .figure {
  position:absolute; bottom:20%; left:50%; width:100px; height:160px; transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tsd-figure 4s ease-in-out infinite;
}
.scn-tribune-sentences-death .arm {
  position:absolute; bottom:60%; left:50%; width:40px; height:80px; transform-origin:0% 100%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: tsd-arm 2.5s ease-in-out infinite;
  left: calc(50% + 45px); bottom: 75%;
}
.scn-tribune-sentences-death .eyes {
  position:absolute; bottom:50%; left:50%; width:16px; height:8px; transform:translate(-50%,-50%);
  background: radial-gradient(circle, #e8b84a 0%, #c08030 70%);
  border-radius: 50%; box-shadow: 0 0 20px 10px #d09040, 0 0 40px 20px rgba(200,120,50,0.4);
  animation: tsd-eyes 1s ease-in-out infinite alternate;
}
.scn-tribune-sentences-death .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #8a7050 0%, #5a3e28 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-tribune-sentences-death .pillar {
  position:absolute; bottom:20%; width:16px; top:10%;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 4px; box-shadow: 2px 0 4px rgba(0,0,0,0.2);
}
.scn-tribune-sentences-death .pillar.left { left:12%; }
.scn-tribune-sentences-death .pillar.right { right:12%; }
.scn-tribune-sentences-death .shadow {
  position:absolute; bottom:20%; left:50%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  transform: translateX(-50%); animation: tsd-shadow 4s ease-in-out infinite;
}
@keyframes tsd-pulse { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tsd-sway { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes tsd-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes tsd-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(20deg) } }
@keyframes tsd-eyes { 0% { opacity:0.8; box-shadow:0 0 20px 10px #d09040; } 100% { opacity:1; box-shadow:0 0 30px 15px #e8b84a; } }
@keyframes tsd-shadow { 0%,100% { opacity:0.5; transform: translateX(-50%) scaleX(1) } 50% { opacity:0.8; transform: translateX(-50%) scaleX(1.1) } }

/* coriolanus-defends-himself */
.scn-coriolanus-defends-himself {
  background: linear-gradient(180deg, #f0e8dc 0%, #dcd0c0 60%, #b8a090 100%),
              radial-gradient(ellipse at 50% 30%, #e8dcc8 0%, transparent 70%);
}
.scn-coriolanus-defends-himself .bg-upper {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #dcd0c0 0%, transparent 100%);
  animation: cdh-sky 10s ease-in-out infinite alternate;
}
.scn-coriolanus-defends-himself .bg-lower {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(0deg, #9a8a7a 0%, #b8a090 100%);
}
.scn-coriolanus-defends-himself .platform {
  position:absolute; bottom:25%; left:30%; right:30%; height:10%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-coriolanus-defends-himself .figure {
  position:absolute; bottom:35%; left:50%; width:60px; height:120px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cdh-figure 3s ease-in-out infinite;
}
.scn-coriolanus-defends-himself .shadow {
  position:absolute; bottom:25%; left:50%; width:60px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform: translateX(-50%); animation: cdh-shadow 3s ease-in-out infinite;
}
.scn-coriolanus-defends-himself .senator {
  position:absolute; bottom:28%; width:25px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
}
.scn-coriolanus-defends-himself .senator-1 { left:18%; }
.scn-coriolanus-defends-himself .senator-2 { left:72%; }
.scn-coriolanus-defends-himself .senator-3 { left:55%; width:22px; height:70px; background: #4a3a2a; }
.scn-coriolanus-defends-himself .light-ray {
  position:absolute; top:10%; left:35%; right:35%; height:5%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,180,0.3) 50%, transparent 100%);
  animation: cdh-ray 5s ease-in-out infinite alternate;
}
@keyframes cdh-sky { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes cdh-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-5px) } }
@keyframes cdh-shadow { 0%,100% { opacity:0.4; transform: translateX(-50%) scaleX(1) } 50% { opacity:0.7; transform: translateX(-50%) scaleX(1.15) } }
@keyframes cdh-ray { 0% { opacity:0.2; transform: scaleY(0.8) } 100% { opacity:0.5; transform: scaleY(1.2) } }

/* banishment-pronounced */
.scn-banishment-pronounced {
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a088 30%, #8a7058 100%),
              radial-gradient(ellipse at 50% 40%, #c8b098 0%, transparent 60%);
}
.scn-banishment-pronounced .bg-back {
  position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #b09880 0%, transparent 70%);
  animation: bp-pulse 8s ease-in-out infinite alternate;
}
.scn-banishment-pronounced .bg-front {
  position:absolute; inset:30% 0 0 0; background: linear-gradient(180deg, #a08870 0%, #705848 100%);
}
.scn-banishment-pronounced .row-figures {
  position:absolute; bottom:30%; left:10%; right:10%; height:40%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 20px, transparent 20px, transparent 25px);
  mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  animation: bp-row 6s ease-in-out infinite;
}
.scn-banishment-pronounced .accused {
  position:absolute; bottom:30%; left:50%; width:40px; height:90px; transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bp-accused 4s ease-in-out infinite;
}
.scn-banishment-pronounced .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-banishment-pronounced .torch-flame {
  position:absolute; bottom:70%; left:20%; width:12px; height:30px;
  background: radial-gradient(ellipse, #ffa040 0%, #b06020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  box-shadow: 0 0 20px 10px #c07030, 0 0 40px 20px rgba(192,112,48,0.3);
  animation: bp-flame 0.8s ease-in-out infinite alternate;
}
.scn-banishment-pronounced .chains {
  position:absolute; bottom:40%; left:50%; width:30px; height:40px;
  border: 2px solid #6a5a4a; border-radius: 50%;
  background: transparent; transform: translateX(-50%);
  animation: bp-chains 3s ease-in-out infinite;
}
@keyframes bp-pulse { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes bp-row { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bp-accused { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes bp-flame { 0% { transform: scaleY(0.9); opacity:0.8 } 100% { transform: scaleY(1.2); opacity:1 } }
@keyframes bp-chains { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(10deg) } }

/* banishment-echoed */
.scn-banishment-echoed {
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 50%, #7a6048 100%),
              radial-gradient(ellipse at 50% 50%, #b8a088 0%, transparent 60%);
}
.scn-banishment-echoed .bg-overhead {
  position:absolute; inset:0; background: radial-gradient(circle at 50% 50%, #a08870 0%, #5a4a3a 100%);
  animation: be-vignette 10s ease-in-out infinite alternate;
}
.scn-banishment-echoed .ring {
  position:absolute; top:10%; bottom:10%; left:10%; right:10%;
  border: 3px solid #8a7050; border-radius: 50%;
  background: transparent; animation: be-ring 15s linear infinite;
}
.scn-banishment-echoed .figure.center {
  position:absolute; top:50%; left:50%; width:50px; height:100px; transform:translate(-50%,-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: be-center 4s ease-in-out infinite;
}
.scn-banishment-echoed .figure-mob {
  position:absolute; width:15px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
}
.scn-banishment-echoed .mob-1 { top:25%; left:30%; animation: be-mob1 5s ease-in-out infinite; }
.scn-banishment-echoed .mob-2 { top:60%; right:20%; animation: be-mob2 7s ease-in-out infinite; }
.scn-banishment-echoed .mob-3 { bottom:15%; left:40%; animation: be-mob3 6s ease-in-out infinite; }
.scn-banishment-echoed .spear {
  position:absolute; bottom:20%; left:60%; width:4px; height:60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform: rotate(15deg); transform-origin: bottom;
  animation: be-spear 3s ease-in-out infinite;
}
.scn-banishment-echoed .dust {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: radial-gradient(ellipse at 40% 100%, rgba(100,80,60,0.3) 0%, transparent 70%);
  animation: be-dust 8s ease-in-out infinite alternate;
}
@keyframes be-vignette { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes be-ring { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes be-center { 0%,100% { transform: translate(-50%,-50%) } 50% { transform: translate(-50%,-50%) translateY(-5px) } }
@keyframes be-mob1 { 0%,100% { transform: translate(0,0) } 50% { transform: translate(8px,-4px) } }
@keyframes be-mob2 { 0%,100% { transform: translate(0,0) } 50% { transform: translate(-6px,3px) } }
@keyframes be-mob3 { 0%,100% { transform: translate(0,0) } 50% { transform: translate(4px,-2px) } }
@keyframes be-spear { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } }
@keyframes be-dust { 0% { opacity:0.1 } 100% { opacity:0.4 } }

/* Scene: tribunes-fear */
.scn-tribunes-fear { background: linear-gradient(180deg, #f5e6c8 0%, #d4b68a 60%, #8c6f4a 100%); }
.scn-tribunes-fear .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e0cfb5 0%, #c4a882 100%); }
.scn-tribunes-fear .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a8835c 0%, #6b4f32 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,.4); }
.scn-tribunes-fear .col-left { position:absolute; bottom:35%; left:10%; width:8%; height:60%; background: linear-gradient(180deg, #b89a7a 0%, #8a6b4e 100%); border-radius:4%; box-shadow: 2px 0 8px rgba(0,0,0,.3); }
.scn-tribunes-fear .col-right { position:absolute; bottom:35%; right:10%; width:8%; height:60%; background: linear-gradient(180deg, #b89a7a 0%, #8a6b4e 100%); border-radius:4%; box-shadow: -2px 0 8px rgba(0,0,0,.3); }
.scn-tribunes-fear .tribune-a { position:absolute; bottom:35%; left:30%; width:7%; height:40%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2515 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin:bottom; animation: tf-fig 3s ease-in-out infinite alternate; }
.scn-tribunes-fear .tribune-b { position:absolute; bottom:35%; right:30%; width:7%; height:40%; background: linear-gradient(180deg, #4a3320 0%, #2a1a0e 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin:bottom; animation: tf-fig 3s ease-in-out infinite alternate-reverse; }
.scn-tribunes-fear .brazier { position:absolute; bottom:35%; left:50%; width:6%; height:15%; transform:translateX(-50%); background: linear-gradient(180deg, #c07030 0%, #804020 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 6px #ff8c40; }
.scn-tribunes-fear .flame { position:absolute; bottom:50%; left:50%; width:3%; height:12%; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ff6020 50%, transparent 100%); filter:blur(2px); animation: tf-flame 0.8s ease-in-out infinite alternate; }
@keyframes tf-fig { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) scaleY(1.02) } 100% { transform: rotate(2deg) } }
@keyframes tf-flame { 0% { transform: translateX(-50%) scaleY(0.9) } 100% { transform: translateX(-50%) scaleY(1.1) } }

/* Scene: aufidius-jealous */
.scn-aufidius-jealous { background: linear-gradient(180deg, #ffe4b5 0%, #f0c27a 60%, #c8955c 100%); }
.scn-aufidius-jealous .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87ceeb 0%, #ffe4b5 100%); animation: aj-sky 20s ease-in-out infinite alternate; }
.scn-aufidius-jealous .tent-bg { position:absolute; bottom:30%; left:15%; right:15%; height:40%; background: linear-gradient(135deg, #d4b07a 0%, #b8945c 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: aj-tent 8s ease-in-out infinite; }
.scn-aufidius-jealous .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #8a704a 0%, #ba925a 100%); }
.scn-aufidius-jealous .table { position:absolute; bottom:30%; left:40%; width:20%; height:8%; background: linear-gradient(180deg, #9a7a50 0%, #6a5030 100%); border-radius:6%; transform-origin:bottom; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-aufidius-jealous .aufidius { position:absolute; bottom:30%; left:25%; width:8%; height:45%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: aj-fig 4s ease-in-out infinite; }
.scn-aufidius-jealous .lieutenant { position:absolute; bottom:30%; right:25%; width:7%; height:40%; background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: aj-fig 4s ease-in-out infinite 2s; }
.scn-aufidius-jealous .soldiers { position:absolute; bottom:30%; left:55%; width:5%; height:35%; background: #3a2a1a; border-radius:50% 40% 20% 20% / 60% 50% 20% 20%; filter:blur(2px); }
.scn-aufidius-jealous .meal-plate { position:absolute; bottom:33%; left:48%; width:6%; height:4%; background: #6a5030; border-radius:50%; box-shadow: 0 0 6px 2px #8a6a40; animation: aj-plate 6s ease-in-out infinite; }
@keyframes aj-sky { 0% { opacity:1 } 50% { opacity:0.85 } 100% { opacity:1 } }
@keyframes aj-tent { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes aj-fig { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes aj-plate { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }

/* Scene: aufidius-plot */
.scn-aufidius-plot { background: linear-gradient(180deg, #2a1a0e 0%, #4a3520 50%, #1a1008 100%); }
.scn-aufidius-plot .tent-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1008 0%, #2a1a0e 100%); }
.scn-aufidius-plot .carpet { position:absolute; bottom:0; left:15%; right:15%; height:40%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2515 100%); border-radius:30% 30% 0 0; }
.scn-aufidius-plot .table-plot { position:absolute; bottom:40%; left:35%; width:30%; height:6%; background: #4a3020; border-radius:4%; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-aufidius-plot .scroll { position:absolute; bottom:42%; left:45%; width:4%; height:8%; background: #8a6a40; border-radius:20%; transform:rotate(-10deg); box-shadow: 0 0 8px 1px #6a5030; animation: ap-scroll 10s ease-in-out infinite; }
.scn-aufidius-plot .aufidius-plot { position:absolute; bottom:40%; left:28%; width:9%; height:45%; background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: ap-fig 5s ease-in-out infinite; }
.scn-aufidius-plot .lieutenant-plot { position:absolute; bottom:40%; right:28%; width:7%; height:38%; background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: ap-fig 5s ease-in-out infinite 2.5s; }
.scn-aufidius-plot .lamp-glow { position:absolute; bottom:44%; left:50%; width:4%; height:4%; background: radial-gradient(circle, #c89850 0%, #804020 60%, transparent 100%); filter:blur(3px); animation: ap-lamp 3s ease-in-out infinite alternate; }
@keyframes ap-scroll { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } }
@keyframes ap-fig { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(1px) } }
@keyframes ap-lamp { 0% { opacity:0.8; box-shadow: 0 0 12px 4px #804020; } 50% { opacity:1; box-shadow: 0 0 24px 8px #c89850; } 100% { opacity:0.7; box-shadow: 0 0 8px 2px #603010; } }

/* Scene: aufidius-predicts */
.scn-aufidius-predicts { background: linear-gradient(180deg, #403020 0%, #6a5030 30%, #8a6a40 100%); }
.scn-aufidius-predicts .sky-haze { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #c8a86a 0%, #a08040 100%); opacity:0.5; }
.scn-aufidius-predicts .city-skyline { position:absolute; bottom:40%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2515 100%); clip-path: polygon(0% 100%, 5% 10%, 15% 10%, 18% 60%, 25% 60%, 30% 0%, 35% 0%, 40% 30%, 50% 30%, 55% 0%, 65% 0%, 70% 20%, 80% 20%, 85% 50%, 95% 50%, 100% 100%); }
.scn-aufidius-predicts .tent-flap { position:absolute; bottom:40%; left:30%; right:30%; height:35%; background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 10px rgba(0,0,0,.6); }
.scn-aufidius-predicts .ground-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #0a0502 0%, #2a1a0e 100%); }
.scn-aufidius-predicts .aufidius-stand { position:absolute; bottom:43%; left:35%; width:8%; height:50%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; animation: apr-fig 6s ease-in-out infinite; }
.scn-aufidius-predicts .lieutenant-kneel { position:absolute; bottom:40%; right:35%; width:6%; height:30%; background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%); border-radius:50% 40% 30% 30% / 60% 50% 30% 30%; transform-origin:bottom; animation: apr-kneel 4s ease-in-out infinite; }
.scn-aufidius-predicts .staff { position:absolute; bottom:43%; left:31%; width:2%; height:55%; background: #5a3e2a; border-radius:2px; transform:rotate(5deg); box-shadow: 0 0 6px 2px #3a2515; animation: apr-staff 10s ease-in-out infinite; }
.scn-aufidius-predicts .shadow-cast { position:absolute; bottom:40%; left:40%; width:15%; height:10%; background: rgba(0,0,0,.5); filter:blur(4px); border-radius:50%; animation: apr-shadow 6s ease-in-out infinite; }
@keyframes apr-fig { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) } }
@keyframes apr-kneel { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes apr-staff { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(2deg) } }
@keyframes apr-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.9) opacity:0.7; } }

/* one block per scene id. Append to style.css. */

/* scene-marcius-request (tense, sunlit) */
.scn-scene-marcius-request {
  background: 
    linear-gradient(180deg, #e8d5b0 0%, #c49a6c 40%, #8b5e3c 100%),
    radial-gradient(ellipse at 70% 20%, #ffe080 0%, transparent 60%);
}
.scn-scene-marcius-request .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8c0d0 0%, #d4b88a 100%);
  animation: smr-sky 8s ease-in-out infinite alternate;
}
.scn-scene-marcius-request .sun-glow {
  position: absolute; top: 10%; left: 70%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffeacc 0%, #d4a460 50%, transparent 70%);
  border-radius: 50%;
  animation: smr-sunglow 4s ease-in-out infinite alternate;
}
.scn-scene-marcius-request .figure-marcius {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smr-figure 6s ease-in-out infinite;
}
.scn-scene-marcius-request .arm-sword {
  position: absolute; bottom: 42%; left: 26%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #2b1a0e 0%, #8c6b3f 60%, #d4a460 100%);
  border-radius: 4px;
  transform-origin: left center;
  animation: smr-sword 3s ease-in-out infinite alternate;
}
.scn-scene-marcius-request .sword-shadow {
  position: absolute; bottom: 40%; left: 32%; width: 80px; height: 30px;
  background: rgba(0,0,0,0.15);
  filter: blur(4px);
  border-radius: 50%;
  animation: smr-swordshadow 3s ease-in-out infinite alternate;
}
.scn-scene-marcius-request .dust-particles {
  position: absolute; bottom: 18%; left: 10%; width: 200px; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,170,120,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: smr-dust 12s ease-in-out infinite;
}
.scn-scene-marcius-request .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: smr-ground 10s ease-in-out infinite alternate;
}
@keyframes smr-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes smr-sunglow { 0% { transform:scale(1); opacity:0.8 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.7 } }
@keyframes smr-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes smr-sword { 0% { transform: rotate(-15deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-20deg) } }
@keyframes smr-swordshadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.2) } 100% { transform: translateX(-5px) scaleX(0.9) } }
@keyframes smr-dust { 0% { transform: translateY(0) } 50% { transform: translateY(-10px) } 100% { transform: translateY(0) } }
@keyframes smr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* scene-gates-corioli (tense, sunlit) */
.scn-scene-gates-corioli {
  background: 
    linear-gradient(180deg, #c4a882 0%, #a08060 40%, #6a5038 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 60%);
}
.scn-scene-gates-corioli .sky-stone {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9a8a7a 0%, #b09880 100%);
  animation: sgc-sky 10s ease-in-out infinite alternate;
}
.scn-scene-gates-corioli .gate-arch {
  position: absolute; bottom: 28%; left: 50%; width: 200px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 30px rgba(0,0,0,0.5);
  animation: sgc-arch 8s ease-in-out infinite alternate;
}
.scn-scene-gates-corioli .gate-doors {
  position: absolute; bottom: 28%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 5% 5% 3% 3%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: sgc-doors 12s ease-in-out infinite;
}
.scn-scene-gates-corioli .left-guard {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sgc-guard-left 3s ease-in-out infinite alternate;
}
.scn-scene-gates-corioli .right-guard {
  position: absolute; bottom: 22%; right: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sgc-guard-right 3s ease-in-out infinite alternate;
  animation-delay: 1.5s;
}
.scn-scene-gates-corioli .spear-left {
  position: absolute; bottom: 50%; left: 30%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #a08060 0%, #6a5038 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: sgc-spear 5s ease-in-out infinite alternate;
}
.scn-scene-gates-corioli .spear-right {
  position: absolute; bottom: 50%; right: 32%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #a08060 0%, #6a5038 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: sgc-spear 5s ease-in-out infinite alternate-reverse;
  animation-delay: 0.5s;
}
.scn-scene-gates-corioli .dust-veil {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,150,100,0.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: sgc-dust 15s ease-in-out infinite alternate;
}
@keyframes sgc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sgc-arch { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes sgc-doors { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(0.98) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes sgc-guard-left { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes sgc-guard-right { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(1deg) } }
@keyframes sgc-spear { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(3deg) } }
@keyframes sgc-dust { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-5px) } 100% { opacity:0.2; transform: translateY(0) } }

/* scene-duel-aufidius (tense, sunlit) */
.scn-scene-duel-aufidius {
  background: 
    linear-gradient(180deg, #d4c4a0 0%, #b09070 40%, #705030 100%),
    radial-gradient(ellipse at 50% 60%, #fff0c0 0%, transparent 50%);
}
.scn-scene-duel-aufidius .battle-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b898 0%, #e0d0b0 100%);
  animation: sda-sky 7s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .battle-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: sda-ground 6s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .marcius-duel {
  position: absolute; bottom: 22%; left: 25%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sda-marcius 2s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .aufidius-duel {
  position: absolute; bottom: 22%; right: 25%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sda-aufidius 2s ease-in-out infinite alternate-reverse;
}
.scn-scene-duel-aufidius .sword-marcius {
  position: absolute; bottom: 48%; left: 30%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #2b1a0e 0%, #a08060 60%, #d4b88a 100%);
  border-radius: 3px;
  transform-origin: left center;
  animation: sda-sword-m 0.5s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .sword-aufidius {
  position: absolute; bottom: 48%; right: 30%; width: 80px; height: 6px;
  background: linear-gradient(270deg, #3a2a1a 0%, #a08060 60%, #d4b88a 100%);
  border-radius: 3px;
  transform-origin: right center;
  animation: sda-sword-a 0.5s ease-in-out infinite alternate;
  animation-delay: 0.25s;
}
.scn-scene-duel-aufidius .clash-spark {
  position: absolute; bottom: 52%; left: 50%; width: 20px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffdd88 0%, #c08040 50%, transparent 80%);
  border-radius: 50%;
  animation: sda-spark 0.3s ease-in-out infinite alternate;
}
.scn-scene-duel-aufidius .dust-debris {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,150,100,0.3) 0%, transparent 70%);
  filter: blur(7px);
  animation: sda-debris 3s ease-in-out infinite alternate;
}
@keyframes sda-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sda-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sda-marcius { 0% { transform: translateX(-5px) rotate(-5deg) } 50% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(-3px) rotate(-3deg) } }
@keyframes sda-aufidius { 0% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(3px) rotate(3deg) } }
@keyframes sda-sword-m { 0% { transform: rotate(-20deg) } 100% { transform: rotate(20deg) } }
@keyframes sda-sword-a { 0% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes sda-spark { 0% { transform: translate(-50%, -50%) scale(0.5); opacity:1 } 100% { transform: translate(-50%, -50%) scale(1.5); opacity:0.5 } }
@keyframes sda-debris { 0% { opacity:0.4; transform: translateY(0) } 50% { opacity:0.8; transform: translateY(-8px) } 100% { opacity:0.3; transform: translateY(0) } }

/* scene-roman-camp-triumph (warm, sunlit) */
.scn-scene-roman-camp-triumph {
  background: 
    linear-gradient(180deg, #f0d8b0 0%, #d4b88a 50%, #a08060 100%),
    radial-gradient(ellipse at 30% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-scene-roman-camp-triumph .camp-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e8d0a8 0%, #d4b88a 100%);
  animation: sct-sky 10s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .camp-tent {
  position: absolute; bottom: 20%; left: 30%; width: 200px; height: 160px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: sct-tent 12s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .tent-flap {
  position: absolute; bottom: 22%; left: 38%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: sct-flap 5s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .figure-cominius {
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sct-cominius 7s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .figure-marcius-wounded {
  position: absolute; bottom: 18%; right: 30%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #2b1a0e 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sct-marcius-wounded 7s ease-in-out infinite alternate-reverse;
}
.scn-scene-roman-camp-triumph .standard {
  position: absolute; bottom: 35%; left: 20%; width: 6px; height: 120px;
  background: linear-gradient(180deg, #a08060 0%, #6a5038 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: sct-standard 8s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .banner {
  position: absolute; bottom: 50%; left: 18%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 0 10px rgba(200,85,61,0.4);
  animation: sct-banner 6s ease-in-out infinite alternate;
}
.scn-scene-roman-camp-triumph .fire-pit {
  position: absolute; bottom: 8%; left: 55%; width: 100px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #804020 70%, transparent 100%);
  border-radius: 50%;
  animation: sct-fire 3s ease-in-out infinite alternate;
}
@keyframes sct-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sct-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes sct-flap { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }
@keyframes sct-cominius { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes sct-marcius-wounded { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(1deg) } }
@keyframes sct-standard { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes sct-banner { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }
@keyframes sct-fire { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }

/* scene 1: news-of-coriolanus-leadership */
.scn-news-of-coriolanus-leadership {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #5a2a0a 40%, #7a3a1a 70%, #4a1a00 100%),
    radial-gradient(ellipse at 30% 60%, #f0a050 0%, transparent 60%);
}
.scn-news-of-coriolanus-leadership .bg-fire { position:absolute; inset:0; background: linear-gradient(180deg, rgba(80,30,0,.6) 0%, transparent 50%, rgba(0,0,0,.5) 100%); animation: ncl-bg 13s ease-in-out infinite alternate; }
.scn-news-of-coriolanus-leadership .wall-l { position:absolute; left:0; bottom:0; width:30%; height:85%; background: linear-gradient(90deg, #6a4020 0%, #8a5030 100%); border-radius:0 20% 0 0; box-shadow: inset -8px 0 12px rgba(0,0,0,.5); }
.scn-news-of-coriolanus-leadership .wall-r { position:absolute; right:0; bottom:0; width:25%; height:80%; background: linear-gradient(270deg, #5a3018 0%, #7a4028 100%); border-radius:20% 0 0 0; box-shadow: inset 8px 0 12px rgba(0,0,0,.5); }
.scn-news-of-coriolanus-leadership .table { position:absolute; bottom:15%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #5a3018 0%, #3a1a08 100%); border-radius:10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-news-of-coriolanus-leadership .fire { position:absolute; bottom:20%; left:15%; width:40px; height:80px; background: radial-gradient(ellipse at 50% 100%, #ffa050 0%, #ff6000 40%, #c04000 70%, transparent 100%); border-radius:50%; transform-origin: bottom center; animation: ncl-flame 0.6s ease-in-out infinite alternate; }
.scn-news-of-coriolanus-leadership .messenger { position:absolute; bottom:15%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ncl-run 0.8s ease-in-out infinite; }
.scn-news-of-coriolanus-leadership .servant-a { position:absolute; bottom:15%; right:30%; width:35px; height:55px; background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: ncl-listen 3s ease-in-out infinite; }
.scn-news-of-coriolanus-leadership .servant-b { position:absolute; bottom:15%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #3a2018 0%, #1a1008 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: scaleX(-1); animation: ncl-listen 3.5s ease-in-out infinite 0.5s; }
.scn-news-of-coriolanus-leadership .lantern-glow { position:absolute; bottom:40%; left:10%; width:8px; height:8px; background: radial-gradient(circle, #ffb870 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,180,80,.5); animation: ncl-glow 2s ease-in-out infinite alternate; }
@keyframes ncl-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ncl-flame { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.15) rotate(2deg); } 100% { transform: scaleY(0.95) rotate(-1deg); } }
@keyframes ncl-run { 0% { transform: rotate(10deg) translateX(0) translateY(0); } 25% { transform: rotate(8deg) translateX(5px) translateY(-2px); } 50% { transform: rotate(12deg) translateX(10px) translateY(0); } 75% { transform: rotate(6deg) translateX(15px) translateY(-2px); } 100% { transform: rotate(10deg) translateX(20px) translateY(0); } }
@keyframes ncl-listen { 0% { transform: scaleX(-1) translateY(0) rotate(0); } 25% { transform: scaleX(-1) translateY(-2px) rotate(2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(0); } 75% { transform: scaleX(-1) translateY(-2px) rotate(-2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0); } }
@keyframes ncl-glow { 0% { opacity:0.6; box-shadow: 0 0 20px 10px rgba(255,180,80,.3); } 50% { opacity:1; box-shadow: 0 0 40px 20px rgba(255,200,100,.6); } 100% { opacity:0.8; box-shadow: 0 0 30px 15px rgba(255,180,80,.4); } }

/* scene 2: servingmen-applaud-war */
.scn-servingmen-applaud-war {
  background:
    linear-gradient(180deg, #2a1008 0%, #4a2010 40%, #6a3018 70%, #3a1808 100%),
    radial-gradient(ellipse at 70% 70%, #e08030 0%, transparent 70%);
}
.scn-servingmen-applaud-war .bg-tavern { position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,20,0,.5) 0%, transparent 50%); animation: saw-bg 16s ease-in-out infinite alternate; }
.scn-servingmen-applaud-war .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border-radius: 20% 20% 0 0; }
.scn-servingmen-applaud-war .hearth { position:absolute; bottom:18%; left:10%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff9040 0%, #c05000 50%, #802000 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(128,32,0,.6); animation: saw-hearth 2s ease-in-out infinite alternate; }
.scn-servingmen-applaud-war .speaker { position:absolute; bottom:20%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0c00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: saw-speak 1.2s ease-in-out infinite; }
.scn-servingmen-applaud-war .listener-a { position:absolute; bottom:20%; right:25%; width:35px; height:60px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: top center; animation: saw-clap 0.8s ease-in-out infinite; }
.scn-servingmen-applaud-war .listener-b { position:absolute; bottom:20%; right:5%; width:35px; height:60px; background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: top center; animation: saw-clap 0.9s ease-in-out infinite 0.3s; }
.scn-servingmen-applaud-war .tankard-a { position:absolute; bottom:25%; left:55%; width:16px; height:22px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: saw-tilt 3s ease-in-out infinite; }
.scn-servingmen-applaud-war .tankard-b { position:absolute; bottom:27%; right:20%; width:14px; height:20px; background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: saw-tilt 3.5s ease-in-out infinite 1s; }
@keyframes saw-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes saw-hearth { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) scaleX(0.9) } 100% { transform: scaleY(0.9) scaleX(1.1) } }
@keyframes saw-speak { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-3px) } 50% { transform: rotate(-6deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes saw-clap { 0% { transform: scaleY(1) scaleX(1); } 25% { transform: scaleY(0.95) scaleX(1.05); } 50% { transform: scaleY(1) scaleX(1); } 75% { transform: scaleY(0.95) scaleX(1.05); } 100% { transform: scaleY(1) scaleX(1); } }
@keyframes saw-tilt { 0% { transform: rotate(0) translate(0,0); } 25% { transform: rotate(-5deg) translate(-2px,1px); } 50% { transform: rotate(0) translate(0,0); } 75% { transform: rotate(5deg) translate(2px,1px); } 100% { transform: rotate(0) translate(0,0); } }

/* scene 3: servingmen-praise-war */
.scn-servingmen-praise-war {
  background:
    linear-gradient(180deg, #2a0a00 0%, #5a2010 30%, #7a3a1a 60%, #4a1a08 100%),
    radial-gradient(ellipse at 30% 80%, #e08030 0%, transparent 60%);
}
.scn-servingmen-praise-war .bg-inn { position:absolute; inset:0; background: linear-gradient(180deg, rgba(80,30,0,.5) 0%, transparent 40%, rgba(0,0,0,.4) 100%); animation: spw-bg 20s ease-in-out infinite alternate; }
.scn-servingmen-praise-war .bench { position:absolute; bottom:12%; left:15%; right:15%; height:6%; background: linear-gradient(180deg, #4a2a18 0%, #2a1208 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.6); }
.scn-servingmen-praise-war .cheerer-a { position:absolute; bottom:15%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0c00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spw-cheer 1.5s ease-in-out infinite; }
.scn-servingmen-praise-war .cheerer-b { position:absolute; bottom:15%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spw-cheer 1.5s ease-in-out infinite 0.5s; }
.scn-servingmen-praise-war .cheerer-c { position:absolute; bottom:15%; right:20%; width:40px; height:70px; background: linear-gradient(180deg, #4a3020 0%, #201008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spw-cheer 1.5s ease-in-out infinite 1s; }
.scn-servingmen-praise-war .flagon { position:absolute; bottom:20%; left:50%; width:20px; height:28px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 20% 20%; transform: translateX(-50%); animation: spw-tilt 4s ease-in-out infinite; }
.scn-servingmen-praise-war .candle { position:absolute; bottom:30%; right:10%; width:4px; height:30px; background: linear-gradient(180deg, #ffc060 0%, #ff8020 40%, #804000 100%); border-radius: 20%; box-shadow: 0 0 12px 6px rgba(255,192,96,.6); animation: spw-candle 1.2s ease-in-out infinite alternate; }
@keyframes spw-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes spw-cheer { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-6px) rotate(0deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-6px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes spw-tilt { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(-8deg); } 50% { transform: translateX(-50%) rotate(0); } 75% { transform: translateX(-50%) rotate(8deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes spw-candle { 0% { transform: scaleY(1) rotate(-1deg); opacity:0.9; } 50% { transform: scaleY(1.2) rotate(1deg); opacity:1; } 100% { transform: scaleY(0.9) rotate(-1deg); opacity:0.85; } }

/* scene 4: tribunes-hear-not */
.scn-tribunes-hear-not {
  background:
    linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 40%, #b8a88c 100%),
    radial-gradient(ellipse at 50% 80%, #fff8e0 0%, transparent 70%);
}
.scn-tribunes-hear-not .bg-chamber { position:absolute; inset:0; background: linear-gradient(180deg, rgba(220,200,170,.4) 0%, transparent 60%, rgba(0,0,0,.1) 100%); animation: thn-bg 30s ease-in-out infinite alternate; }
.scn-tribunes-hear-not .column-l { position:absolute; left:10%; bottom:0; width:6%; height:90%; background: linear-gradient(90deg, #c0a890 0%, #e0c8b0 30%, #b09878 100%); border-radius: 10% 10% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,.1); }
.scn-tribunes-hear-not .column-r { position:absolute; right:10%; bottom:0; width:6%; height:90%; background: linear-gradient(270deg, #c0a890 0%, #e0c8b0 30%, #b09878 100%); border-radius: 10% 10% 0 0; box-shadow: -2px 0 6px rgba(0,0,0,.1); }
.scn-tribunes-hear-not .tribune-left { position:absolute; bottom:25%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #8a7860 0%, #5a4a38 100%); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; transform: rotate(5deg); animation: thn-stand 8s ease-in-out infinite; }
.scn-tribunes-hear-not .tribune-right { position:absolute; bottom:25%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #7a6848 0%, #4a3a28 100%); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: thn-stand 8s ease-in-out infinite 2s; }
.scn-tribunes-hear-not .window-light { position:absolute; top:15%; left:40%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,250,230,.8) 0%, transparent 100%); border-radius: 10%; box-shadow: 0 0 60px 30px rgba(255,250,200,.2); animation: thn-light 12s ease-in-out infinite alternate; }
@keyframes thn-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes thn-stand { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes thn-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* scene-volumnia-home */
.scn-scene-volumnia-home {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 30%, #3a2a1a 100%),
              radial-gradient(circle at 40% 80%, #8a7a5a 0%, transparent 60%);
}
.scn-scene-volumnia-home .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); }
.scn-scene-volumnia-home .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a2a1a, #4a3a2a); }
.scn-scene-volumnia-home .stool-left { position:absolute; bottom:30%; left:25%; width:30px; height:20px; background: linear-gradient(180deg, #6a4a3a, #4a2a1a); border-radius:4%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: vh-stool 6s ease-in-out infinite alternate; }
.scn-scene-volumnia-home .stool-right { position:absolute; bottom:30%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #6a4a3a, #4a2a1a); border-radius:4%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: vh-stool 6s ease-in-out infinite alternate-reverse; }
.scn-scene-volumnia-home .figure-left { position:absolute; bottom:30%; left:22%; width:28px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vh-sew 4s ease-in-out infinite; }
.scn-scene-volumnia-home .figure-right { position:absolute; bottom:30%; left:52%; width:28px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vh-sew 4s ease-in-out infinite 0.5s; }
.scn-scene-volumnia-home .window { position:absolute; top:10%; right:15%; width:50px; height:70px; background: radial-gradient(circle at 50% 50%, #c0b080, #908060); border-radius:5px; box-shadow: inset 0 0 20px #a09070; animation: vh-window 10s ease-in-out infinite alternate; }
.scn-scene-volumnia-home .fire-glow { position:absolute; bottom:30%; left:10%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #d08040 60%, transparent 100%); border-radius:50%; animation: vh-fire 3s ease-in-out infinite alternate; }
.scn-scene-volumnia-home .sewing-basket { position:absolute; bottom:30%; left:40%; width:24px; height:18px; background: linear-gradient(180deg, #7a5a3a, #5a3a1a); border-radius:0 0 8px 8px; animation: vh-basket 8s ease-in-out infinite; }
@keyframes vh-stool { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vh-sew { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vh-window { 0% { opacity:0.7; box-shadow: inset 0 0 10px #a09070; } 50% { opacity:1; box-shadow: inset 0 0 30px #c0b080; } 100% { opacity:0.8; box-shadow: inset 0 0 15px #a09070; } }
@keyframes vh-fire { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes vh-basket { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* scene-valeria-visit */
.scn-scene-valeria-visit {
  background: linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 30%, #4a3a2a 100%),
              radial-gradient(circle at 20% 60%, #9a8a6a 0%, transparent 50%);
}
.scn-scene-valeria-visit .room-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #8a7a5a, #6a5a3a); }
.scn-scene-valeria-visit .door-arch { position:absolute; bottom:20%; left:10%; width:40px; height:80px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: vv-door 12s ease-in-out infinite alternate; }
.scn-scene-valeria-visit .figure-valeria { position:absolute; bottom:20%; left:8%; width:24px; height:55px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vv-enter 8s ease-in-out infinite; }
.scn-scene-valeria-visit .figure-virgilia { position:absolute; bottom:20%; left:38%; width:26px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vv-seated 6s ease-in-out infinite; }
.scn-scene-valeria-visit .figure-volumnia { position:absolute; bottom:20%; left:55%; width:26px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 30%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vv-stand 4s ease-in-out infinite alternate; }
.scn-scene-valeria-visit .stool-center { position:absolute; bottom:20%; left:42%; width:32px; height:18px; background: linear-gradient(180deg, #6a4a3a, #4a2a1a); border-radius:4%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: vv-stool 7s ease-in-out infinite alternate; }
.scn-scene-valeria-visit .window-light { position:absolute; top:15%; right:20%; width:50px; height:60px; background: radial-gradient(circle at 50% 50%, #d0c0a0, #b0a080); border-radius:5px; box-shadow: inset 0 0 20px #c0b090; animation: vv-window 12s ease-in-out infinite alternate; }
@keyframes vv-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes vv-enter { 0% { transform: translateX(-20px) rotate(0deg); opacity:0; } 30% { opacity:1; } 70% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); opacity:1; } }
@keyframes vv-seated { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vv-stand { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes vv-stool { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes vv-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* item-butterfly-gilded */
.scn-scene-item-butterfly-gilded {
  background: linear-gradient(180deg, #7a6a5a 0%, #9a8a6a 40%, #5a4a3a 100%),
              radial-gradient(circle at 50% 50%, #b0a080 0%, transparent 70%);
}
.scn-scene-item-butterfly-gilded .hoop { position:absolute; top:15%; left:15%; width:70%; height:70%; border: 3px solid #6a5a3a; border-radius:50%; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 4px 10px rgba(0,0,0,0.3); animation: bg-hoop 10s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .fabric { position:absolute; top:20%; left:20%; width:60%; height:60%; background: linear-gradient(135deg, #e0d0b0, #c0b090); border-radius:50%; box-shadow: inset 0 0 30px #a09070; animation: bg-fabric 14s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .butterfly-body { position:absolute; top:40%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 50% 50% 0 0; animation: bg-body 5s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .butterfly-wing.wing-l { position:absolute; top:35%; left:30%; width:40px; height:30px; background: radial-gradient(circle at 40% 50%, #d0b080, #b09060); border-radius: 80% 20% 50% 50% / 50% 40% 60% 50%; transform: rotate(-10deg); box-shadow: 0 0 10px rgba(180,140,80,0.5); animation: bg-wing-l 6s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .butterfly-wing.wing-r { position:absolute; top:35%; left:46%; width:40px; height:30px; background: radial-gradient(circle at 60% 50%, #d0b080, #b09060); border-radius: 20% 80% 50% 50% / 50% 40% 60% 50%; transform: rotate(10deg); box-shadow: 0 0 10px rgba(180,140,80,0.5); animation: bg-wing-r 6s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .thread { position:absolute; bottom:20%; left:55%; width:2px; height:60px; background: linear-gradient(180deg, #8a6a4a, #5a3a1a); transform: rotate(-30deg); border-radius:1px; animation: bg-thread 8s ease-in-out infinite alternate; }
.scn-scene-item-butterfly-gilded .needle { position:absolute; bottom:15%; left:52%; width:4px; height:30px; background: linear-gradient(180deg, #c0c0c0, #808080); border-radius:2px; transform: rotate(-30deg); box-shadow: 0 0 2px rgba(0,0,0,0.3); animation: bg-needle 8s ease-in-out infinite alternate; }
@keyframes bg-hoop { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes bg-fabric { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes bg-body { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bg-wing-l { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.05); } 100% { transform: rotate(-5deg) scaleX(0.95); } }
@keyframes bg-wing-r { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.05); } 100% { transform: rotate(5deg) scaleX(0.95); } }
@keyframes bg-thread { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes bg-needle { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-30deg) translateY(-3px); } 100% { transform: rotate(-30deg) translateY(0); } }

/* scene-before-corioli */
.scn-scene-before-corioli {
  background: linear-gradient(180deg, #7a9aba 0%, #9aba8a 40%, #5a7a4a 100%),
              radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, transparent 70%);
}
.scn-scene-before-corioli .sky-battle { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8ab0d0, #6a90b0); animation: bc-sky 20s ease-in-out infinite alternate; }
.scn-scene-before-corioli .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #4a6a3a, #6a8a5a); border-radius: 40% 60% 0 0 / 10% 20% 0 0; }
.scn-scene-before-corioli .city-wall { position:absolute; bottom:30%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #6a5a4a, #4a3a2a); border-radius: 10% 10% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: bc-wall 15s ease-in-out infinite alternate; }
.scn-scene-before-corioli .soldier.left { position:absolute; bottom:28%; left:18%; width:16px; height:40px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bc-soldier-l 5s ease-in-out infinite alternate; }
.scn-scene-before-corioli .soldier.right { position:absolute; bottom:28%; left:40%; width:16px; height:42px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bc-soldier-r 5s ease-in-out infinite alternate-reverse; }
.scn-scene-before-corioli .banner { position:absolute; bottom:26%; left:60%; width:6px; height:50px; background: #3a2a1a; border-radius: 2px; animation: bc-banner 8s ease-in-out infinite alternate; }
.scn-scene-before-corioli .banner::after { content:''; position:absolute; top:0; left:4px; width:20px; height:12px; background: #a0461a; border-radius:0 50% 50% 0; box-shadow: 0 0 6px rgba(160,70,26,0.5); }
.scn-scene-before-corioli .drum { position:absolute; bottom:22%; left:70%; width:20px; height:12px; background: linear-gradient(180deg, #8a6a4a, #6a4a2a); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: bc-drum 4s ease-in-out infinite alternate; }
.scn-scene-before-corioli .dust { position:absolute; bottom:5%; left:10%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(180,160,100,0.3) 0%, transparent 100%); filter: blur(10px); animation: bc-dust 12s linear infinite; }
@keyframes bc-sky { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: -10% -2%; } }
@keyframes bc-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bc-soldier-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bc-soldier-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bc-banner { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bc-drum { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes bc-dust { 0% { transform: translateX(-30px); opacity:0; } 10% { opacity:0.5; } 90% { opacity:0.5; } 100% { transform: translateX(100vw); opacity:0; } }

.scn-coriolanus-arrives-forum {
  background: linear-gradient(180deg, #4a7a9e 0%, #2a5a7a 40%, #1a3a4a 100%), radial-gradient(ellipse at 50% 20%, #f0d090 0%, transparent 70%);
}

.scn-coriolanus-arrives-forum .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a9abe 0%, #4a7a9e 50%, transparent 100%);
  animation: ci1-sky 10s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .sun-glow {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4c0 0%, #f0d090 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 80px 30px rgba(240,208,144,0.5);
  animation: ci1-sun 4s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .columns {
  position: absolute; bottom: 25%; width: 12px; height: 40%;
  background: linear-gradient(180deg, #b0a080 0%, #7a6a5a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-coriolanus-arrives-forum .columns.left {
  left: 15%;
  animation: ci1-col-left 8s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .columns.right {
  right: 15%;
  animation: ci1-col-right 8s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .steps {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: repeating-linear-gradient(90deg, #a08868 0px, #a08868 20px, #806850 20px, #806850 40px);
  border-radius: 4px 4px 0 0;
}
.scn-coriolanus-arrives-forum .figure {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ci1-figure 3s ease-in-out infinite;
}
.scn-coriolanus-arrives-forum .crowd-left {
  position: absolute; bottom: 20%; left: 5%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(0% 100%, 0% 40%, 100% 40%, 100% 100%);
  animation: ci1-crowd 5s ease-in-out infinite alternate;
}
.scn-coriolanus-arrives-forum .crowd-right {
  position: absolute; bottom: 20%; right: 5%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(0% 40%, 100% 40%, 100% 100%, 0% 100%);
  animation: ci1-crowd 5s ease-in-out infinite alternate-reverse;
}
.scn-coriolanus-arrives-forum .shadow {
  position: absolute; bottom: 17%; left: 10%; right: 10%; height: 5%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: ci1-shadow 3s ease-in-out infinite;
}

@keyframes ci1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ci1-sun { 0% { transform: translateX(-50%) scale(1); opacity:0.8 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.7 } }
@keyframes ci1-col-left { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ci1-col-right { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ci1-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 75% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes ci1-crowd { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes ci1-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

.scn-trial-preparation {
  background: linear-gradient(180deg, #f5ecd5 0%, #e0d4b8 50%, #c8b898 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-trial-preparation .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8dcc4 0%, #d4c4a8 100%);
}
.scn-trial-preparation .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8cadc0 0%, #6a8ca0 100%);
  border: 4px solid #8a7050;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
  animation: tp1-window 12s ease-in-out infinite alternate;
}
.scn-trial-preparation .light-ray {
  position: absolute; top: 10%; left: 10%; width: 20%; height: 50%;
  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: tp1-ray 8s ease-in-out infinite alternate;
}
.scn-trial-preparation .table {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #b8986a 0%, #8a7050 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-trial-preparation .scroll {
  position: absolute; bottom: 32%; left: 44%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8b490 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: tp1-scroll 5s ease-in-out infinite alternate;
}
.scn-trial-preparation .candle {
  position: absolute; bottom: 35%; left: 38%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #fff8e0 0%, #f0d090 50%, #806040 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 8px rgba(240,208,144,0.6);
  animation: tp1-candle 3s ease-in-out infinite;
}
.scn-trial-preparation .figure {
  position: absolute; bottom: 23%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tp1-figure 4s ease-in-out infinite;
}
.scn-trial-preparation .shadows {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2), transparent);
  filter: blur(6px);
}

@keyframes tp1-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tp1-ray { 0% { opacity:0.3; transform: skewX(0deg) } 50% { opacity:0.6; transform: skewX(3deg) } 100% { opacity:0.4; transform: skewX(-2deg) } }
@keyframes tp1-scroll { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes tp1-candle { 0%,100% { transform: scaleY(1); box-shadow: 0 0 20px 8px rgba(240,208,144,0.6) } 50% { transform: scaleY(1.05); box-shadow: 0 0 30px 12px rgba(240,208,144,0.8) } }
@keyframes tp1-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); opacity:0.9 } 50% { transform: translateX(-48%) rotate(2deg); opacity:1 } }

.scn-trial-opening {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b898 50%, #a08868 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-trial-opening .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8d0c0 0%, #b8a888 100%);
}
.scn-trial-opening .bench-row {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 20%;
  background: repeating-linear-gradient(90deg, #806850 0px, #806850 30px, #706040 30px, #706040 60px);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: to1-bench 6s ease-in-out infinite alternate;
}
.scn-trial-opening .podium {
  position: absolute; bottom: 35%; left: 50%; width: 16%; height: 25%;
  background: linear-gradient(180deg, #b8986a 0%, #8a7050 100%);
  border-radius: 8px 8px 4px 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-trial-opening .figure-judge {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: to1-judge 4s ease-in-out infinite;
}
.scn-trial-opening .figure-orator {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: to1-orator 3s ease-in-out infinite alternate;
}
.scn-trial-opening .light-shaft {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,224,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: to1-shaft 8s ease-in-out infinite alternate;
}
.scn-trial-opening .columns {
  position: absolute; top: 0; bottom: 0; width: 8%;
  background: linear-gradient(180deg, #b0a080 0%, #7a6a5a 100%);
  border-right: 1px solid #9a8a6a;
}
.scn-trial-opening .columns:nth-child(7) {
  left: 2%;
}
.scn-trial-opening .columns:nth-last-child(1) {
  right: 2%;
}

@keyframes to1-bench { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes to1-judge { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes to1-orator { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(10px) rotate(0deg) } 100% { transform: translateX(20px) rotate(2deg) } }
@keyframes to1-shaft { 0% { opacity:0.4; transform: skewX(0deg) } 50% { opacity:0.7; transform: skewX(4deg) } 100% { opacity:0.5; transform: skewX(-3deg) } }

.scn-trial-accusation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #3a2a3a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-trial-accusation .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-trial-accusation .crowd-silhouette-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #1a1a2e 60%, #0a0a1a 100%);
  clip-path: polygon(0% 100%, 0% 50%, 10% 40%, 20% 50%, 30% 35%, 40% 45%, 50% 30%, 60% 40%, 70% 35%, 80% 45%, 90% 30%, 100% 40%, 100% 100%);
  animation: ta1-crowd 6s ease-in-out infinite alternate;
}
.scn-trial-accusation .accuser {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ta1-accuser 4s ease-in-out infinite;
}
.scn-trial-accusation .accused {
  position: absolute; bottom: 25%; right: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: ta1-accused 4s ease-in-out infinite alternate;
}
.scn-trial-accusation .light-spot {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,248,224,0.5) 0%, transparent 60%);
  animation: ta1-spot 5s ease-in-out infinite alternate;
}
.scn-trial-accusation .shadow-accent {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: ta1-shadow 3s ease-in-out infinite alternate;
}
.scn-trial-accusation .chain {
  position: absolute; bottom: 20%; left: 50%; width: 4px; height: 30px;
  background: repeating-linear-gradient(180deg, #887050 0px, #887050 4px, transparent 4px, transparent 8px);
  transform: translateX(-50%);
  animation: ta1-chain 2s ease-in-out infinite;
}

@keyframes ta1-crowd { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-2px) } 100% { transform: scaleY(0.95) translateY(0) } }
@keyframes ta1-accuser { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } }
@keyframes ta1-accused { 0% { transform: scaleX(-1) translateX(0) rotate(2deg) } 50% { transform: scaleX(-1) translateX(-5px) rotate(-2deg) } 100% { transform: scaleX(-1) translateX(0) rotate(0deg) } }
@keyframes ta1-spot { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.05) } 100% { opacity:0.6; transform: scale(0.95) } }
@keyframes ta1-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }
@keyframes ta1-chain { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(5deg) } }

/* coriolanus-death */
.scn-coriolanus-death {
  background: linear-gradient(180deg, #f4d7a0 0%, #c68e5a 40%, #4a2e20 80%), radial-gradient(ellipse at 30% 60%, #f0c868 0%, transparent 60%);
}
.scn-coriolanus-death .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f9e8b8 0%, #dbb070 60%, transparent);
  animation: cd-sky 10s ease-in-out infinite alternate;
}
.scn-coriolanus-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a3a22 0%, #2c1a10 100%);
  border-radius: 40% 60% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.6);
}
.scn-coriolanus-death .body {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #6b4226 0%, #3a2515 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  transform: rotate(-5deg);
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
  animation: cd-body 5s ease-in-out infinite;
}
.scn-coriolanus-death .aufidius {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1e14 0%, #0d0a06 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cd-aufidius 4s ease-in-out infinite alternate;
}
.scn-coriolanus-death .sword1 {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #c0b0a0 0%, #908070 100%);
  border-radius: 2px;
  transform-origin: bottom left;
  transform: rotate(25deg);
  box-shadow: 0 0 4px rgba(200,180,160,.4);
  animation: cd-sword1 3s ease-in-out infinite alternate;
}
.scn-coriolanus-death .sword2 {
  position: absolute; bottom: 28%; left: 52%; width: 4px; height: 65px;
  background: linear-gradient(180deg, #a89880 0%, #706050 100%);
  border-radius: 2px;
  transform-origin: bottom left;
  transform: rotate(-15deg);
  box-shadow: 0 0 4px rgba(180,160,140,.4);
  animation: cd-sword2 3.5s ease-in-out infinite alternate-reverse;
}
.scn-coriolanus-death .sunburst {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffeaa0 0%, #dbbc70 40%, transparent 70%);
  filter: blur(8px);
  animation: cd-sunburst 8s ease-in-out infinite;
}
@keyframes cd-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cd-body {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(2px); }
}
@keyframes cd-aufidius {
  0% { transform: rotate(0); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-1deg) scaleY(0.98); }
}
@keyframes cd-sword1 {
  0% { transform: rotate(25deg) scaleY(1); }
  50% { transform: rotate(30deg) scaleY(0.95); }
  100% { transform: rotate(22deg) scaleY(1); }
}
@keyframes cd-sword2 {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-20deg) scaleY(0.95); }
  100% { transform: rotate(-12deg) scaleY(1); }
}
@keyframes cd-sunburst {
  0%, 100% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 0.9; }
}

/* aufidius-remorse */
.scn-aufidius-remorse {
  background: linear-gradient(180deg, #e8cf9a 0%, #b89060 50%, #4a3020 100%), radial-gradient(ellipse at 40% 80%, #e0c080 0%, transparent 50%);
}
.scn-aufidius-remorse .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f7e3b0 0%, #dbb878 60%, transparent);
  animation: ar-sky 15s ease-in-out infinite alternate;
}
.scn-aufidius-remorse .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a3a22 0%, #2c1a10 100%);
  border-radius: 30% 70% 0 0 / 10% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-aufidius-remorse .figure {
  position: absolute; bottom: 10%; left: 50%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  animation: ar-figure 6s ease-in-out infinite alternate;
}
.scn-aufidius-remorse .shadow {
  position: absolute; bottom: 0; left: 48%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  filter: blur(4px);
  transform: translateX(-50%);
  animation: ar-shadow 6s ease-in-out infinite alternate;
}
.scn-aufidius-remorse .beam {
  position: absolute; top: 5%; left: 35%; width: 8px; height: 300px;
  background: linear-gradient(180deg, rgba(255,230,150,0.6) 0%, transparent 70%);
  border-radius: 4px;
  transform-origin: top;
  transform: rotate(10deg);
  filter: blur(3px);
  animation: ar-beam 8s ease-in-out infinite;
}
@keyframes ar-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ar-figure {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(1px); }
}
@keyframes ar-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(-50%) scaleX(1.1); opacity: 0.6; }
  100% { transform: translateX(-50%) scaleX(0.95); opacity: 0.3; }
}
@keyframes ar-beam {
  0%, 100% { transform: rotate(10deg) scaleY(0.9); opacity: 0.5; }
  50% { transform: rotate(12deg) scaleY(1); opacity: 0.8; }
}

/* lords-mourning */
.scn-lords-mourning {
  background: linear-gradient(180deg, #eedbba 0%, #c6a070 40%, #3a2820 100%), radial-gradient(ellipse at 50% 100%, #fff0d0 0%, transparent 70%);
}
.scn-lords-mourning .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f7eac0 0%, #e0c890 60%, transparent);
  animation: lm-sky 12s ease-in-out infinite alternate;
}
.scn-lords-mourning .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a3020 0%, #1e120a 100%);
  border-radius: 50% 50% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-lords-mourning .bier {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 20px;
  background: linear-gradient(90deg, #6a4a32 0%, #8a6040 50%, #6a4a32 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: lm-bier 7s ease-in-out infinite;
}
.scn-lords-mourning .attendant-left {
  position: absolute; bottom: 17%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 10% 20% 10% 10% / 40% 50% 30% 30%;
  transform-origin: bottom;
  transform: rotate(5deg);
  animation: lm-attendant-left 5s ease-in-out infinite alternate;
}
.scn-lords-mourning .attendant-right {
  position: absolute; bottom: 17%; right: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 20% 10% 10% 10% / 50% 40% 30% 30%;
  transform-origin: bottom;
  transform: rotate(-5deg);
  animation: lm-attendant-right 5s ease-in-out infinite alternate-reverse;
}
.scn-lords-mourning .herald {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a281a 0%, #1a0e06 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  animation: lm-herald 8s ease-in-out infinite;
}
@keyframes lm-sky {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes lm-bier {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}
@keyframes lm-attendant-left {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(-2px); }
  100% { transform: rotate(6deg) translateX(1px); }
}
@keyframes lm-attendant-right {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-6deg) translateX(-1px); }
}
@keyframes lm-herald {
  0%, 100% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
}

/* funeral-march */
.scn-funeral-march {
  background: linear-gradient(180deg, #f0ddb0 0%, #c8a068 40%, #3a2820 100%), radial-gradient(ellipse at 20% 50%, #fff0d0 0%, transparent 50%);
}
.scn-funeral-march .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f7eac0 0%, #e0c890 60%, transparent);
  animation: fm-sky 14s ease-in-out infinite alternate;
}
.scn-funeral-march .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a3020 0%, #1e120a 100%);
  border-radius: 40% 60% 0 0 / 15% 35% 0 0;
  box-shadow: inset 0 8px 24px rgba(0,0,0,.6);
}
.scn-funeral-march .drum {
  position: absolute; bottom: 25%; left: 15%; width: 40px; height: 30px;
  background: linear-gradient(90deg, #5a3a22 0%, #7a5a3a 50%, #5a3a22 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  animation: fm-drum 4s ease-in-out infinite;
}
.scn-funeral-march .pike1 {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  transform: rotate(-5deg);
  box-shadow: inset 0 0 4px rgba(0,0,0,.3);
  animation: fm-pike1 6s ease-in-out infinite alternate;
}
.scn-funeral-march .pike2 {
  position: absolute; bottom: 30%; left: 70%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  transform: rotate(5deg);
  box-shadow: inset 0 0 4px rgba(0,0,0,.3);
  animation: fm-pike2 6s ease-in-out infinite alternate-reverse;
}
.scn-funeral-march .body {
  position: absolute; bottom: 15%; left: 40%; width: 90px; height: 25px;
  background: linear-gradient(180deg, #6b4226 0%, #3a2515 100%);
  border-radius: 5% 5% 20% 20% / 10% 10% 40% 40%;
  transform: rotate(-3deg);
  box-shadow: 0 -2px 6px rgba(0,0,0,.5);
  animation: fm-body 5s ease-in-out infinite;
}
.scn-funeral-march .banner {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #1a0e06 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  transform: translateX(-50%);
  animation: fm-banner 8s ease-in-out infinite;
}
@keyframes fm-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fm-drum {
  0%, 100% { transform: rotate(10deg) scaleX(1); }
  50% { transform: rotate(12deg) scaleX(0.9); }
}
@keyframes fm-pike1 {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-8deg) scaleY(1.02); }
  100% { transform: rotate(-3deg) scaleY(0.98); }
}
@keyframes fm-pike2 {
  0% { transform: rotate(5deg) scaleY(1); }
  50% { transform: rotate(8deg) scaleY(1.02); }
  100% { transform: rotate(3deg) scaleY(0.98); }
}
@keyframes fm-body {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(2px); }
}
@keyframes fm-banner {
  0%, 100% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(5deg); }
}

/* second-messenger-joy */
.scn-second-messenger-joy {
  background:
    linear-gradient(180deg, #ffe8a0 0%, #ffd080 30%, #ffb060 60%, #ff9030 100%),
    radial-gradient(ellipse at 70% 30%, #fff4c0 0%, transparent 60%);
}
.scn-second-messenger-joy .sun {
  position: absolute; top:8%; left:25%; width:80px; height:80px;
  background: radial-gradient(circle, #fff8d0 0%, #ffcc44 40%, #ff9900 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ffcc44, 0 0 120px 60px rgba(255,204,68,0.3);
  animation: smj-sun 6s ease-in-out infinite alternate;
}
.scn-second-messenger-joy .rays {
  position: absolute; top:10%; left:20%; width:120px; height:120px;
  background: repeating-conic-gradient(transparent 0deg, #fff4b0 6deg, transparent 12deg);
  transform-origin: center;
  border-radius: 50%;
  opacity: 0.5;
  animation: smj-rays 20s linear infinite;
}
.scn-second-messenger-joy .arch {
  position: absolute; bottom:30%; left:30%; width:200px; height:160px;
  background: radial-gradient(ellipse at 50% 100%, #c8a87c 0%, #a08050 50%, #806040 100%);
  border-radius: 50% / 70% 70% 30% 30%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3), 0 10px 20px rgba(0,0,0,0.2);
  transform: scaleX(0.6);
}
.scn-second-messenger-joy .figure-run {
  position: absolute; bottom:28%; left:35%; width:22px; height:40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: smj-run 0.8s ease-in-out infinite alternate, smj-move 4s ease-in-out infinite alternate;
}
.scn-second-messenger-joy .banner {
  position: absolute; bottom:40%; left:55%; width:40px; height:60px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%);
  transform-origin: left bottom;
  animation: smj-banner 1.2s ease-in-out infinite alternate;
}
.scn-second-messenger-joy .cloud-joy {
  position: absolute; top:20%; right:10%; width:90px; height:25px;
  background: linear-gradient(90deg, rgba(255,255,200,0.6), rgba(255,255,200,0.1));
  border-radius: 50%;
  filter: blur(8px);
  animation: smj-cloud 30s linear infinite, smj-float 9s ease-in-out infinite alternate;
}
.scn-second-messenger-joy .dust {
  position: absolute; bottom:25%; left:30%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(200,180,120,0.4), transparent);
  border-radius: 50%;
  filter: blur(5px);
  animation: smj-dust 3s ease-in-out infinite alternate;
}
@keyframes smj-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 20px #ffcc44; } 100% { transform: scale(1.05); box-shadow: 0 0 80px 40px #ffe080; } }
@keyframes smj-rays { 0% { transform: rotate(0deg) scale(0.8); } 50% { transform: rotate(180deg) scale(1.1); } 100% { transform: rotate(360deg) scale(0.8); } }
@keyframes smj-run { 0% { transform: rotate(-8deg) translateY(0); } 100% { transform: rotate(8deg) translateY(-3px); } }
@keyframes smj-move { 0% { left:30%; } 50% { left:50%; } 100% { left:30%; } }
@keyframes smj-banner { 0% { transform: rotate(-5deg) scaleY(0.9); } 100% { transform: rotate(5deg) scaleY(1.1); } }
@keyframes smj-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }
@keyframes smj-float { 0% { transform: translateY(0); } 100% { transform: translateY(-10px); } }
@keyframes smj-dust { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 100% { transform: translate(10px,-5px) scale(1.5); opacity:0.1; } }

/* rome-rejoicing */
.scn-rome-rejoicing {
  background:
    linear-gradient(180deg, #ffe8b0 0%, #ffd080 30%, #ffb860 60%, #ff9030 100%),
    radial-gradient(ellipse at 40% 20%, #fff0d0 0%, transparent 50%);
}
.scn-rome-rejoicing .sky-wide {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffeac0 0%, #ffd080 40%, transparent 100%);
}
.scn-rome-rejoicing .sun-large {
  position: absolute; top:8%; left:45%; width:100px; height:100px;
  background: radial-gradient(circle, #fff4c0 0%, #ffcc44 40%, #ff8800 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px #ffcc44, 0 0 160px 80px rgba(255,204,68,0.3);
  animation: rre-sun 8s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .city-skyline {
  position: absolute; bottom:25%; left:5%; right:5%; height:80px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  clip-path: polygon(0% 100%, 8% 60%, 12% 100%, 18% 40%, 22% 100%, 30% 50%, 35% 100%, 45% 30%, 50% 100%, 60% 45%, 65% 100%, 75% 35%, 80% 100%, 90% 55%, 95% 100%, 100% 100%);
  animation: rre-sway 12s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .crowd {
  position: absolute; bottom:20%; left:10%; right:10%; height:30px;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, transparent 6px, transparent 12px);
  filter: blur(1px);
  animation: rre-crowd 3s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .trumpet-left {
  position: absolute; bottom:35%; left:25%; width:16px; height:50px;
  background: linear-gradient(180deg, #c8a84c 0%, #a08030 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: bottom center;
  animation: rre-trumpet 1.5s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .trumpet-right {
  position: absolute; bottom:35%; right:25%; width:16px; height:50px;
  background: linear-gradient(180deg, #c8a84c 0%, #a08030 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: bottom center;
  animation: rre-trumpet 1.5s ease-in-out infinite alternate-reverse;
}
.scn-rome-rejoicing .banner-wind {
  position: absolute; bottom:40%; left:50%; width:60px; height:40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  clip-path: polygon(0 0, 100% 10%, 80% 50%, 100% 90%, 0 100%);
  transform: translateX(-50%);
  animation: rre-banner 0.7s ease-in-out infinite alternate;
}
.scn-rome-rejoicing .confetti {
  position: absolute; top:15%; left:0; width:10px; height:10px;
  background: radial-gradient(circle, #ffd080, transparent);
  border-radius: 50%;
  box-shadow: 20px 30px 0 #f8b060, -10px 50px 0 #e8a040, 40px 70px 0 #d89030, -30px 90px 0 #c88020;
  animation: rre-confetti 5s linear infinite;
}
.scn-rome-rejoicing .gleam {
  position: absolute; top:10%; left:30%; width:40px; height:40px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: rre-gleam 4s ease-in-out infinite alternate;
}
@keyframes rre-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 30px #ffcc44; } 50% { transform: scale(1.05); box-shadow: 0 0 100px 50px #ffe080; } 100% { transform: scale(1); box-shadow: 0 0 80px 40px #ffcc44; } }
@keyframes rre-sway { 0% { transform: scaleX(0.98); } 100% { transform: scaleX(1.02); } }
@keyframes rre-crowd { 0% { transform: translateY(0); opacity:0.8; } 100% { transform: translateY(-3px); opacity:1; } }
@keyframes rre-trumpet { 0% { transform: rotate(-15deg) scaleY(0.9); } 50% { transform: rotate(0deg) scaleY(1.1); } 100% { transform: rotate(15deg) scaleY(0.9); } }
@keyframes rre-banner { 0% { transform: translateX(-50%) rotate(-8deg); } 100% { transform: translateX(-50%) rotate(8deg); } }
@keyframes rre-confetti { 0% { transform: translate(0,0) rotate(0deg); } 100% { transform: translate(60px,80px) rotate(360deg); } }
@keyframes rre-gleam { 0% { opacity:0.2; transform: scale(0.8); } 100% { opacity:0.6; transform: scale(1.3); } }

/* menenius-praise */
.scn-menenius-praise {
  background:
    linear-gradient(180deg, #ffe8a0 0%, #ffd080 40%, #ffb060 80%, #f09820 100%),
    radial-gradient(ellipse at 60% 20%, #fff4c0 0%, transparent 70%);
}
.scn-menenius-praise .bg-temple {
  position: absolute; bottom:30%; left:20%; right:20%; height:200px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  clip-path: polygon(10% 100%, 20% 0%, 80% 0%, 90% 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-menenius-praise .sun-half {
  position: absolute; top:5%; left:45%; width:120px; height:120px;
  background: radial-gradient(circle, #fff8d0 0%, #ffcc44 40%, #ff9900 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 100px 50px #ffcc44, 0 0 200px 100px rgba(255,204,68,0.3);
  animation: mep-sun 10s ease-in-out infinite alternate;
}
.scn-menenius-praise .rays-soft {
  position: absolute; top:5%; left:45%; width:200px; height:200px;
  background: repeating-conic-gradient(transparent 0deg, rgba(255,240,180,0.3) 5deg, transparent 10deg);
  border-radius: 50%;
  transform-origin: center;
  animation: mep-rays 25s linear infinite;
}
.scn-menenius-praise .menenius {
  position: absolute; bottom:32%; left:30%; width:30px; height:60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mep-bow 4s ease-in-out infinite alternate;
}
.scn-menenius-praise .volumnia {
  position: absolute; bottom:30%; right:35%; width:25px; height:55px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mep-bow 4s ease-in-out infinite alternate-reverse;
}
.scn-menenius-praise .wreath {
  position: absolute; bottom:55%; left:50%; width:30px; height:15px;
  background: radial-gradient(ellipse at 50% 50%, #7a9a3a 0%, #4a6a1a 50%, transparent 60%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: mep-wreath 5s ease-in-out infinite alternate;
}
.scn-menenius-praise .pedestal {
  position: absolute; bottom:28%; left:35%; right:35%; height:15px;
  background: linear-gradient(180deg, #b8a888 0%, #988868 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 5px 10px rgba(0,0,0,0.3);
}
@keyframes mep-sun { 0% { transform: scale(0.95) translateY(0); } 50% { transform: scale(1.05) translateY(-5px); } 100% { transform: scale(1) translateY(0); } }
@keyframes mep-rays { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes mep-bow { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes mep-wreath { 0% { transform: translateX(-50%) rotate(-10deg) scale(0.9); } 100% { transform: translateX(-50%) rotate(10deg) scale(1.1); } }

/* senators-thanks */
.scn-senators-thanks {
  background:
    linear-gradient(180deg, #ffe8b0 0%, #ffd080 30%, #ffb060 60%, #e89020 100%),
    radial-gradient(ellipse at 50% 15%, #fff0d0 0%, transparent 60%);
}
.scn-senators-thanks .bg-columns {
  position: absolute; bottom:25%; left:15%; right:15%; height:180px;
  background: linear-gradient(90deg, #b8a888 20%, transparent 20%, transparent 80%, #b8a888 80%);
  border-top: 4px solid #c8b898;
  border-bottom: 4px solid #988868;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
}
.scn-senators-thanks .sun-low {
  position: absolute; bottom:45%; left:45%; width:120px; height:120px;
  background: radial-gradient(circle, #fff8d0 0%, #ffcc44 30%, #ff8800 60%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px #ffcc44, 0 0 150px 80px rgba(255,204,68,0.3);
  animation: sth-sun 9s ease-in-out infinite alternate;
}
.scn-senators-thanks .rays-beam {
  position: absolute; bottom:45%; left:45%; width:200px; height:200px;
  background: conic-gradient(from 0deg, transparent, rgba(255,240,180,0.2) 30deg, transparent 60deg, transparent 90deg, rgba(255,240,180,0.15) 120deg, transparent 150deg);
  border-radius: 50%;
  transform-origin: center;
  animation: sth-rays 30s linear infinite;
}
.scn-senators-thanks .senator-left {
  position: absolute; bottom:28%; left:25%; width:22px; height:55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sth-arm 2s ease-in-out infinite alternate;
}
.scn-senators-thanks .senator-center {
  position: absolute; bottom:28%; left:50%; width:24px; height:60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: sth-arm 2s ease-in-out infinite alternate-reverse;
}
.scn-senators-thanks .senator-right {
  position: absolute; bottom:28%; right:25%; width:22px; height:55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sth-arm 2s ease-in-out infinite alternate;
  animation-delay: -0.5s;
}
.scn-senators-thanks .offering {
  position: absolute; bottom:35%; left:48%; width:20px; height:20px;
  background: radial-gradient(circle, #d0b060 0%, #b09040 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(200,180,80,0.5);
  transform: translateX(-50%);
  animation: sth-offer 6s ease-in-out infinite alternate;
}
.scn-senators-thanks .star-sparkle {
  position: absolute; top:15%; left:30%; width:6px; height:6px;
  background: #fff8e0;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #fff8e0, 30px 40px 0 #ffe8b0, -20px 60px 0 #ffd080;
  animation: sth-sparkle 3s ease-in-out infinite alternate;
}
@keyframes sth-sun { 0% { transform: scale(0.95) translateY(0); opacity:0.9; } 100% { transform: scale(1.05) translateY(-8px); opacity:1; } }
@keyframes sth-rays { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.1); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes sth-arm { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes sth-offer { 0% { transform: translateX(-50%) translateY(0) scale(0.9); } 100% { transform: translateX(-50%) translateY(-10px) scale(1.1); } }
@keyframes sth-sparkle { 0% { opacity:0.3; transform: scale(0.5); } 100% { opacity:0.8; transform: scale(1.5); } }

/* coriolanus-reveals-himself */
.scn-coriolanus-reveals-himself {
  background: 
    radial-gradient(ellipse 80% 70% at 50% 60%, #3a1a0a 0%, #0d0500 60%),
    linear-gradient(180deg, #1a0800 0%, #0d0200 100%);
}
.scn-coriolanus-reveals-himself .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.8) 0%, transparent 40%, transparent 60%, rgba(0,0,0,0.9) 100%);
  animation: cr-bgshift 12s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .fire-core {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff7a33 0%, #cc4400 50%, transparent 80%);
  border-radius: 50%;
  animation: cr-fire 1.2s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .fire-glow {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,100,20,0.4) 0%, transparent 70%);
  animation: cr-glowpulse 3s ease-in-out infinite;
}
.scn-coriolanus-reveals-himself .figure-left {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1005 0%, #0d0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cr-figleft 8s ease-in-out infinite;
}
.scn-coriolanus-reveals-himself .figure-right {
  position: absolute; bottom: 30%; right: 20%; width: 44px; height: 85px;
  background: linear-gradient(180deg, #4a1a0a 0%, #1a0a02 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cr-figright 8s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .sword {
  position: absolute; bottom: 60%; left: 48%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c0a87a 0%, #8a7040 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cr-sword 0.8s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .shadow-stripe {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 50%, transparent 100%);
  animation: cr-stripe 6s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .spark {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffa040 0%, transparent 80%);
  border-radius: 50%;
  animation: cr-spark 2s ease-in-out infinite alternate;
}
.scn-coriolanus-reveals-himself .spark-1 { top: 35%; left: 50%; animation-delay: 0.3s; }
.scn-coriolanus-reveals-himself .spark-2 { top: 45%; left: 48%; animation-delay: 0.9s; }

@keyframes cr-bgshift { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cr-fire { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.15); } 100% { transform: translateX(-50%) scaleY(0.9); } }
@keyframes cr-glowpulse { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes cr-figleft { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes cr-figright { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(3px) rotate(-1deg); } }
@keyframes cr-sword { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes cr-stripe { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes cr-spark { 0% { transform: translate(0,0) scale(0.8); opacity: 0.7; } 50% { transform: translate(-10px, -20px) scale(1.2); opacity: 1; } 100% { transform: translate(5px, -10px) scale(0.6); opacity: 0.3; } }

/* aufidius-embraces-enemy */
.scn-aufidius-embraces-enemy {
  background: 
    radial-gradient(ellipse 70% 50% at 50% 70%, #7a3a1a 0%, #2a1005 60%),
    linear-gradient(180deg, #1a0802 0%, #0d0300 100%);
}
.scn-aufidius-embraces-enemy .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(180,60,10,0.3) 0%, transparent 70%);
  animation: ae-warmpulse 6s ease-in-out infinite alternate;
}
.scn-aufidius-embraces-enemy .fire-glow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,160,40,0.5) 0%, transparent 70%);
  animation: ae-glow 4s ease-in-out infinite;
}
.scn-aufidius-embraces-enemy .embrace-core {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a2a0a 0%, #1a0a02 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: ae-embrace 8s ease-in-out infinite;
}
.scn-aufidius-embraces-enemy .arm-left {
  position: absolute; bottom: 45%; left: 30%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #4a1a08 0%, #2a0a02 100%);
  border-radius: 50% / 40% 40% 60% 60%;
  transform-origin: left center;
  animation: ae-arml 3s ease-in-out infinite;
}
.scn-aufidius-embraces-enemy .arm-right {
  position: absolute; bottom: 45%; right: 30%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #4a1a08 0%, #2a0a02 100%);
  border-radius: 50% / 40% 40% 60% 60%;
  transform-origin: right center;
  animation: ae-armr 3s ease-in-out infinite;
}
.scn-aufidius-embraces-enemy .warm-ray {
  position: absolute; width: 8px; height: 120px;
  background: linear-gradient(180deg, rgba(255,180,60,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ae-ray 12s linear infinite;
}
.scn-aufidius-embraces-enemy .ray-1 { top: 10%; left: 25%; transform: rotate(-20deg); animation-delay: 0s; }
.scn-aufidius-embraces-enemy .ray-2 { top: 5%; right: 20%; transform: rotate(25deg); animation-delay: 6s; }

@keyframes ae-warmpulse { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ae-glow { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes ae-embrace { 0%,100% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg); } }
@keyframes ae-arml { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }
@keyframes ae-armr { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes ae-ray { 0% { opacity: 1; } 50% { opacity: 0.4; } 100% { opacity: 1; } }

/* alliance-offered */
.scn-alliance-offered {
  background: 
    radial-gradient(ellipse 60% 40% at 50% 80%, #6a2a0a 0%, #1a0800 70%),
    linear-gradient(180deg, #0d0300 0%, #1a0800 100%);
}
.scn-alliance-offered .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.5) 100%);
}
.scn-alliance-offered .table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(180deg, #3a1a05 0%, #1a0a01 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.8);
  animation: ao-table 8s ease-in-out infinite;
}
.scn-alliance-offered .hand-left {
  position: absolute; bottom: 38%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a2a0a 0%, #2a1002 100%);
  border-radius: 40% 60% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom right;
  animation: ao-handl 3s ease-in-out infinite alternate;
}
.scn-alliance-offered .hand-right {
  position: absolute; bottom: 38%; right: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a2a0a 0%, #2a1002 100%);
  border-radius: 60% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  animation: ao-handr 3s ease-in-out infinite alternate;
}
.scn-alliance-offered .scroll {
  position: absolute; bottom: 30%; left: 46%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #c0a87a 0%, #8a7040 100%);
  border-radius: 4px 4px 8px 8px;
  transform-origin: center bottom;
  animation: ao-scroll 6s ease-in-out infinite;
}
.scn-alliance-offered .fire-glow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 80%;
  background: radial-gradient(ellipse at 50% 100%, rgba(220,80,10,0.5) 0%, transparent 70%);
  animation: ao-glow 4s ease-in-out infinite alternate;
}
.scn-alliance-offered .sparkle {
  position: absolute; top: 40%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffc040 0%, transparent 80%);
  border-radius: 50%;
  animation: ao-sparkle 2s ease-in-out infinite;
}

@keyframes ao-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ao-handl { 0% { transform: rotate(20deg) translateY(0); } 100% { transform: rotate(10deg) translateY(-3px); } }
@keyframes ao-handr { 0% { transform: rotate(-20deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-3px); } }
@keyframes ao-scroll { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) rotate(1deg); } 100% { transform: scaleY(0.95) rotate(-1deg); } }
@keyframes ao-glow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes ao-sparkle { 0% { transform: scale(0.5) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.5) rotate(180deg); opacity: 1; } 100% { transform: scale(0.8) rotate(360deg); opacity: 0.3; } }

/* servingmen-gossip */
.scn-servingmen-gossip {
  background: 
    radial-gradient(ellipse 70% 60% at 50% 70%, #8a4a1a 0%, #2a1005 60%),
    linear-gradient(180deg, #1a0800 0%, #0d0200 100%);
}
.scn-servingmen-gossip .bg-bright {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,80,20,0.2) 0%, transparent 70%);
  animation: sg-bright 6s ease-in-out infinite alternate;
}
.scn-servingmen-gossip .figure-a {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a1808 0%, #1a0a02 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sg-figa 3s ease-in-out infinite;
}
.scn-servingmen-gossip .figure-b {
  position: absolute; bottom: 30%; right: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a2008 0%, #2a0a02 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sg-figb 3.6s ease-in-out infinite;
}
.scn-servingmen-gossip .cudgel {
  position: absolute; bottom: 40%; left: 42%; width: 8px; height: 35px;
  background: linear-gradient(180deg, #6a4a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: sg-cudgel 1.6s ease-in-out infinite alternate;
}
.scn-servingmen-gossip .top {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, #a07040 0%, #603010 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
  animation: sg-top 0.4s linear infinite;
}
.scn-servingmen-gossip .fire-glow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 80%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,120,20,0.3) 0%, transparent 70%);
  animation: sg-glow 3s ease-in-out infinite alternate;
}
.scn-servingmen-gossip .dust {
  position: absolute; bottom: 25%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(160,120,80,0.6) 0%, transparent 80%);
  border-radius: 50%;
  animation: sg-dust 2s ease-in-out infinite;
}
.scn-servingmen-gossip .shadow-joke {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sg-shadow 4s ease-in-out infinite;
}

@keyframes sg-bright { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes sg-figa { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sg-figb { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-10px) rotate(-4deg); } 60% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sg-cudgel { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(30deg) scaleY(1.1); } 100% { transform: rotate(-20deg) scaleY(0.9); } }
@keyframes sg-top { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes sg-glow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes sg-dust { 0% { transform: translate(0,0) scale(0.8); opacity: 0.5; } 50% { transform: translate(-15px, -20px) scale(1.5); opacity: 0.2; } 100% { transform: translate(10px, -10px) scale(1); opacity: 0.8; } }
@keyframes sg-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.3); opacity: 0.6; } 100% { transform: scaleX(0.9); opacity: 0.4; } }

/* Scene: menenius-refuses-to-go */
.scn-menenius-refuses-to-go {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #b8956a 70%, #8a6e4e 100%),
    radial-gradient(ellipse at 30% 50%, #fff3d0 0%, transparent 60%),
    linear-gradient(180deg, #d4b896 0%, #c4a07a 100%);
}
.scn-menenius-refuses-to-go .backwall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0dfc0 0%, #d4b896 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.08);
}
.scn-menenius-refuses-to-go .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8956a 0%, #8a6e4e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-menenius-refuses-to-go .column-left {
  position: absolute; bottom: 30%; left: 8%;
  width: 16px; height: 70%;
  background: linear-gradient(90deg, #e0c8a0 0%, #b8956a 50%, #e0c8a0 100%);
  border-radius: 8px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.15);
}
.scn-menenius-refuses-to-go .column-right {
  position: absolute; bottom: 30%; right: 8%;
  width: 16px; height: 70%;
  background: linear-gradient(90deg, #e0c8a0 0%, #b8956a 50%, #e0c8a0 100%);
  border-radius: 8px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.15);
}
.scn-menenius-refuses-to-go .chair {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 60px;
  background: linear-gradient(180deg, #8a6030 0%, #604020 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: mrtg-chair 6s ease-in-out infinite;
}
@keyframes mrtg-chair { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
.scn-menenius-refuses-to-go .figure-menenius {
  position: absolute; bottom: 34%; left: 48%;
  width: 26px; height: 44px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: mrtg-figure-refuse 4s ease-in-out infinite;
}
@keyframes mrtg-figure-refuse {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-3px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
.scn-menenius-refuses-to-go .figure-cominius {
  position: absolute; bottom: 34%; left: 60%;
  width: 22px; height: 38px;
  background: linear-gradient(180deg, #a07850 0%, #704830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.25);
  animation: mrtg-figure-beside 5s ease-in-out infinite;
}
@keyframes mrtg-figure-beside {
  0%,100% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(-2px) translateY(-1px); }
  66% { transform: translateX(2px) translateY(0); }
}
.scn-menenius-refuses-to-go .sunbeam {
  position: absolute; top: 10%; left: 30%;
  width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,200,0.35) 0%, transparent 100%);
  transform: rotate(20deg);
  filter: blur(12px);
  animation: mrtg-sunbeam 8s ease-in-out infinite alternate;
}
@keyframes mrtg-sunbeam { 0% { opacity:0.4; transform: rotate(20deg) scaleY(1); } 100% { opacity:0.8; transform: rotate(22deg) scaleY(1.1); } }

/* Scene: cominius-tells-failure */
.scn-cominius-tells-failure {
  background:
    linear-gradient(180deg, #3a2a20 0%, #5a4030 30%, #7a5840 70%, #4a3828 100%),
    radial-gradient(ellipse at 50% 40%, #9a7040 0%, transparent 70%);
}
.scn-cominius-tells-failure .studiowall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a4030 0%, #4a3828 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}
.scn-cominius-tells-failure .desk {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #7a5830 0%, #5a3820 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-cominius-tells-failure .candle {
  position: absolute; bottom: 40%; left: 40%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c070 0%, #b89050 100%);
  border-radius: 3px;
  box-shadow: 0 0 20px 6px rgba(230,180,80,0.6), 0 0 40px 12px rgba(230,180,80,0.3);
  animation: ctf-candle 3s ease-in-out infinite alternate;
}
@keyframes ctf-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.8; } }
.scn-cominius-tells-failure .figure-cominius {
  position: absolute; bottom: 35%; left: 35%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #803020 0%, #602018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ctf-figure 5s ease-in-out infinite;
}
@keyframes ctf-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  30% { transform: translateX(-4px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
.scn-cominius-tells-failure .arm {
  position: absolute; bottom: 42%; left: 50%;
  width: 6px; height: 30px;
  background: linear-gradient(180deg, #803020 0%, #602018 100%);
  border-radius: 5px;
  transform-origin: top center;
  animation: ctf-arm 4s ease-in-out infinite;
}
@keyframes ctf-arm {
  0%,100% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-5px); }
}
.scn-cominius-tells-failure .glow {
  position: absolute; top: 30%; left: 35%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(230,180,80,0.25) 0%, transparent 70%);
  filter: blur(20px);
  animation: ctf-glow 6s ease-in-out infinite alternate;
}
@keyframes ctf-glow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
.scn-cominius-tells-failure .shadow {
  position: absolute; bottom: 20%; left: 30%;
  width: 80px; height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: ctf-shadow 5s ease-in-out infinite;
}
@keyframes ctf-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

/* Scene: menenius-hesitates */
.scn-menenius-hesitates {
  background:
    linear-gradient(180deg, #e0d2b8 0%, #c4b090 30%, #a08868 70%, #7a6048 100%),
    radial-gradient(ellipse at 20% 30%, #fff4d8 0%, transparent 60%);
}
.scn-menenius-hesitates .chamberwall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b09878 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-menenius-hesitates .window-frame {
  position: absolute; top: 15%; right: 10%;
  width: 70px; height: 100px;
  border: 6px solid #8a6a48;
  background: linear-gradient(180deg, #c8e0f0 0%, #e0f0ff 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: mh-window 12s ease-in-out infinite alternate;
}
@keyframes mh-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
.scn-menenius-hesitates .curtain-left {
  position: absolute; top: 15%; right: 20%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #b08060 0%, #906040 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform-origin: top;
  animation: mh-curtain 7s ease-in-out infinite alternate;
}
@keyframes mh-curtain { 0% { transform: skewX(5deg) scaleY(1); } 100% { transform: skewX(-5deg) scaleY(1.05); } }
.scn-menenius-hesitates .curtain-right {
  position: absolute; top: 15%; right: 8%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #b08060 0%, #906040 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform-origin: top;
  animation: mh-curtain 7s ease-in-out infinite alternate-reverse;
}
.scn-menenius-hesitates .figure-menenius {
  position: absolute; bottom: 30%; left: 30%;
  width: 28px; height: 46px;
  background: linear-gradient(180deg, #a06a48 0%, #704830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: mh-figure 4s ease-in-out infinite;
}
@keyframes mh-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  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(0deg); }
}
.scn-menenius-hesitates .sunbeam {
  position: absolute; top: 15%; left: 25%;
  width: 160px; height: 150px;
  background: linear-gradient(0deg, rgba(255,240,200,0.2) 0%, transparent 100%);
  filter: blur(10px);
  transform: rotate(-10deg);
  animation: mh-beam 10s ease-in-out infinite alternate;
}
@keyframes mh-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
.scn-menenius-hesitates .shadow-figure {
  position: absolute; bottom: 20%; left: 28%;
  width: 40px; height: 20px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(6px);
  animation: mh-shadow 4s ease-in-out infinite;
}
@keyframes mh-shadow { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(3px) scaleX(1.1); } }

/* Scene: menenius-accepts-mission */
.scn-menenius-accepts-mission {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #d0b898 30%, #b09070 70%, #8a6e50 100%),
    radial-gradient(ellipse at 60% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-menenius-accepts-mission .hallfloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #8a6e50 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-menenius-accepts-mission .throne {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 70px;
  background: linear-gradient(180deg, #c89660 0%, #a07040 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: mam-throne 5s ease-in-out infinite;
}
@keyframes mam-throne { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-1deg); } }
.scn-menenius-accepts-mission .figure-menenius {
  position: absolute; bottom: 28%; left: 45%;
  width: 26px; height: 48px;
  background: linear-gradient(180deg, #b07a50 0%, #805830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: mam-figure-stand 4s ease-in-out infinite;
}
@keyframes mam-figure-stand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(-2px) translateY(-3px) rotate(2deg); }
  40% { transform: translateX(0) translateY(-5px) rotate(0deg); }
  60% { transform: translateX(2px) translateY(-3px) rotate(-2deg); }
  80% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
.scn-menenius-accepts-mission .arm-reach {
  position: absolute; bottom: 40%; left: 52%;
  width: 8px; height: 34px;
  background: linear-gradient(180deg, #b07a50 0%, #805830 100%);
  border-radius: 6px;
  transform-origin: top center;
  animation: mam-arm 3s ease-in-out infinite;
}
@keyframes mam-arm {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(40deg); }
  50% { transform: rotate(20deg); }
  75% { transform: rotate(50deg); }
  100% { transform: rotate(0deg); }
}
.scn-menenius-accepts-mission .radiance {
  position: absolute; top: 20%; left: 40%;
  width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: mam-radiance 7s ease-in-out infinite alternate;
}
@keyframes mam-radiance { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
.scn-menenius-accepts-mission .shadow-bench {
  position: absolute; bottom: 15%; left: 40%;
  width: 60px; height: 14px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(5px);
  animation: mam-shadow 5s ease-in-out infinite;
}
@keyframes mam-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

/* Scene 1: tribunes-confrontation */
.scn-tribunes-confrontation {
  background: linear-gradient(180deg, #4a7a9a 0%, #7ab0c8 40%, #d4b880 100%), radial-gradient(ellipse at 30% 0%, #f8d090 0%, transparent 60%);
}
.scn-tribunes-confrontation .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a9abb 0%, #a8d0e0 60%, transparent 100%); animation: tc-sky 8s ease-in-out infinite alternate; }
.scn-tribunes-confrontation .sun { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle at 30% 40%, #f8c050 0%, #d09020 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(248,192,80,.6); animation: tc-sun 6s ease-in-out infinite alternate; }
.scn-tribunes-confrontation .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-tribunes-confrontation .column-left { position:absolute; bottom:30%; left:15%; width:20px; height:70px; background: linear-gradient(180deg, #b8a090 0%, #8a7060 100%); border-radius: 10% 10% 20% 20%; box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: tc-column 12s ease-in-out infinite; }
.scn-tribunes-confrontation .column-right { position:absolute; bottom:30%; right:15%; width:20px; height:70px; background: linear-gradient(180deg, #b8a090 0%, #8a7060 100%); border-radius: 10% 10% 20% 20%; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: tc-column 12s ease-in-out infinite reverse; }
.scn-tribunes-confrontation .coriolanus { position:absolute; bottom:38%; left:50%; width:30px; height:80px; margin-left:-15px; background: linear-gradient(180deg, #5e3a2a 0%, #3a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-figure 5s ease-in-out infinite; }
.scn-tribunes-confrontation .tribune { position:absolute; bottom:38%; left:30%; width:28px; height:76px; background: linear-gradient(180deg, #8a6050 0%, #5a3420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-figure 5s ease-in-out infinite reverse; }
.scn-tribunes-confrontation .cape { position:absolute; bottom:38%; left:50%; width:40px; height:60px; margin-left:-30px; background: linear-gradient(180deg, #a04030 0%, #701010 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; transform-origin: top center; animation: tc-cape 3s ease-in-out infinite alternate; }
@keyframes tc-sky { 0% { opacity:.8; transform: translateY(0); } 50% { opacity:.9; transform: translateY(-5px); } 100% { opacity:.7; transform: translateY(3px); } }
@keyframes tc-sun { 0% { box-shadow: 0 0 40px 10px rgba(248,192,80,.4); transform: scale(1); } 50% { box-shadow: 0 0 80px 25px rgba(248,192,80,.7); transform: scale(1.02); } 100% { box-shadow: 0 0 50px 15px rgba(248,192,80,.5); transform: scale(.98); } }
@keyframes tc-column { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes tc-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tc-cape { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* Scene 2: coriolanus-rage-corn-speech */
.scn-coriolanus-rage-corn-speech {
  background: linear-gradient(180deg, #3a5060 0%, #607080 40%, #b0a880 100%), radial-gradient(ellipse at 40% 0%, #c0a060 0%, transparent 70%);
}
.scn-coriolanus-rage-corn-speech .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a6070 0%, #809090 50%, transparent 100%); animation: rcs-sky 15s ease-in-out infinite alternate; }
.scn-coriolanus-rage-corn-speech .sun-pale { position:absolute; top:15%; left:50%; width:50px; height:50px; margin-left:-25px; background: radial-gradient(circle, #e0d0a0 0%, #b0a070 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,180,120,.4); animation: rcs-sun 10s ease-in-out infinite; }
.scn-coriolanus-rage-corn-speech .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #6a5a40 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-coriolanus-rage-corn-speech .stalk { position:absolute; bottom:40%; left:15%; width:8px; height:50px; background: linear-gradient(180deg, #6a7a30 0%, #3a4a10 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom center; animation: rcs-stalk 4s ease-in-out infinite; }
.scn-coriolanus-rage-corn-speech .stalk-left { left:22%; animation-delay: -2s; }
.scn-coriolanus-rage-corn-speech .coriolanus-rage { position:absolute; bottom:35%; left:45%; width:40px; height:90px; background: linear-gradient(180deg, #5a2a1a 0%, #2a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rcs-figure 3s ease-in-out infinite; }
.scn-coriolanus-rage-corn-speech .shadow { position:absolute; bottom:35%; left:38%; width:70px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius: 50%; animation: rcs-shadow 3s ease-in-out infinite; }
@keyframes rcs-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes rcs-sun { 0% { transform: scale(1); opacity:.6; } 50% { transform: scale(1.1); opacity:.9; } 100% { transform: scale(.95); opacity:.7; } }
@keyframes rcs-stalk { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes rcs-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(-3deg) scaleY(1.05); } 60% { transform: translateX(8px) rotate(4deg) scaleY(.95); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rcs-shadow { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.2); opacity:.7; } 100% { transform: scaleX(.9); opacity:.4; } }

/* Scene 3: mutiny-crowd */
.scn-mutiny-crowd {
  background: linear-gradient(180deg, #6a8aba 0%, #a0c0d8 50%, #d8c8a0 100%), radial-gradient(ellipse at 60% 20%, #f0c860 0%, transparent 60%);
}
.scn-mutiny-crowd .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8ab0d0 0%, #b8d8e8 60%, transparent 100%); animation: mc-sky 12s ease-in-out infinite alternate; }
.scn-mutiny-crowd .sun { position:absolute; top:8%; left:70%; width:70px; height:70px; background: radial-gradient(circle at 30% 30%, #f8d070 0%, #e0a040 50%, transparent 75%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(248,208,112,.5); animation: mc-sun 5s ease-in-out infinite; }
.scn-mutiny-crowd .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a6a50 0%, #4a3a2a 100%); border-radius: 10% 90% 0 0 / 30% 70% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.4); }
.scn-mutiny-crowd .crowd-fig { position:absolute; bottom:30%; width:18px; height:50px; background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-mutiny-crowd .crowd-fig-1 { left:20%; animation: mc-fig 3s ease-in-out infinite; }
.scn-mutiny-crowd .crowd-fig-2 { left:35%; animation: mc-fig 3s ease-in-out infinite reverse; animation-delay: -1s; }
.scn-mutiny-crowd .crowd-fig-3 { left:50%; animation: mc-fig 3s ease-in-out infinite; animation-delay: -2s; }
.scn-mutiny-crowd .tribune-speaker { position:absolute; bottom:30%; left:65%; width:28px; height:60px; background: linear-gradient(180deg, #8a6050 0%, #5a3420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-speaker 2.5s ease-in-out infinite; }
.scn-mutiny-crowd .banner { position:absolute; bottom:45%; left:60%; width:12px; height:40px; background: #a03828; border-radius: 10% 10% 40% 40%; transform-origin: bottom; animation: mc-banner 4s ease-in-out infinite; }
@keyframes mc-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes mc-sun { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(.95); } }
@keyframes mc-fig { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mc-speaker { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-2deg); } 60% { transform: translateY(1px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mc-banner { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-8deg); } }

/* Scene 4: coriolanus-sword */
.scn-coriolanus-sword {
  background: linear-gradient(180deg, #4a6070 0%, #809090 30%, #c0a080 100%), radial-gradient(ellipse at 40% 20%, #f0c060 0%, transparent 60%);
}
.scn-coriolanus-sword .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a7a8a 0%, #90a8b0 50%, transparent 100%); animation: cs-sky 10s ease-in-out infinite alternate; }
.scn-coriolanus-sword .sun-blood { position:absolute; top:12%; left:55%; width:55px; height:55px; background: radial-gradient(circle at 40% 30%, #f0c050 0%, #c08030 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(200,120,40,.5); animation: cs-sun 4s ease-in-out infinite; }
.scn-coriolanus-sword .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-coriolanus-sword .coriolanus-sword { position:absolute; bottom:30%; left:40%; width:40px; height:90px; background: linear-gradient(180deg, #5a2a1a 0%, #2a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-body 3s ease-in-out infinite; }
.scn-coriolanus-sword .sword-blade { position:absolute; bottom:70%; left:40%; width:6px; height:60px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 50%, #706050 100%); border-radius: 30% 30% 0 0; transform-origin: bottom center; animation: cs-sword 2s ease-in-out infinite; }
.scn-coriolanus-sword .attacker { position:absolute; bottom:30%; width:25px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-coriolanus-sword .attacker-1 { left:55%; animation: cs-attack 2.5s ease-in-out infinite; }
.scn-coriolanus-sword .attacker-2 { left:65%; animation: cs-attack 2.5s ease-in-out infinite reverse; animation-delay: -1.2s; }
.scn-coriolanus-sword .sparks { position:absolute; bottom:55%; left:48%; width:30px; height:30px; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #ffa030 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(255,160,48,.6); animation: cs-sparks .8s ease-in-out infinite alternate; }
@keyframes cs-sky { 0% { opacity:.8; transform: translateY(0); } 50% { opacity:.9; transform: translateY(-3px); } 100% { opacity:.7; transform: translateY(2px); } }
@keyframes cs-sun { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.08); opacity:1; } 100% { transform: scale(.95); opacity:.85; } }
@keyframes cs-body { 0% { transform: rotate(0deg); } 30% { transform: rotate(-5deg); } 60% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes cs-sword { 0% { transform: rotate(-15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); } }
@keyframes cs-attack { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(-3deg); } 50% { transform: translateX(5px) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cs-sparks { 0% { transform: scale(.8); opacity:.5; } 100% { transform: scale(1.3); opacity:1; } }

/* aufidius-feast (firelit, funny) */
.scn-aufidius-feast {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a2a 70%), radial-gradient(ellipse at 50% 60%, #8a4a2a 0%, transparent 60%);
}
.scn-aufidius-feast .wall-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); opacity:.9;
}
.scn-aufidius-feast .stone-arch {
  position:absolute; top:8%; left:20%; right:20%; height:35%;
  background: radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 70%); border-radius:50% 50% 0 0; filter: blur(4px);
  animation: af-arch 8s ease-in-out infinite alternate;
}
.scn-aufidius-feast .table {
  position:absolute; bottom:20%; left:15%; right:15%; height:12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6);
}
.scn-aufidius-feast .wine-jug {
  position:absolute; bottom:28%; left:35%; width:20px; height:30px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3020 100%); border-radius:40% 40% 20% 20%; transform:skewX(-10deg);
  animation: af-jug 5s ease-in-out infinite alternate;
}
.scn-aufidius-feast .cup-left {
  position:absolute; bottom:24%; left:30%; width:14px; height:16px;
  background: radial-gradient(circle at 30% 30%, #b08050 0%, #7a5020 100%); border-radius:0 0 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: af-cup 6s ease-in-out infinite;
}
.scn-aufidius-feast .cup-right {
  position:absolute; bottom:22%; left:50%; width:14px; height:16px;
  background: radial-gradient(circle at 30% 30%, #c09050 0%, #8a6030 100%); border-radius:0 0 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: af-cup 6s ease-in-out infinite 0.5s;
}
.scn-aufidius-feast .servant-wobbly {
  position:absolute; bottom:22%; left:20%; width:22px; height:50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: af-wobble 3s ease-in-out infinite;
}
.scn-aufidius-feast .servant-drowsy {
  position:absolute; bottom:20%; left:55%; width:20px; height:46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: af-drowsy 4s ease-in-out infinite alternate;
}
.scn-aufidius-feast .fire-glow {
  position:absolute; bottom:5%; left:45%; width:40px; height:60px;
  background: radial-gradient(circle, #ff8040 0%, #cc6020 40%, transparent 70%);
  filter: blur(12px); animation: af-fire 2s ease-in-out infinite alternate;
}
@keyframes af-arch { 0% { filter: blur(4px) scale(1); } 50% { filter: blur(6px) scale(1.02); } 100% { filter: blur(4px) scale(1); } }
@keyframes af-jug { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-8deg) translateY(-2px); } 100% { transform: skewX(-10deg) translateY(0); } }
@keyframes af-cup { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes af-wobble { 0% { transform: rotate(0deg) scaleX(1); } 30% { transform: rotate(5deg) scaleX(0.95); } 60% { transform: rotate(-4deg) scaleX(0.98); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes af-drowsy { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes af-fire { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(0.95); } }

/* coriolanus-mistreated (firelit, funny) */
.scn-coriolanus-mistreated {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2010 50%, #1a0a00 100%), radial-gradient(ellipse at 30% 70%, #6a3a1a 0%, transparent 60%);
}
.scn-coriolanus-mistreated .door-frame {
  position:absolute; top:10%; left:30%; right:30%; bottom:20%;
  border: 8px solid #4a2a1a; border-radius: 10% 10% 0 0; background: transparent; box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-coriolanus-mistreated .door-shadow {
  position:absolute; top:12%; left:32%; right:32%; bottom:22%;
  background: linear-gradient(to right, transparent 0%, rgba(0,0,0,.5) 50%, transparent 100%);
  animation: cm-door-shadow 6s ease-in-out infinite alternate;
}
.scn-coriolanus-mistreated .servant-figure {
  position:absolute; bottom:22%; left:38%; width:24px; height:55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right; animation: cm-servant 3s ease-in-out infinite;
}
.scn-coriolanus-mistreated .arm-push {
  position:absolute; bottom:32%; left:34%; width:20px; height:8px;
  background: #5a3a2a; border-radius: 40% 40% 0 0; transform-origin: right center;
  animation: cm-arm 2s ease-in-out infinite alternate;
}
.scn-coriolanus-mistreated .coriolanus-silhouette {
  position:absolute; bottom:20%; left:48%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg) scaleX(1.2); animation: cm-cor 4s ease-in-out infinite;
}
.scn-coriolanus-mistreated .cloak-flap {
  position:absolute; bottom:23%; left:50%; width:20px; height:30px;
  background: #0a0000; border-radius: 0 50% 0 0; transform-origin: top left;
  animation: cm-cloak 5s ease-in-out infinite;
}
.scn-coriolanus-mistreated .torch-flame {
  position:absolute; top:25%; left:20%; width:12px; height:20px;
  background: radial-gradient(circle at 50% 100%, #ff8040 0%, #cc6020 40%, transparent 70%);
  filter: blur(3px); animation: cm-torch 0.8s ease-in-out infinite alternate;
}
.scn-coriolanus-mistreated .spark.sp1 {
  position:absolute; top:28%; left:18%; width:4px; height:4px;
  background: #ffa060; border-radius: 50%; filter: blur(1px);
  animation: cm-spark 3s linear infinite;
}
.scn-coriolanus-mistreated .spark.sp2 {
  position:absolute; top:30%; left:22%; width:3px; height:3px;
  background: #ffa060; border-radius: 50%; filter: blur(1px);
  animation: cm-spark 4s linear infinite 1.5s;
}
@keyframes cm-door-shadow { 0% { opacity: .5; } 50% { opacity: .3; } 100% { opacity: .6; } }
@keyframes cm-servant { 0% { transform: rotate(0deg) translateX(0); } 20% { transform: rotate(5deg) translateX(2px); } 40% { transform: rotate(-3deg) translateX(-1px); } 60% { transform: rotate(4deg) translateX(3px); } 80% { transform: rotate(-2deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes cm-arm { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(20deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes cm-cor { 0% { transform: rotate(5deg) scaleX(1.2) translateY(0); } 50% { transform: rotate(4deg) scaleX(1.15) translateY(-2px); } 100% { transform: rotate(5deg) scaleX(1.2) translateY(0); } }
@keyframes cm-cloak { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes cm-torch { 0% { transform: scaleY(1); opacity: .9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.9); opacity: .8; } }
@keyframes cm-spark { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-20px) scale(0.5); opacity: .5; } 100% { transform: translateY(-40px) scale(0); opacity: 0; } }

/* coriolanus-fights-servants (firelit, funny) */
.scn-coriolanus-fights-servants {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2010 40%, #1a0a00 100%), radial-gradient(ellipse at 60% 60%, #6a3a1a 0%, transparent 60%);
}
.scn-coriolanus-fights-servants .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-coriolanus-fights-servants .wall {
  position:absolute; inset: 0 0 25% 0; background: linear-gradient(135deg, #2a1a0a 0%, #3a2010 100%); opacity:.8;
}
.scn-coriolanus-fights-servants .coriolanus-arm {
  position:absolute; bottom:15%; left:40%; width:35px; height:20px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 0 60% 40% 0; transform-origin: left center;
  animation: cf-arm 2.5s ease-in-out infinite alternate;
}
.scn-coriolanus-fights-servants .servant-flying {
  position:absolute; bottom:20%; left:20%; width:22px; height:45px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-30deg) translateX(-10px);
  animation: cf-fly 3s ease-in-out infinite;
}
.scn-coriolanus-fights-servants .servant2-stagger {
  position:absolute; bottom:18%; left:55%; width:20px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: cf-stagger 2s ease-in-out infinite;
}
.scn-coriolanus-fights-servants .wine-splash {
  position:absolute; bottom:25%; left:30%; width:15px; height:15px;
  background: radial-gradient(circle at 30% 30%, #b08040 0%, #8a6030 50%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: cf-splash 4s ease-in-out infinite alternate;
}
.scn-coriolanus-fights-servants .bench-tilted {
  position:absolute; bottom:10%; left:10%; right:60%; height:8px;
  background: linear-gradient(90deg, #6a4a2a 0%, #5a3a1a 100%); border-radius: 4px; transform: rotate(-15deg);
  animation: cf-bench 6s ease-in-out infinite;
}
.scn-coriolanus-fights-servants .shadow-fight {
  position:absolute; bottom:12%; left:45%; width:30px; height:40px;
  background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(6px);
  animation: cf-shadow 3s ease-in-out infinite alternate;
}
@keyframes cf-arm { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(20deg) scaleX(1.2); } 100% { transform: rotate(-5deg) scaleX(0.9); } }
@keyframes cf-fly { 0% { transform: rotate(-30deg) translateX(-10px) translateY(0); } 25% { transform: rotate(-20deg) translateX(-5px) translateY(-5px); } 50% { transform: rotate(-35deg) translateX(-15px) translateY(0); } 75% { transform: rotate(-25deg) translateX(-8px) translateY(-3px); } 100% { transform: rotate(-30deg) translateX(-10px) translateY(0); } }
@keyframes cf-stagger { 0% { transform: rotate(0deg) scaleX(1); } 20% { transform: rotate(10deg) scaleX(0.9); } 40% { transform: rotate(-5deg) scaleX(1.05); } 60% { transform: rotate(15deg) scaleX(0.85); } 80% { transform: rotate(-10deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes cf-splash { 0% { transform: scale(1) rotate(0deg); opacity:.9; } 50% { transform: scale(1.5) rotate(30deg); opacity:.6; } 100% { transform: scale(0.8) rotate(-20deg); opacity:.8; } }
@keyframes cf-bench { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(5px); } 100% { transform: rotate(-18deg) translateX(-3px); } }
@keyframes cf-shadow { 0% { transform: scale(1) translateX(0); opacity:.5; } 50% { transform: scale(1.3) translateX(10px); opacity:.7; } 100% { transform: scale(0.9) translateX(-5px); opacity:.4; } }

/* aufidius-recognizes-coriolanus (tense, firelit) */
.scn-aufidius-recognizes-coriolanus {
  background: linear-gradient(180deg, #1a0a00 0%, #2a1000 40%, #0a0000 100%), radial-gradient(ellipse at 40% 50%, #3a1a0a 0%, transparent 60%);
}
.scn-aufidius-recognizes-coriolanus .gloom {
  position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.6) 0%, transparent 50%, rgba(0,0,0,.4) 100%);
}
.scn-aufidius-recognizes-coriolanus .fire-pit {
  position:absolute; bottom:5%; left:45%; width:30px; height:20px;
  background: radial-gradient(circle at 50% 100%, #ff8040 0%, #cc6020 40%, transparent 60%);
  filter: blur(8px); animation: ar-fire 2s ease-in-out infinite alternate;
}
.scn-aufidius-recognizes-coriolanus .aufidius-profile {
  position:absolute; bottom:20%; left:35%; width:25px; height:60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 60% 40% 40% / 60% 70% 40% 40%;
  transform: scaleX(-1); animation: ar-auf 4s ease-in-out infinite;
}
.scn-aufidius-recognizes-coriolanus .coriolanus-profile {
  position:absolute; bottom:20%; left:50%; width:25px; height:60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 60% 40% 40% 40% / 70% 60% 40% 40%;
  animation: ar-cor 4s ease-in-out infinite 0.3s;
}
.scn-aufidius-recognizes-coriolanus .unmuffling-hand {
  position:absolute; bottom:30%; left:45%; width:10px; height:14px;
  background: #3a2010; border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom; animation: ar-hand 5s ease-in-out infinite alternate;
}
.scn-aufidius-recognizes-coriolanus .cloak-edge {
  position:absolute; bottom:15%; left:52%; width:15px; height:30px;
  background: #1a0a00; border-radius: 0 60% 0 0; transform: rotate(10deg);
  animation: ar-cloak 6s ease-in-out infinite;
}
.scn-aufidius-recognizes-coriolanus .breath-mist {
  position:absolute; bottom:45%; left:48%; width:8px; height:10px;
  background: radial-gradient(circle, rgba(200,200,200,.3) 0%, transparent 70%);
  filter: blur(3px); animation: ar-breath 3s ease-in-out infinite;
}
.scn-aufidius-recognizes-coriolanus .eye-glint {
  position:absolute; bottom:38%; left:52%; width:3px; height:3px;
  background: #d09050; border-radius: 50%; box-shadow: 0 0 6px 2px #d09050;
  animation: ar-eye 2s ease-in-out infinite alternate;
}
@keyframes ar-fire { 0% { transform: scale(1) translateY(0); opacity:.8; } 50% { transform: scale(1.2) translateY(-3px); opacity:1; } 100% { transform: scale(0.9) translateY(2px); opacity:.7; } }
@keyframes ar-auf { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-2px) rotate(-2deg); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes ar-cor { 0% { transform: translateX(0); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes ar-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(15deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(-1px); } }
@keyframes ar-cloak { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(8deg) scaleY(0.95); } }
@keyframes ar-breath { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-8px) scale(1.5); opacity:.1; } 100% { transform: translateY(0) scale(1); opacity:.3; } }
@keyframes ar-eye { 0% { box-shadow: 0 0 6px 2px #d09050; opacity:.8; } 50% { box-shadow: 0 0 10px 4px #e0a060; opacity:1; } 100% { box-shadow: 0 0 4px 1px #c08040; opacity:.6; } }

/* menenius-optimistic */
.scn-menenius-optimistic {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4c3a3 40%, #b89a7a 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255,230,170,0.3) 0%, transparent 80%);
}
.scn-menenius-optimistic .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c8b094 0%, #a58d6e 100%);
  animation: men1-wall 20s ease-in-out infinite alternate;
}
.scn-menenius-optimistic .window {
  position: absolute; top: 8%; right: 10%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #fff8dc 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px rgba(255,250,200,0.6), 0 0 20px rgba(255,240,180,0.3);
  animation: men1-window 15s ease-in-out infinite;
}
.scn-menenius-optimistic .table {
  position: absolute; bottom: 20%; left: 15%; right: 40%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: men1-table 12s ease-in-out infinite alternate;
}
.scn-menenius-optimistic .chair {
  position: absolute; bottom: 28%; left: 18%; width: 20%; height: 24%;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4% / 40% 40% 10% 10%;
  box-shadow: 6px 6px 12px rgba(0,0,0,0.4);
  animation: men1-chair 10s ease-in-out infinite alternate;
}
.scn-menenius-optimistic .figure {
  position: absolute; bottom: 22%; left: 22%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: men1-figure 5s ease-in-out infinite;
}
.scn-menenius-optimistic .candle {
  position: absolute; bottom: 28%; left: 26%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #f0d890 0%, #c8a050 50%, #8a6a30 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.6);
  animation: men1-candle 4s ease-in-out infinite alternate;
}
.scn-menenius-optimistic .scroll {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: men1-scroll 8s ease-in-out infinite;
}
@keyframes men1-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes men1-window {
  0% { filter: brightness(0.95); transform: scale(1); }
  50% { filter: brightness(1.1); transform: scale(1.02); }
  100% { filter: brightness(1); transform: scale(1); }
}
@keyframes men1-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes men1-chair {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes men1-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(4px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes men1-candle {
  0% { box-shadow: 0 0 12px 4px rgba(255,200,80,0.5); }
  50% { box-shadow: 0 0 28px 10px rgba(255,220,100,0.8); }
  100% { box-shadow: 0 0 18px 6px rgba(255,200,80,0.6); }
}
@keyframes men1-scroll {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}

/* tribunes-proud */
.scn-tribunes-proud {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a08868 100%),
    radial-gradient(ellipse at 50% 60%, rgba(220,200,160,0.4) 0%, transparent 70%);
}
.scn-tribunes-proud .chamber {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a888 100%);
  animation: tri2-chamber 18s ease-in-out infinite alternate;
}
.scn-tribunes-proud .platform {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
  animation: tri2-platform 20s ease-in-out infinite alternate;
}
.scn-tribunes-proud .tribune-left {
  position: absolute; bottom: 38%; left: 18%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tri2-tribune 7s ease-in-out infinite;
}
.scn-tribunes-proud .tribune-right {
  position: absolute; bottom: 38%; right: 18%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tri2-tribune 7s ease-in-out infinite reverse;
}
.scn-tribunes-proud .scroll-held {
  position: absolute; bottom: 42%; left: 22%; width: 8%; height: 12%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 20% 20% 5% 5%;
  transform: rotate(15deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: tri2-scroll 9s ease-in-out infinite;
}
.scn-tribunes-proud .pillar {
  position: absolute; bottom: 15%; left: 5%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #b8a090 0%, #d8c8b8 20%, #a89888 80%);
  border-radius: 20% 20% 0 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.2);
  animation: tri2-pillar 30s ease-in-out infinite alternate;
}
.scn-tribunes-proud .light-ray {
  position: absolute; top: 0; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 80% 100%, 20% 100%);
  animation: tri2-ray 12s ease-in-out infinite alternate;
}
@keyframes tri2-chamber {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes tri2-platform {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes tri2-tribune {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tri2-scroll {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(18deg) scale(1.05); }
  100% { transform: rotate(12deg) scale(0.95); }
}
@keyframes tri2-pillar {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes tri2-ray {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.35; transform: scaleY(0.95); }
}

/* news-of-volscian-invasion */
.scn-news-of-volscian-invasion {
  background:
    linear-gradient(180deg, #d4c4b0 0%, #b8a48c 30%, #8a7a6a 100%),
    radial-gradient(ellipse at 30% 80%, rgba(160,140,120,0.4) 0%, transparent 60%);
}
.scn-news-of-volscian-invasion .street {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  animation: vol3-street 14s ease-in-out infinite alternate;
}
.scn-news-of-volscian-invasion .messenger {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: vol3-messenger 3s ease-in-out infinite;
}
.scn-news-of-volscian-invasion .whip-shadow {
  position: absolute; bottom: 38%; left: 30%; width: 18%; height: 4%;
  background: #6a5a4a;
  border-radius: 50% 10% 50% 10%;
  transform: rotate(-25deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: vol3-whip 2s ease-in-out infinite;
}
.scn-news-of-volscian-invasion .citizen-a {
  position: absolute; bottom: 22%; left: 10%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vol3-citizen 6s ease-in-out infinite;
}
.scn-news-of-volscian-invasion .citizen-b {
  position: absolute; bottom: 24%; right: 12%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vol3-citizen 6s ease-in-out infinite 2s;
}
.scn-news-of-volscian-invasion .lantern {
  position: absolute; top: 10%; right: 20%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 12px rgba(255,200,100,0.5);
  animation: vol3-lantern 3s ease-in-out infinite alternate;
}
.scn-news-of-volscian-invasion .door {
  position: absolute; bottom: 0; right: 5%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.4);
  animation: vol3-door 10s ease-in-out infinite;
}
@keyframes vol3-street {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes vol3-messenger {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes vol3-whip {
  0% { transform: rotate(-25deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.2); }
  100% { transform: rotate(-35deg) scaleX(0.9); }
}
@keyframes vol3-citizen {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-4px) rotate(2deg); }
  66% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes vol3-lantern {
  0% { box-shadow: 0 0 20px 8px rgba(255,200,100,0.4); }
  50% { box-shadow: 0 0 40px 16px rgba(255,220,140,0.7); }
  100% { box-shadow: 0 0 25px 10px rgba(255,200,100,0.5); }
}
@keyframes vol3-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95) translateX(-2px); }
  100% { transform: scaleX(1); }
}

/* marcius-leads-volscians */
.scn-marcius-leads-volscians {
  background:
    linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 70% 50%, rgba(180,160,120,0.2) 0%, transparent 60%);
}
.scn-marcius-leads-volscians .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #4a5a6a 100%);
  animation: mar4-sky 20s ease-in-out infinite alternate;
}
.scn-marcius-leads-volscians .distant-rome {
  position: absolute; bottom: 20%; left: 5%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(10% 100%, 20% 10%, 30% 40%, 50% 0%, 70% 30%, 80% 20%, 90% 100%);
  border-radius: 10% 10% 0 0;
  animation: mar4-city 25s ease-in-out infinite;
}
.scn-marcius-leads-volscians .marcius {
  position: absolute; bottom: 15%; left: 45%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mar4-leader 5s ease-in-out infinite;
}
.scn-marcius-leads-volscians .aufidius {
  position: absolute; bottom: 16%; left: 62%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mar4-leader 5s ease-in-out infinite reverse;
}
.scn-marcius-leads-volscians .soldier-a {
  position: absolute; bottom: 18%; left: 35%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: mar4-soldier 7s ease-in-out infinite;
}
.scn-marcius-leads-volscians .soldier-b {
  position: absolute; bottom: 19%; right: 20%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: mar4-soldier 7s ease-in-out infinite 2s;
}
.scn-marcius-leads-volscians .banner {
  position: absolute; bottom: 58%; left: 48%; width: 4%; height: 20%;
  background: #a0461a; /* rust color, not crimson */
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: mar4-banner 4s ease-in-out infinite alternate;
}
@keyframes mar4-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mar4-city {
  0% { transform: translateX(0); }
  50% { transform: translateX(4px) scale(1.02); }
  100% { transform: translateX(0); }
}
@keyframes mar4-leader {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(6px) rotate(2deg); }
  66% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes mar4-soldier {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mar4-banner {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg) scaleX(1.1); }
  100% { transform: rotate(-3deg); }
}

/* volumnia-dissatisfaction */
.scn-volumnia-dissatisfaction {
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 40%, #120c08 100%), radial-gradient(ellipse at 50% 30%, #4a3524 0%, transparent 70%);
}
.scn-volumnia-dissatisfaction .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #2a2018, #3a2a1a 40%, #2a2018); border-radius: 0 0 20% 20%; box-shadow: inset 0 20px 40px rgba(0,0,0,0.6); }
.scn-volumnia-dissatisfaction .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1e1410 0%, #120c08 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-volumnia-dissatisfaction .figure-mother { position:absolute; bottom:18%; left:30%; width:60px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 60%, #1a0c08 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: -8px 0 20px rgba(0,0,0,0.5); animation: vd1-mother 4s ease-in-out infinite; }
.scn-volumnia-dissatisfaction .figure-son { position:absolute; bottom:18%; right:25%; width:55px; height:130px; transform:translateX(50%) scale(0.95); background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 35% 35% 50% 50% / 55% 55% 45% 45%; box-shadow: 8px 0 20px rgba(0,0,0,0.4); animation: vd1-son 3.5s ease-in-out infinite; }
.scn-volumnia-dissatisfaction .lamp { position:absolute; bottom:38%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #e8b060 0%, #b07030 80%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 6px #c08040, 0 0 60px 12px rgba(192,128,64,0.3); animation: vd1-lamp 2s ease-in-out infinite alternate; }
.scn-volumnia-dissatisfaction .shadow { position:absolute; bottom:0; left:20%; width:120px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 80%); border-radius: 50%; animation: vd1-shadow 4s ease-in-out infinite; }

@keyframes vd1-mother {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes vd1-son {
  0% { transform: translateX(50%) scale(0.95) translateY(0); }
  50% { transform: translateX(50%) scale(0.95) translateY(-2px); }
  100% { transform: translateX(50%) scale(0.95) translateY(0); }
}
@keyframes vd1-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 20px 4px #c08040; }
  50% { opacity: 1; box-shadow: 0 0 40px 10px #e0a050; }
  100% { opacity: 0.8; box-shadow: 0 0 25px 5px #c08040; }
}
@keyframes vd1-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.05); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

/* volumnia-pride */
.scn-volumnia-pride {
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 50%, #120c08 100%), radial-gradient(ellipse at 50% 60%, #3a2818 0%, transparent 60%);
}
.scn-volumnia-pride .bg-interior { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1410 0%, #2a1e14 50%, #1a1410 100%); border-radius: 0 0 30% 30%; }
.scn-volumnia-pride .kneeling-boy { position:absolute; bottom:22%; left:40%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; clip-path: polygon(0% 0%, 100% 0%, 80% 40%, 100% 100%, 0% 100%, 20% 40%); animation: vp2-kneel 3s ease-in-out infinite; }
.scn-volumnia-pride .figure-woman { position:absolute; bottom:18%; left:60%; width:50px; height:130px; transform:translateX(-50%); background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 60%, #1a0c08 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; animation: vp2-woman 4s ease-in-out infinite; }
.scn-volumnia-pride .window { position:absolute; top:12%; left:20%; width:70px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border: 4px solid #3a2a1a; border-radius: 8% 8% 0 0; box-shadow: inset 0 0 20px rgba(0,0,255,0.1); animation: vp2-window 12s ease-in-out infinite; }
.scn-volumnia-pride .candle-left { position:absolute; bottom:40%; left:30%; width:8px; height:18px; background: radial-gradient(circle at 50% 20%, #f0c060 0%, #c08040 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 16px 4px #d09050; animation: vp2-candle 1.5s ease-in-out infinite alternate; }
.scn-volumnia-pride .candle-right { position:absolute; bottom:40%; right:30%; width:8px; height:16px; background: radial-gradient(circle at 50% 20%, #f0c060 0%, #c08040 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 14px 3px #d09050; animation: vp2-candle 1.8s ease-in-out infinite alternate; animation-delay: 0.3s; }
.scn-volumnia-pride .rug { position:absolute; bottom:20%; left:30%; width:180px; height:20px; background: linear-gradient(90deg, #5e2a1d 0%, #702243 30%, #5e2a1d 70%, #702243 100%); border-radius: 50% 50% 20% 20% / 100% 100% 40% 40%; opacity: 0.6; }

@keyframes vp2-kneel {
  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 vp2-woman {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(1deg); }
}
@keyframes vp2-window {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes vp2-candle {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scaleY(1.1) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(1) rotate(-1deg); opacity: 0.85; }
}

/* item-kneeling-boy */
.scn-item-kneeling-boy {
  background: linear-gradient(180deg, #1a120e 0%, #100a06 40%, #080400 100%), radial-gradient(ellipse at 50% 40%, #2a1e14 0%, transparent 70%);
}
.scn-item-kneeling-boy .bg-dark { position:absolute; inset:0; background: linear-gradient(90deg, #0a0604 0%, #1a120e 50%, #0a0604 100%); }
.scn-item-kneeling-boy .kneeling-child { position:absolute; bottom:24%; left:50%; width:30px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; animation: kb3-child 3s ease-in-out infinite; }
.scn-item-kneeling-boy .arms-mother-left { position:absolute; bottom:38%; left:35%; width:12px; height:50px; transform:rotate(20deg); transform-origin: bottom center; background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 100%); border-radius: 40% 40% 50% 50%; animation: kb3-armL 3s ease-in-out infinite; }
.scn-item-kneeling-boy .arms-mother-right { position:absolute; bottom:38%; right:35%; width:12px; height:50px; transform:rotate(-20deg); transform-origin: bottom center; background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 100%); border-radius: 40% 40% 50% 50%; animation: kb3-armR 3s ease-in-out infinite; }
.scn-item-kneeling-boy .prayer-hands { position:absolute; bottom:32%; left:50%; width:10px; height:14px; transform:translateX(-50%); background: #3a2010; border-radius: 40% 40% 20% 20%; animation: kb3-hands 2s ease-in-out infinite; }
.scn-item-kneeling-boy .floor-line { position:absolute; bottom:20%; left:0; right:0; height:2px; background: #3a2a1a; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-item-kneeling-boy .light-beam { position:absolute; top:0; left:45%; width:10%; height:100%; background: linear-gradient(180deg, rgba(200,170,120,0.15) 0%, rgba(200,170,120,0.05) 80%, transparent 100%); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); animation: kb3-beam 8s ease-in-out infinite; }

@keyframes kb3-child {
  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 kb3-armL {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(20deg); }
}
@keyframes kb3-armR {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes kb3-hands {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes kb3-beam {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* coriolanus-mother */
.scn-coriolanus-mother {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 30%, #120c08 100%), radial-gradient(ellipse at 50% 20%, #4a3524 0%, transparent 60%);
}
.scn-coriolanus-mother .bg-temple { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #1a1410 0%, #2a1e14 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); }
.scn-coriolanus-mother .figure-mother { position:absolute; bottom:20%; left:30%; width:60px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #5e2a1d 0%, #3a1a10 60%, #1a0c08 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; animation: cm4-mother 3.5s ease-in-out infinite; }
.scn-coriolanus-mother .figure-son { position:absolute; bottom:20%; right:30%; width:55px; height:140px; transform:translateX(50%) scale(0.95); background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 35% 35% 50% 50% / 55% 55% 45% 45%; animation: cm4-son 4s ease-in-out infinite; }
.scn-coriolanus-mother .light-from-heavens { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(230,200,160,0.2) 0%, rgba(230,200,160,0.05) 60%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 80% 100%, 20% 100%); animation: cm4-light 10s ease-in-out infinite; }
.scn-coriolanus-mother .altar { position:absolute; bottom:15%; left:50%; width:80px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-coriolanus-mother .shadow-oblong { position:absolute; bottom:0; left:20%; width:160px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 80%); border-radius: 50%; animation: cm4-shadow 4s ease-in-out infinite; }

@keyframes cm4-mother {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(1deg); }
}
@keyframes cm4-son {
  0% { transform: translateX(50%) scale(0.95) translateY(0) rotate(1deg); }
  50% { transform: translateX(50%) scale(0.95) translateY(-3px) rotate(0deg); }
  100% { transform: translateX(50%) scale(0.95) translateY(0) rotate(-1deg); }
}
@keyframes cm4-light {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.02); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes cm4-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.08); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-news-of-insurrection { background: linear-gradient(180deg, #5c6e7a 0%, #2e3b45 60%, #1a232b 100%), radial-gradient(ellipse at 50% 40%, #2e3b45 0%, transparent 70%); }
.scn-news-of-insurrection .ni-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a5b67 0%, transparent 100%); }
.scn-news-of-insurrection .ni-cloud { position:absolute; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter:blur(4px); }
.scn-news-of-insurrection .ni-cloud-a { top:15%; left:-5%; width:120px; animation: ni-drift-a 40s linear infinite; }
.scn-news-of-insurrection .ni-cloud-b { top:25%; left:20%; width:80px; animation: ni-drift-b 55s linear infinite reverse; }
.scn-news-of-insurrection .ni-buildings { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4048 0%, #1c2128 100%); border-radius: 20% 30% 0 0 / 60% 50% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.4); }
.scn-news-of-insurrection .ni-crowd { position:absolute; bottom:28%; width:40%; height:12%; background: radial-gradient(circle at 50% 100%, #2a3036 0%, transparent 100%); border-radius: 50% 50% 30% 30%; filter:blur(2px); }
.scn-news-of-insurrection .ni-crowd-left { left:10%; animation: ni-crowd-sway 6s ease-in-out infinite alternate; }
.scn-news-of-insurrection .ni-crowd-right { right:10%; animation: ni-crowd-sway 7s ease-in-out infinite alternate-reverse; }
.scn-news-of-insurrection .ni-orator { position:absolute; bottom:28%; left:50%; width:18px; height:32px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1e24 0%, #0a0e14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ni-orator-gesture 4s ease-in-out infinite; }
@keyframes ni-drift-a { 0% { transform:translateX(-30px); } 100% { transform:translateX(110vw); } }
@keyframes ni-drift-b { 0% { transform:translateX(0); } 100% { transform:translateX(-100vw); } }
@keyframes ni-crowd-sway { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.02); } 100% { transform:translateY(0) scale(0.98); } }
@keyframes ni-orator-gesture { 0% { transform:translateX(-50%) rotate(-2deg); } 25% { transform:translateX(-50%) translateY(-3px) rotate(2deg); } 50% { transform:translateX(-50%) rotate(-1deg); } 75% { transform:translateX(-50%) translateY(-1px) rotate(3deg); } 100% { transform:translateX(-50%) rotate(0deg); } }

.scn-volsce-army-ready { background: linear-gradient(180deg, #4a5b4f 0%, #2c3b30 50%, #1a261d 100%), radial-gradient(ellipse at 50% 100%, #2c3b30 0%, transparent 70%); }
.scn-volsce-army-ready .vr-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a6b5f 0%, transparent 100%); }
.scn-volsce-army-ready .vr-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #152015 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-volsce-army-ready .vr-tent { position:absolute; bottom:35%; width:60px; height:40px; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 10% 10% 40% 40%/30% 30% 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-volsce-army-ready .vr-tent-left { left:20%; animation: vr-tent-flutter 8s ease-in-out infinite; }
.scn-volsce-army-ready .vr-tent-right { right:20%; animation: vr-tent-flutter 9s ease-in-out infinite reverse; }
.scn-volsce-army-ready .vr-spear { position:absolute; bottom:28%; width:4px; height:70px; background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; }
.scn-volsce-army-ready .vr-spear-1 { left:35%; animation: vr-spear-sway 4s ease-in-out infinite; }
.scn-volsce-army-ready .vr-spear-2 { left:60%; animation: vr-spear-sway 4.5s ease-in-out infinite reverse; }
.scn-volsce-army-ready .vr-soldiers { position:absolute; bottom:26%; left:20%; right:20%; height:25%; background: radial-gradient(ellipse at 30% 60%, #2a3a2a 0%, transparent 100%), radial-gradient(ellipse at 70% 40%, #2a3a2a 0%, transparent 100%); filter:blur(3px); animation: vr-soldiers-breathe 6s ease-in-out infinite; }
.scn-volsce-army-ready .vr-commander { position:absolute; bottom:27%; left:48%; width:20px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #1a2a1a 0%, #0a150a 100%); border-radius: 40% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vr-commander-turn 10s ease-in-out infinite; }
@keyframes vr-tent-flutter { 0% { transform:skewX(0deg); } 50% { transform:skewX(2deg); } 100% { transform:skewX(-1deg); } }
@keyframes vr-spear-sway { 0% { transform:rotate(0deg); } 25% { transform:rotate(-2deg); } 75% { transform:rotate(3deg); } 100% { transform:rotate(0deg); } }
@keyframes vr-soldiers-breathe { 0% { opacity:0.7; } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.8; } }
@keyframes vr-commander-turn { 0% { transform:translateX(-50%) rotate(0deg); } 30% { transform:translateX(-50%) translateY(-2px) rotate(10deg); } 60% { transform:translateX(-50%) rotate(-5deg); } 100% { transform:translateX(-50%) rotate(0deg); } }

.scn-coriolanus-disguised { background: linear-gradient(180deg, #2a1f3e 0%, #1a1230 70%, #0d0a1a 100%), radial-gradient(ellipse at 50% 100%, #1a1230 0%, transparent 70%); }
.scn-coriolanus-disguised .cd-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2f5e 0%, transparent 100%); }
.scn-coriolanus-disguised .cd-moon { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #d0c8a0 0%, #b0a888 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,190,160,0.3); animation: cd-moon-glow 12s ease-in-out infinite alternate; }
.scn-coriolanus-disguised .cd-building-bg { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-coriolanus-disguised .cd-doorway { position:absolute; bottom:20%; left:50%; width:50px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a15 0%, #05050a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-coriolanus-disguised .cd-figure { position:absolute; bottom:28%; left:42%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-figure-walk 5s ease-in-out infinite; }
.scn-coriolanus-disguised .cd-window-light { position:absolute; bottom:40%; left:30%; width:20px; height:16px; background: radial-gradient(circle, #e8c880 0%, #b08030 70%); border-radius: 5% 5% 10% 10%; box-shadow: 0 0 20px 6px #b08030, 0 0 40px 12px rgba(176,128,48,0.3); animation: cd-window-flicker 3s ease-in-out infinite alternate; }
.scn-coriolanus-disguised .cd-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; }
@keyframes cd-moon-glow { 0% { opacity:0.7; transform:scale(0.95); } 100% { opacity:1; transform:scale(1.05); } }
@keyframes cd-figure-walk { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 25% { transform:translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform:translateX(16px) translateY(0) rotate(-1deg); } 75% { transform:translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform:translateX(30px) translateY(0) rotate(0); } }
@keyframes cd-window-flicker { 0% { box-shadow: 0 0 12px 4px #b08030, 0 0 24px 8px rgba(176,128,48,0.2); opacity:0.8; } 50% { box-shadow: 0 0 30px 10px #e8c880, 0 0 60px 20px rgba(232,200,128,0.4); opacity:1; } 100% { box-shadow: 0 0 18px 5px #b08030, 0 0 36px 10px rgba(176,128,48,0.3); opacity:0.9; } }

.scn-soliloquy-on-slipperiness { background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); }
.scn-soliloquy-on-slipperiness .ss-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); }
.scn-soliloquy-on-slipperiness .ss-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-soliloquy-on-slipperiness .ss-table { position:absolute; bottom:35%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-soliloquy-on-slipperiness .ss-chair { position:absolute; bottom:28%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; }
.scn-soliloquy-on-slipperiness .ss-chair-left { left:25%; animation: ss-chair-shift 8s ease-in-out infinite alternate; }
.scn-soliloquy-on-slipperiness .ss-chair-right { right:25%; animation: ss-chair-shift 9s ease-in-out infinite alternate-reverse; }
.scn-soliloquy-on-slipperiness .ss-figure { position:absolute; bottom:28%; width:22px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-soliloquy-on-slipperiness .ss-figure-left { left:27%; animation: ss-figure-left 5s ease-in-out infinite; }
.scn-soliloquy-on-slipperiness .ss-figure-right { right:27%; animation: ss-figure-right 5.5s ease-in-out infinite; }
.scn-soliloquy-on-slipperiness .ss-candle { position:absolute; bottom:38%; left:50%; width:6px; height:12px; background: linear-gradient(180deg, #e8c880 0%, #b08030 100%); border-radius: 2px 2px 10% 10%; box-shadow: 0 0 16px 4px #b08030, 0 0 32px 8px rgba(176,128,48,0.3); animation: ss-candle-glow 2s ease-in-out infinite alternate; }
.scn-soliloquy-on-slipperiness .ss-shadow { position:absolute; bottom:30%; left:40%; width:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%); animation: ss-shadow-sway 6s ease-in-out infinite; }
@keyframes ss-chair-shift { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes ss-figure-left { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 30% { transform:translateX(-4px) translateY(-2px) rotate(5deg); } 60% { transform:translateX(2px) translateY(0) rotate(-3deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes ss-figure-right { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 30% { transform:translateX(4px) translateY(-2px) rotate(-5deg); } 60% { transform:translateX(-2px) translateY(0) rotate(3deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes ss-candle-glow { 0% { box-shadow: 0 0 8px 2px #b08030, 0 0 16px 4px rgba(176,128,48,0.2); opacity:0.8; } 50% { box-shadow: 0 0 24px 6px #e8c880, 0 0 48px 12px rgba(232,200,128,0.4); opacity:1; } 100% { box-shadow: 0 0 12px 3px #b08030, 0 0 24px 6px rgba(176,128,48,0.3); opacity:0.9; } }
@keyframes ss-shadow-sway { 0% { transform:scaleX(1); opacity:0.6; } 50% { transform:scaleX(1.2) translateX(-5px); opacity:0.8; } 100% { transform:scaleX(0.9); opacity:0.5; } }

/* after-mutiny: tense + sunlit ship scene */
.scn-after-mutiny {
  background: linear-gradient(180deg, #87CEEB 0%, #f0d080 50%, #d4a050 100%), radial-gradient(ellipse at 50% 10%, #ffdf80 0%, transparent 60%);
}
.scn-after-mutiny .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0d8ff 0%, #a0c0e0 100%);
  animation: am-sky 8s ease-in-out infinite alternate;
}
.scn-after-mutiny .sun {
  position: absolute; top: 8%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffeb80 0%, #ffcc40 70%, transparent 100%);
  border-radius: 50%;
  animation: am-sun 3s ease-in-out infinite;
}
.scn-after-mutiny .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 50%, #0a2a4a 100%);
  animation: am-sea 5s ease-in-out infinite alternate;
}
.scn-after-mutiny .ship-hull {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: am-ship 4s ease-in-out infinite alternate;
}
.scn-after-mutiny .mast {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 50px;
  transform: translateX(-50%);
  background: #3a2a1a;
  border-radius: 2px;
  animation: am-ship 4s ease-in-out infinite alternate;
}
.scn-after-mutiny .figure {
  position: absolute; bottom: 24%; left: 46%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-figure 2s ease-in-out infinite;
}
.scn-after-mutiny .noise-ripple {
  position: absolute; bottom: 35%; left: 65%; width: 20px; height: 20px;
  border: 2px solid rgba(200,200,255,0.6);
  border-radius: 50%;
  animation: am-noise 2s ease-out infinite;
}
@keyframes am-sky {
  0% { opacity: 0.7; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 10%; }
  100% { opacity: 0.8; background-position: 0 5%; }
}
@keyframes am-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.9; }
}
@keyframes am-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes am-ship {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes am-figure {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(1.02) translateX(2px); }
  100% { transform: scaleY(0.98) translateX(-1px); }
}
@keyframes am-noise {
  0% { transform: scale(0.5); opacity: 0.8; }
  50% { transform: scale(1.5); opacity: 0.4; }
  100% { transform: scale(2); opacity: 0; }
}

/* tribunes-return-crowd: dark + sunlit public square */
.scn-tribunes-return-crowd {
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #ffda80 0%, transparent 70%);
}
.scn-tribunes-return-crowd .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  animation: tr-ground 6s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .podium {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: tr-podium 4s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .tribune1 {
  position: absolute; bottom: 38%; left: 40%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tr-tribune1 3s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .tribune2 {
  position: absolute; bottom: 38%; left: 54%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tr-tribune2 3.5s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .crowd-left {
  position: absolute; bottom: 10%; left: 5%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 100%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: tr-crowd-left 7s ease-in-out infinite alternate;
}
.scn-tribunes-return-crowd .crowd-right {
  position: absolute; bottom: 10%; right: 5%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 100%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: tr-crowd-right 7s ease-in-out infinite alternate-reverse;
}
.scn-tribunes-return-crowd .banner {
  position: absolute; bottom: 47%; left: 60%; width: 6px; height: 40px;
  background: #4a3a2a;
  border-radius: 2px;
  animation: tr-banner 4s ease-in-out infinite;
}
.scn-tribunes-return-crowd .banner::before {
  content: ''; position: absolute; top: 0; left: 6px; width: 20px; height: 14px;
  background: #8a7050;
  border-radius: 20% 30% 20% 30%;
  animation: tr-flag 4s ease-in-out infinite;
}
@keyframes tr-ground {
  0% { opacity: 0.9; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 5%; }
  100% { opacity: 0.95; background-position: 0 2%; }
}
@keyframes tr-podium {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes tr-tribune1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes tr-tribune2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes tr-crowd-left {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(3px); }
}
@keyframes tr-crowd-right {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(-3px); }
}
@keyframes tr-banner {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes tr-flag {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.1); }
  100% { transform: rotate(-3deg) scaleX(0.9); }
}

/* menenius-pleads: dark + sunlit interior with pleading figure */
.scn-menenius-pleads {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%, #0a0000 100%), radial-gradient(ellipse at 60% 20%, #ffd080 0%, transparent 70%);
}
.scn-menenius-pleads .window {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0d0ff 0%, #80a0d0 100%);
  border: 4px solid #3a2a1a;
  border-radius: 10% 10% 4% 4%;
  animation: mp-window 8s ease-in-out infinite alternate;
}
.scn-menenius-pleads .light-beam {
  position: absolute; top: 18%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,220,150,0.5) 0%, transparent 100%);
  clip-path: polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%);
  animation: mp-light 4s ease-in-out infinite alternate;
}
.scn-menenius-pleads .wall-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.5);
}
.scn-menenius-pleads .wall-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.5);
}
.scn-menenius-pleads .floor {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-menenius-pleads .menenius {
  position: absolute; bottom: 8%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-menenius 2s ease-in-out infinite;
}
.scn-menenius-pleads .judges {
  position: absolute; bottom: 10%; right: 15%; width: 60px; height: 60px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: mp-judges 6s ease-in-out infinite alternate;
}
.scn-menenius-pleads .chains {
  position: absolute; bottom: 8%; left: 32%; width: 10px; height: 20px;
  border: 2px solid #8a7a5a;
  border-radius: 40%;
  background: transparent;
  animation: mp-chains 1.5s ease-in-out infinite;
}
@keyframes mp-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes mp-light {
  0% { transform: translateX(-50%) skewX(0deg); opacity: 0.5; }
  50% { transform: translateX(-50%) skewX(3deg); opacity: 0.8; }
  100% { transform: translateX(-50%) skewX(-2deg); opacity: 0.6; }
}
@keyframes mp-menenius {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(-2px, -2px) rotate(1deg); }
  60% { transform: translate(2px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes mp-judges {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes mp-chains {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

/* menenius-offers-bring: tense + sunlit threshold scene */
.scn-menenius-offers-bring {
  background: linear-gradient(180deg, #c0a060 0%, #a08040 30%, #6a5030 100%), radial-gradient(ellipse at 50% 20%, #ffdd80 0%, transparent 60%);
}
.scn-menenius-offers-bring .archway {
  position: absolute; bottom: 0; left: 50%; width: 120px; height: 100%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7040 0%, #4a3a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: mob-arch 10s ease-in-out infinite alternate;
}
.scn-menenius-offers-bring .door {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border: 4px solid #2a1a0a;
  border-radius: 6% 6% 4% 4%;
  animation: mob-door 6s ease-in-out infinite alternate;
}
.scn-menenius-offers-bring .menenius {
  position: absolute; bottom: 12%; left: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mob-menenius 2.5s ease-in-out infinite;
}
.scn-menenius-offers-bring .shadow-figure {
  position: absolute; bottom: 15%; right: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a00 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: mob-shadow 4s ease-in-out infinite alternate;
}
.scn-menenius-offers-bring .sunburst {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffeb80 0%, #ffcc40 30%, transparent 70%);
  animation: mob-sunburst 3s ease-in-out infinite alternate;
}
.scn-menenius-offers-bring .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  animation: mob-ground 8s ease-in-out infinite alternate;
}
@keyframes mob-arch {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.01); }
  100% { transform: translateX(-50%) scaleX(0.99); }
}
@keyframes mob-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  50% { transform: translateX(-50%) rotateY(8deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes mob-menenius {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(3px, -2px) rotate(2deg); }
  60% { transform: translate(-2px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes mob-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.7; }
  50% { transform: translateX(-3px) scaleX(1.05); opacity: 0.8; }
  100% { transform: translateX(2px) scaleX(0.95); opacity: 0.6; }
}
@keyframes mob-sunburst {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; }
}
@keyframes mob-ground {
  0% { background-position: 0 0; }
  50% { background-position: 0 5%; }
  100% { background-position: 0 2%; }
}

/* Scene 1: scene-marcius-enters-gates */
.scn-scene-marcius-enters-gates {
  background: 
    linear-gradient(180deg, #f7d794 0%, #f2c68b 30%, #c9914a 60%, #6b4226 100%),
    radial-gradient(ellipse at 30% 80%, #c9914a 0%, transparent 60%);
}
.scn-scene-marcius-enters-gates .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c4de 0%, #ebd6ad 100%);
  opacity: 0.6;
  animation: gts-sky 12s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters-gates .sun {
  position: absolute; top: 10%; left: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7e0 0%, #f5a623 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f5a623;
  animation: gts-sun 8s ease-in-out infinite;
}
.scn-scene-marcius-enters-gates .gate {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 350px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7c5c3e 0%, #3a2618 100%);
  border-radius: 80% 80% 20% 20% / 150% 150% 20% 20%;
  clip-path: polygon(0 0, 20% 0, 20% 100%, 80% 100%, 80% 0, 100% 0, 100% 100%, 0 100%);
  filter: drop-shadow(10px 10px 20px rgba(0,0,0,0.7));
  animation: gts-gate 6s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters-gates .trench {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 60% 60% / 0 0 100% 100%;
  animation: gts-trench 15s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters-gates .figure-marcius {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gts-figure 3s ease-in-out infinite;
}
.scn-scene-marcius-enters-gates .dust {
  position: absolute; top: 60%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,150,80,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: gts-dust 20s linear infinite;
}
.scn-scene-marcius-enters-gates .spear-left {
  position: absolute; bottom: 18%; left: 45%; width: 4px; height: 90px;
  background: linear-gradient(180deg, #6b4226, #3a2618);
  border-radius: 40% 40% 0 0;
  transform: rotate(-15deg);
  animation: gts-spear 5s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters-gates .spear-right {
  position: absolute; bottom: 16%; right: 40%; width: 4px; height: 100px;
  background: linear-gradient(180deg, #6b4226, #3a2618);
  border-radius: 40% 40% 0 0;
  transform: rotate(10deg);
  animation: gts-spear 5s ease-in-out infinite alternate-reverse;
}

@keyframes gts-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes gts-sun {
  0%, 100% { transform: scale(1) translateY(0); box-shadow: 0 0 60px 20px #f5a623; }
  50% { transform: scale(1.1) translateY(-5px); box-shadow: 0 0 80px 30px #f7d794; }
}
@keyframes gts-gate {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes gts-trench {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes gts-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(5deg); }
  50% { transform: translateX(10px) rotate(-2deg); }
  75% { transform: translateX(15px) rotate(3deg); }
}
@keyframes gts-dust {
  0% { transform: translateX(-100px); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.6; }
  100% { transform: translateX(100vw); opacity: 0; }
}
@keyframes gts-spear {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-10deg) scaleY(1.05); }
  100% { transform: rotate(-15deg) scaleY(1); }
}

/* Scene 2: scene-corioli-spoils */
.scn-scene-corioli-spoils {
  background:
    linear-gradient(180deg, #8b6f47 0%, #5a3e2b 30%, #2a1a0a 70%),
    radial-gradient(ellipse at 50% 0%, #c9914a 0%, transparent 50%);
}
.scn-scene-corioli-spoils .wall-left {
  position: absolute; bottom: 0; left: 0; width: 35%; height: 100%;
  background: linear-gradient(135deg, #4a2e1a, #2a1a0a 60%, #1a0a04);
  border-right: 4px solid #6b4226;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: spl-wall 20s ease-in-out infinite alternate;
}
.scn-scene-corioli-spoils .wall-right {
  position: absolute; bottom: 0; right: 0; width: 35%; height: 100%;
  background: linear-gradient(225deg, #4a2e1a, #2a1a0a 60%, #1a0a04);
  border-left: 4px solid #6b4226;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: spl-wall 20s ease-in-out infinite alternate-reverse;
}
.scn-scene-corioli-spoils .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a3e2b, #2a1a0a);
  border-radius: 30% 30% 0 0;
  animation: spl-ground 10s ease-in-out infinite alternate;
}
.scn-scene-corioli-spoils .spoil-pile {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #f5a623 0%, #c9914a 30%, #8b6f47 60%, #5a3e2b 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(245,166,35,0.4);
  animation: spl-spoil 5s ease-in-out infinite alternate;
}
.scn-scene-corioli-spoils .figure-roman-a {
  position: absolute; bottom: 10%; left: 20%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a04);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spl-figure 6s ease-in-out infinite;
}
.scn-scene-corioli-spoils .figure-roman-b {
  position: absolute; bottom: 12%; right: 20%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a04);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spl-figure 6s ease-in-out infinite 0.4s;
}
.scn-scene-corioli-spoils .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: spl-shadow 12s ease-in-out infinite alternate;
}

@keyframes spl-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(0.995); }
}
@keyframes spl-ground {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.95; }
}
@keyframes spl-spoil {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 30px 10px rgba(245,166,35,0.4); }
  50% { transform: scale(1.02) rotate(2deg); box-shadow: 0 0 40px 15px rgba(245,166,35,0.6); }
  100% { transform: scale(0.99) rotate(-1deg); box-shadow: 0 0 25px 8px rgba(245,166,35,0.3); }
}
@keyframes spl-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
}
@keyframes spl-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* Scene 3: scene-cominius-camp */
.scn-scene-cominius-camp {
  background:
    linear-gradient(180deg, #f7d794 0%, #e9b56c 40%, #c9914a 70%, #8b6f47 100%),
    radial-gradient(ellipse at 70% 90%, #c9914a 0%, transparent 50%);
}
.scn-scene-cominius-camp .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #f7d794 100%);
  opacity: 0.5;
  animation: cmp-sky 15s ease-in-out infinite alternate;
}
.scn-scene-cominius-camp .sun {
  position: absolute; top: 15%; left: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff7e0 0%, #f5a623 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px #f5a623;
  animation: cmp-sun 10s ease-in-out infinite;
}
.scn-scene-cominius-camp .tent-left {
  position: absolute; bottom: 15%; left: 15%; width: 120px; height: 100px;
  background: linear-gradient(135deg, #6b4226, #3a2618);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  filter: drop-shadow(5px 5px 10px rgba(0,0,0,0.5));
  animation: cmp-tent 8s ease-in-out infinite alternate;
}
.scn-scene-cominius-camp .tent-right {
  position: absolute; bottom: 18%; right: 20%; width: 100px; height: 80px;
  background: linear-gradient(225deg, #6b4226, #3a2618);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  filter: drop-shadow(5px -5px 10px rgba(0,0,0,0.5));
  animation: cmp-tent 8s ease-in-out infinite alternate-reverse;
}
.scn-scene-cominius-camp .campfire {
  position: absolute; bottom: 10%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff5cc 0%, #f5a623 40%, #c9914a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f5a623;
  animation: cmp-fire 3s ease-in-out infinite;
}
.scn-scene-cominius-camp .soldier-stand {
  position: absolute; bottom: 12%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a, #0d0804);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cmp-soldier 4s ease-in-out infinite;
}
.scn-scene-cominius-camp .soldier-kneel {
  position: absolute; bottom: 8%; left: 38%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a, #0d0804);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmp-soldier 4s ease-in-out infinite 1s;
}
.scn-scene-cominius-camp .flag {
  position: absolute; bottom: 22%; left: 10%; width: 3px; height: 80px;
  background: #3a2618;
  animation: cmp-flag 6s ease-in-out infinite alternate;
}
.scn-scene-cominius-camp .flag::after {
  content: '';
  position: absolute; top: 0; left: 0; width: 30px; height: 20px;
  background: #8b6f47;
  border-radius: 0 60% 0 0;
  animation: cmp-flagwave 6s ease-in-out infinite alternate;
}

@keyframes cmp-sky {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes cmp-sun {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.08) translateY(-4px); }
}
@keyframes cmp-tent {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes cmp-fire {
  0%, 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 50px 15px #f5a623; }
  50% { transform: translateX(-50%) scale(1.15); box-shadow: 0 0 70px 25px #f7d794; }
}
@keyframes cmp-soldier {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  75% { transform: translateX(1px) rotate(1deg); }
}
@keyframes cmp-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes cmp-flagwave {
  0% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transform: translateX(0); }
  50% { clip-path: polygon(0 0, 100% 20%, 100% 100%, 0 80%); transform: translateX(5px); }
  100% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transform: translateX(0); }
}

/* Scene 4: scene-cominius-strate */
.scn-scene-cominius-strate {
  background:
    linear-gradient(180deg, #8b6f47 0%, #5a3e2b 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 20%, #c9914a 0%, transparent 60%);
}
.scn-scene-cominius-strate .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: str-bg 20s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .table {
  position: absolute; bottom: 10%; left: 50%; width: 300px; height: 40px;
  transform: translateX(-50%) perspective(200px) rotateX(60deg);
  background: linear-gradient(180deg, #5a3e2b, #3a2618);
  border-radius: 10px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: str-table 15s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .map {
  position: absolute; bottom: 18%; left: 50%; width: 200px; height: 150px;
  transform: translateX(-50%) perspective(200px) rotateX(45deg);
  background: linear-gradient(135deg, #c9914a 0%, #e9b56c 50%, #f7d794 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 5px 15px rgba(0,0,0,0.5);
  animation: str-map 12s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .cominius-figure {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a04);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: str-figure 7s ease-in-out infinite;
}
.scn-scene-cominius-strate .marcius-figure {
  position: absolute; bottom: 22%; right: 25%; width: 38px; height: 85px;
  background: linear-gradient(180deg, #2a1a0a, #0d0804);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: str-figure 7s ease-in-out infinite 0.2s;
}
.scn-scene-cominius-strate .lantern {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 14px;
  background: radial-gradient(circle, #fff7e0 0%, #f5a623 60%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px #f5a623;
  animation: str-lantern 4s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .shadow-left {
  position: absolute; bottom: 0; left: 0; width: 50%; height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  pointer-events: none;
  animation: str-shadow 18s ease-in-out infinite alternate;
}
.scn-scene-cominius-strate .shadow-right {
  position: absolute; bottom: 0; right: 0; width: 50%; height: 100%;
  background: linear-gradient(270deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  pointer-events: none;
  animation: str-shadow 18s ease-in-out infinite alternate-reverse;
}

@keyframes str-bg {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.4; }
}
@keyframes str-table {
  0% { transform: translateX(-50%) perspective(200px) rotateX(60deg) scaleY(1); }
  50% { transform: translateX(-50%) perspective(200px) rotateX(58deg) scaleY(1.02); }
  100% { transform: translateX(-50%) perspective(200px) rotateX(62deg) scaleY(0.98); }
}
@keyframes str-map {
  0% { transform: translateX(-50%) perspective(200px) rotateX(45deg) scale(1); }
  50% { transform: translateX(-50%) perspective(200px) rotateX(43deg) scale(1.03); }
  100% { transform: translateX(-50%) perspective(200px) rotateX(47deg) scale(0.98); }
}
@keyframes str-figure {
  0%, 100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(3px) rotate(3deg) scaleY(1.02); }
  50% { transform: translateX(-3px) rotate(-3deg) scaleY(0.98); }
  75% { transform: translateX(1px) rotate(2deg) scaleY(1.01); }
}
@keyframes str-lantern {
  0% { box-shadow: 0 0 20px 6px #f5a623; opacity: 0.8; }
  50% { box-shadow: 0 0 40px 16px #f7d794; opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #f5a623; opacity: 0.9; }
}
@keyframes str-shadow {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.3; }
}

.scn-volumnia-rages { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #3a2a1a 100%), radial-gradient(ellipse at 60% 30%, #a06030 0%, transparent 70%); }
.scn-volumnia-rages .vr-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, rgba(180,120,60,0.3) 0%, transparent 60%); animation: vr-glow 6s ease-in-out infinite alternate; }
.scn-volumnia-rages .vr-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-volumnia-rages .vr-col-l { position:absolute; left:8%; bottom:35%; width:20px; height:65%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-volumnia-rages .vr-col-r { position:absolute; right:8%; bottom:35%; width:20px; height:65%; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%); border-radius:4px; }
.scn-volumnia-rages .vr-fig { position:absolute; left:50%; bottom:35%; width:50px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0e05 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: vr-fig 4s ease-in-out infinite; }
.scn-volumnia-rages .vr-arm { position:absolute; left:60%; bottom:65%; width:40px; height:10px; background: linear-gradient(90deg, #2a1a0a 0%, #1a0e05 100%); border-radius:5px; transform-origin:0 50%; animation: vr-arm 3s ease-in-out infinite; }
.scn-volumnia-rages .vr-torch { position:absolute; left:62%; bottom:70%; width:8px; height:8px; background: radial-gradient(circle, #ffcc80 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 12px 4px #b08040, 0 0 24px 8px rgba(176,128,64,0.5); animation: vr-torch 1.5s ease-in-out infinite alternate; }
@keyframes vr-glow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes vr-fig { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-48%) rotate(2deg); } 50% { transform:translateX(-50%) rotate(0deg); } 75% { transform:translateX(-52%) rotate(-2deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes vr-arm { 0% { transform:rotate(-20deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-20deg); } }
@keyframes vr-torch { 0% { transform:scale(1) rotate(-5deg); opacity:0.8; } 50% { transform:scale(1.2) rotate(5deg); opacity:1; } 100% { transform:scale(0.9) rotate(-5deg); opacity:0.7; } }

.scn-volumnia-curses { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #3a2a1a 100%), radial-gradient(ellipse at 70% 40%, #a06030 0%, transparent 70%); }
.scn-volumnia-curses .vc-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 40%, rgba(180,120,60,0.3) 0%, transparent 60%); animation: vc-glow 5s ease-in-out infinite alternate; }
.scn-volumnia-curses .vc-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-volumnia-curses .vc-col { position:absolute; left:10%; bottom:35%; width:16px; height:65%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-volumnia-curses .vc-figa { position:absolute; left:40%; bottom:35%; width:45px; height:75px; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: vc-figa 4.5s ease-in-out infinite; }
.scn-volumnia-curses .vc-figb { position:absolute; left:65%; bottom:35%; width:30px; height:55px; transform:scale(0.9); background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: vc-figb 6s ease-in-out infinite; }
.scn-volumnia-curses .vc-shadow { position:absolute; left:40%; bottom:0; width:70px; height:10px; background: #1a0e05; border-radius:50%; filter:blur(4px); animation: vc-shadow 4s ease-in-out infinite; }
.scn-volumnia-curses .vc-torch { position:absolute; left:50%; bottom:55%; width:7px; height:7px; background: radial-gradient(circle, #ffcc80 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 14px 5px #b08040; animation: vc-torch 2s ease-in-out infinite alternate; }
@keyframes vc-glow { 0% { opacity:0.8; } 50% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes vc-figa { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(-3px) rotate(3deg); } 60% { transform:translateX(0) rotate(0deg); } 100% { transform:translateX(2px) rotate(-2deg); } }
@keyframes vc-figb { 0% { transform:scale(0.9) translateX(0); } 50% { transform:scale(0.85) translateX(5px); } 100% { transform:scale(0.9) translateX(0); } }
@keyframes vc-shadow { 0% { transform:scaleX(1); opacity:0.4; } 50% { transform:scaleX(0.8); opacity:0.6; } 100% { transform:scaleX(1); opacity:0.4; } }
@keyframes vc-torch { 0% { transform:scale(1) rotate(-3deg); opacity:0.8; } 50% { transform:scale(1.15) rotate(3deg); opacity:1; } 100% { transform:scale(0.9) rotate(-3deg); opacity:0.7; } }

.scn-menenius-consoles { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #a06030 0%, transparent 70%); }
.scn-menenius-consoles .mc-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, rgba(180,120,60,0.2) 0%, transparent 60%); animation: mc-glow 7s ease-in-out infinite alternate; }
.scn-menenius-consoles .mc-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-menenius-consoles .mc-bench { position:absolute; left:40%; bottom:35%; width:30%; height:6px; background: #4a3a2a; border-radius:3px; animation: mc-bench 8s ease-in-out infinite; }
.scn-menenius-consoles .mc-figa { position:absolute; left:42%; bottom:38%; width:40px; height:70px; background: linear-gradient(180deg, #1a0e05 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-figa 5s ease-in-out infinite; }
.scn-menenius-consoles .mc-figb { position:absolute; left:55%; bottom:38%; width:35px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-figb 6s ease-in-out infinite; }
.scn-menenius-consoles .mc-lamp { position:absolute; left:70%; bottom:55%; width:10px; height:12px; background: radial-gradient(circle, #ffcc80 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 18px 6px #b08040; animation: mc-lamp 3s ease-in-out infinite alternate; }
.scn-menenius-consoles .mc-wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
@keyframes mc-glow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes mc-bench { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes mc-figa { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(2px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes mc-figb { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes mc-lamp { 0% { transform:scale(1) rotate(-5deg); opacity:0.8; } 50% { transform:scale(1.1) rotate(5deg); opacity:1; } 100% { transform:scale(0.9) rotate(-5deg); opacity:0.7; } }

.scn-roman-and-volsce-meet { background: linear-gradient(180deg, #4a4a4a 0%, #6a6a6a 30%, #8a8a8a 60%, #6a6a6a 100%), radial-gradient(ellipse at 50% 20%, #7a7a7a 0%, transparent 70%); }
.scn-roman-and-volsce-meet .rv-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a5a5a 0%, #7a7a7a 100%); animation: rv-sky 20s ease-in-out infinite alternate; }
.scn-roman-and-volsce-meet .rv-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); }
.scn-roman-and-volsce-meet .rv-road { position:absolute; bottom:15%; left:0; right:0; height:10%; background: linear-gradient(90deg, #5a5a4a 0%, #6a6a5a 50%, #5a5a4a 100%); border-radius:2px; }
.scn-roman-and-volsce-meet .rv-figr { position:absolute; left:25%; bottom:20%; width:35px; height:60px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleX(-1); animation: rv-figr 8s ease-in-out infinite; }
.scn-roman-and-volsce-meet .rv-figv { position:absolute; right:30%; bottom:20%; width:35px; height:60px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rv-figv 8s ease-in-out infinite; }
.scn-roman-and-volsce-meet .rv-shr { position:absolute; left:28%; bottom:15%; width:30px; height:4px; background: #2a2a2a; border-radius:50%; opacity:0.5; animation: rv-shr 8s ease-in-out infinite; }
.scn-roman-and-volsce-meet .rv-shv { position:absolute; right:33%; bottom:15%; width:30px; height:4px; background: #2a2a2a; border-radius:50%; opacity:0.5; animation: rv-shv 8s ease-in-out infinite; }
.scn-roman-and-volsce-meet .rv-cloud { position:absolute; top:5%; left:-20%; width:100px; height:15px; background: rgba(160,160,160,0.4); border-radius:50%; filter:blur(6px); animation: rv-cloud 40s linear infinite; }
@keyframes rv-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes rv-figr { 0%,100% { transform:scaleX(-1) translateX(0); } 50% { transform:scaleX(-1) translateX(-10px); } }
@keyframes rv-figv { 0%,100% { transform:translateX(0); } 50% { transform:translateX(10px); } }
@keyframes rv-shr { 0%,100% { transform:translateX(0); opacity:0.5; } 50% { transform:translateX(-10px); opacity:0.3; } }
@keyframes rv-shv { 0%,100% { transform:translateX(0); opacity:0.5; } 50% { transform:translateX(10px); opacity:0.3; } }
@keyframes rv-cloud { 0% { transform:translateX(0); } 100% { transform:translateX(100vw); } }

/* Scene: coriolanus-peace (tense, dim interior) */
.scn-coriolanus-peace {
  background: 
    linear-gradient(180deg, #1e1b18 0%, #2c2621 40%, #171412 100%),
    radial-gradient(ellipse at 50% 80%, #3a2e26 0%, transparent 70%);
}
.scn-coriolanus-peace .bg-cp { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 60%, #2a221c 0%, transparent 60%); animation: cp-bg 10s ease-in-out infinite alternate; }
.scn-coriolanus-peace .wall-cp { position:absolute; bottom:40%; left:5%; right:5%; height:55%; background:linear-gradient(180deg, #3d322a 0%, #2a1f18 100%); border-radius:4px; box-shadow:0 -4px 12px rgba(0,0,0,.6); }
.scn-coriolanus-peace .floor-cp { position:absolute; bottom:0; left:0; right:0; height:42%; background:linear-gradient(180deg, #1f1813 0%, #0f0c0a 100%); }
.scn-coriolanus-peace .figure-left { position:absolute; bottom:18%; left:22%; width:34px; height:72px; background:linear-gradient(180deg, #1f1a16 0%, #0f0c0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cp-fig-left 5s ease-in-out infinite; }
.scn-coriolanus-peace .figure-right { position:absolute; bottom:18%; right:22%; width:32px; height:68px; background:linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cp-fig-right 5s ease-in-out infinite; }
.scn-coriolanus-peace .lamp-cp { position:absolute; bottom:44%; left:50%; width:14px; height:20px; transform:translateX(-50%); background:radial-gradient(circle, #d8a864 0%, #a07030 50%, #503818 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: cp-lamp 2s ease-in-out infinite alternate; }
.scn-coriolanus-peace .shadow-cp { position:absolute; bottom:18%; left:18%; width:30%; height:20px; background:radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 60%); transform-origin:bottom; animation: cp-shadow 5s ease-in-out infinite; }
.scn-coriolanus-peace .dust-cp { position:absolute; top:20%; left:30%; width:60px; height:60px; background:radial-gradient(circle, rgba(200,180,160,.08) 0%, transparent 70%); filter:blur(4px); animation: cp-dust 20s linear infinite; }
@keyframes cp-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cp-fig-left { 0% { transform:translate(0,0) rotate(-0.5deg) } 25% { transform:translate(2px,-1px) rotate(0.5deg) } 50% { transform:translate(0,-2px) rotate(0deg) } 75% { transform:translate(-2px,-1px) rotate(-0.5deg) } 100% { transform:translate(0,0) rotate(0.5deg) } }
@keyframes cp-fig-right { 0% { transform:translate(0,0) rotate(0.5deg) } 25% { transform:translate(-2px,-1px) rotate(-0.5deg) } 50% { transform:translate(0,-2px) rotate(0deg) } 75% { transform:translate(2px,-1px) rotate(0.5deg) } 100% { transform:translate(0,0) rotate(-0.5deg) } }
@keyframes cp-lamp { 0% { box-shadow:0 0 14px 4px #b08040,0 0 28px 8px rgba(176,128,64,.3); opacity:.8 } 50% { box-shadow:0 0 26px 8px #e8c060,0 0 50px 16px rgba(232,192,96,.5); opacity:1 } 100% { box-shadow:0 0 18px 5px #b08040,0 0 34px 10px rgba(176,128,64,.35); opacity:.85 } }
@keyframes cp-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(0.95) } }
@keyframes cp-dust { 0% { transform:translate(0,0) } 100% { transform:translate(100px, -30px) } }

/* Scene: coriolanus-sweat (warm, dim interior) */
.scn-coriolanus-sweat {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3d2c24 30%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #4d382e 0%, transparent 60%);
}
.scn-coriolanus-sweat .bg-cs { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%, #3a2a22 0%, transparent 50%); animation: cs-bg 8s ease-in-out infinite alternate; }
.scn-coriolanus-sweat .head-cs { position:absolute; bottom:20%; left:50%; width:95px; height:110px; transform:translateX(-50%); background:linear-gradient(170deg, #4d362a 0%, #2a1a12 70%, #1a0e08 100%); border-radius:50% 50% 45% 45% / 60% 60% 45% 45%; box-shadow:0 8px 20px rgba(0,0,0,.7), inset 0 -6px 12px rgba(0,0,0,.5); animation: cs-head 4s ease-in-out infinite; }
.scn-coriolanus-sweat .sweat-1 { position:absolute; bottom:32%; left:42%; width:6px; height:7px; background:radial-gradient(circle, rgba(220,200,180,.6) 0%, transparent 70%); border-radius:50%; animation: cs-sweat-a 5s ease-in-out infinite; }
.scn-coriolanus-sweat .sweat-2 { position:absolute; bottom:30%; left:52%; width:5px; height:6px; background:radial-gradient(circle, rgba(220,200,180,.5) 0%, transparent 70%); border-radius:50%; animation: cs-sweat-b 6s ease-in-out infinite 1s; }
.scn-coriolanus-sweat .sweat-3 { position:absolute; bottom:28%; left:48%; width:4px; height:5px; background:radial-gradient(circle, rgba(220,200,180,.4) 0%, transparent 70%); border-radius:50%; animation: cs-sweat-c 7s ease-in-out infinite 2s; }
.scn-coriolanus-sweat .glow-cs { position:absolute; bottom:20%; left:38%; width:80px; height:80px; background:radial-gradient(circle, #d8a864 0%, transparent 60%); border-radius:50%; filter:blur(12px); animation: cs-glow 3s ease-in-out infinite alternate; }
.scn-coriolanus-sweat .collar-cs { position:absolute; bottom:10%; left:50%; width:70px; height:24px; transform:translateX(-50%); background:linear-gradient(180deg, #1e1410 0%, #0f0a08 100%); border-radius:30% 30% 10% 10%; box-shadow:0 -4px 8px rgba(0,0,0,.5); }
@keyframes cs-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cs-head { 0% { transform:translateX(-50%) rotate(-2deg); } 25% { transform:translateX(-50%) translateY(-2px) rotate(0deg); } 50% { transform:translateX(-50%) rotate(2deg); } 75% { transform:translateX(-50%) translateY(-1px) rotate(0deg); } 100% { transform:translateX(-50%) rotate(-2deg); } }
@keyframes cs-sweat-a { 0% { transform:translate(0,0); opacity:.7 } 30% { transform:translate(4px,12px); opacity:0 } 100% { transform:translate(8px,20px); opacity:0 } }
@keyframes cs-sweat-b { 0% { transform:translate(0,0); opacity:.6 } 30% { transform:translate(-3px,14px); opacity:0 } 100% { transform:translate(-6px,22px); opacity:0 } }
@keyframes cs-sweat-c { 0% { transform:translate(0,0); opacity:.5 } 30% { transform:translate(2px,16px); opacity:0 } 100% { transform:translate(4px,24px); opacity:0 } }
@keyframes cs-glow { 0% { opacity:.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.7; transform:scale(1) } }

/* Scene: coriolanus-departure (calm, dim interior) */
.scn-coriolanus-departure {
  background:
    linear-gradient(180deg, #2c241e 0%, #1e1814 50%, #120e0c 100%),
    radial-gradient(ellipse at 50% 90%, #3a2e26 0%, transparent 60%);
}
.scn-coriolanus-departure .bg-cd { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 50%, #2a201a 0%, transparent 50%); animation: cd-bg 12s ease-in-out infinite alternate; }
.scn-coriolanus-departure .table-cd { position:absolute; bottom:22%; left:20%; right:20%; height:8%; background:linear-gradient(180deg, #4d3a2a 0%, #2a1e14 100%); border-radius:4px 4px 0 0; box-shadow:0 4px 12px rgba(0,0,0,.6); transform: skewY(2deg); }
.scn-coriolanus-departure .cup-left { position:absolute; bottom:28%; left:30%; width:18px; height:20px; background:linear-gradient(180deg, #6a4a38 0%, #3a2618 100%); border-radius:20% 20% 5% 5%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation: cd-cup 6s ease-in-out infinite; }
.scn-coriolanus-departure .cup-right { position:absolute; bottom:28%; right:30%; width:18px; height:20px; background:linear-gradient(180deg, #6a4a38 0%, #3a2618 100%); border-radius:20% 20% 5% 5%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation: cd-cup 6s ease-in-out infinite 0.5s; }
.scn-coriolanus-departure .hand-cd { position:absolute; bottom:26%; left:38%; width:20px; height:30px; background:linear-gradient(180deg, #4d362a 0%, #2a1a12 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation: cd-hand 8s ease-in-out infinite; }
.scn-coriolanus-departure .window-cd { position:absolute; top:15%; left:50%; width:30%; height:35%; transform:translateX(-50%); background:linear-gradient(180deg, #3d3540 0%, #1e1c22 100%); border-radius:10% 10% 4% 4%; border:2px solid #2a221c; box-shadow:inset 0 0 20px rgba(0,0,0,.5); animation: cd-window 20s ease-in-out infinite alternate; }
.scn-coriolanus-departure .drapery-cd { position:absolute; top:10%; left:15%; width:20%; height:50%; background:linear-gradient(180deg, #2a1e18 0%, #1a120e 100%); border-radius:0 60% 60% 0 / 0 40% 40% 0; filter:blur(1px); animation: cd-drapery 15s ease-in-out infinite alternate; }
@keyframes cd-bg { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cd-cup { 0% { transform:scale(1) } 50% { transform:scale(1.02) translateY(-1px) } 100% { transform:scale(1) } }
@keyframes cd-hand { 0% { transform:rotate(0deg) } 25% { transform:rotate(5deg) translateX(4px) } 50% { transform:rotate(0deg) } 75% { transform:rotate(-3deg) translateX(-2px) } 100% { transform:rotate(0deg) } }
@keyframes cd-window { 0% { box-shadow:inset 0 0 20px rgba(0,0,0,.5); opacity:.9 } 50% { box-shadow:inset 0 0 30px rgba(0,0,0,.7); opacity:1 } 100% { box-shadow:inset 0 0 20px rgba(0,0,0,.5); opacity:.9 } }
@keyframes cd-drapery { 0% { transform:translateX(0) } 100% { transform:translateX(-8px) } }

/* Scene: exeunt-ladies (calm, dim interior) */
.scn-exeunt-ladies {
  background:
    linear-gradient(180deg, #1e1b22 0%, #2a2630 40%, #141218 100%),
    radial-gradient(ellipse at 50% 70%, #2a2630 0%, transparent 60%);
}
.scn-exeunt-ladies .bg-el { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 60%, #2a2430 0%, transparent 50%); animation: el-bg 16s ease-in-out infinite alternate; }
.scn-exeunt-ladies .arch-el { position:absolute; top:5%; left:20%; right:20%; height:60%; background:linear-gradient(180deg, #3a3240 0%, #1e1822 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; box-shadow:inset 0 0 30px rgba(0,0,0,.6); }
.scn-exeunt-ladies .window-sky { position:absolute; top:8%; left:22%; right:22%; height:55%; background:linear-gradient(180deg, #2c3844 0%, #1e2430 50%, #141a22 100%); border-radius:30% 30% 0 0; animation: el-sky 30s ease-in-out infinite alternate; }
.scn-exeunt-ladies .capitol-bg { position:absolute; top:20%; left:25%; right:25%; height:30%; background:linear-gradient(180deg, #2a2630 0%, #1e1c22 100%); clip-path:polygon(30% 100%, 40% 20%, 60% 20%, 70% 100%); animation: el-cap 40s linear infinite; }
.scn-exeunt-ladies .lady-1 { position:absolute; bottom:22%; left:12%; width:22px; height:56px; background:linear-gradient(180deg, #4a3a48 0%, #2a1e2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: el-lady 12s ease-in-out infinite; }
.scn-exeunt-ladies .lady-2 { position:absolute; bottom:22%; right:12%; width:20px; height:52px; background:linear-gradient(180deg, #3a2e3a 0%, #1e1420 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: el-lady 12s ease-in-out infinite 1s; }
.scn-exeunt-ladies .floor-el { position:absolute; bottom:0; left:0; right:0; height:22%; background:linear-gradient(180deg, #1a1620 0%, #0e0c12 100%); box-shadow:0 -4px 8px rgba(0,0,0,.4); }
.scn-exeunt-ladies .shadow-el { position:absolute; bottom:20%; left:10%; right:10%; height:10px; background:radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 60%); animation: el-shadow 12s ease-in-out infinite; }
@keyframes el-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes el-sky { 0% { background-position:0 0; } 50% { background-position:0 10px; } 100% { background-position:0 0; } }
@keyframes el-cap { 0% { transform:scale(1) } 50% { transform:scale(1.02) } 100% { transform:scale(1) } }
@keyframes el-lady { 0% { transform:translate(0,0) rotate(0deg) } 25% { transform:translate(4px,-1px) rotate(1deg) } 50% { transform:translate(8px,0) rotate(0deg) } 75% { transform:translate(4px,-1px) rotate(-1deg) } 100% { transform:translate(0,0) rotate(0deg) } }
@keyframes el-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-scene-tribunes-plot { background: linear-gradient(180deg, #5a5e66 0%, #434750 30%, #373a40 70%, #2a2c30 100%), radial-gradient(ellipse at 40% 20%, #6b707a 0%, transparent 60%); }
.scn-scene-tribunes-plot .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6b6f78 0%, #848892 40%, #9a9ea8 100%); animation: tbp-sky 14s ease-in-out infinite alternate; }
.scn-scene-tribunes-plot .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2e3135 0%, #1f2124 100%); border-radius:30% 0 0 0 / 15% 0 0 0; }
.scn-scene-tribunes-plot .column-left { position:absolute; bottom:10%; left:8%; width:20px; height:55%; background: linear-gradient(90deg, #4a4d55 0%, #5c5f67 30%, #3d4048 100%); border-radius:2px; box-shadow: 4px 0 8px rgba(0,0,0,.4); }
.scn-scene-tribunes-plot .marcius { position:absolute; bottom:12%; left:32%; width:24px; height:50%; background: linear-gradient(180deg, #1a1c1f 0%, #141517 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tbp-marcius 2.5s ease-in-out infinite; }
.scn-scene-tribunes-plot .tribune-left { position:absolute; bottom:10%; left:52%; width:22px; height:48%; background: linear-gradient(180deg, #1c1e21 0%, #16181b 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: tbp-tribune 3s ease-in-out infinite; }
.scn-scene-tribunes-plot .tribune-right { position:absolute; bottom:10%; left:66%; width:22px; height:48%; background: linear-gradient(180deg, #1c1e21 0%, #16181b 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: tbp-tribune 3.2s ease-in-out infinite 0.5s; }
.scn-scene-tribunes-plot .cloud-overlay { position:absolute; top:5%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(130,135,145,.3) 0%, transparent 100%); filter: blur(8px); animation: tbp-clouds 25s ease-in-out infinite alternate; }
@keyframes tbp-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes tbp-marcius { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tbp-tribune { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes tbp-clouds { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(5px); } 100% { transform: scaleX(0.95) translateX(-5px); } }

.scn-scene-volscian-camp { background: linear-gradient(180deg, #11141a 0%, #1a1e26 40%, #222734 100%), radial-gradient(ellipse at 50% 60%, #2c3344 0%, transparent 80%); }
.scn-scene-volscian-camp .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0d0f13 0%, #161a22 100%); animation: vcp-dark 20s ease-in-out infinite alternate; }
.scn-scene-volscian-camp .tent { position:absolute; bottom:5%; left:15%; width:120px; height:80px; background: linear-gradient(135deg, #2f3b4a 0%, #1a2028 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform-origin: bottom center; animation: vcp-tent 12s ease-in-out infinite alternate; }
.scn-scene-volscian-camp .campfire { position:absolute; bottom:12%; left:42%; width:30px; height:30px; background: radial-gradient(circle at 50% 60%, #6e4c1a 0%, #3a2810 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(110,76,26,.5); animation: vcp-fire 1.5s ease-in-out infinite alternate; }
.scn-scene-volscian-camp .aufidius { position:absolute; bottom:8%; left:55%; width:26px; height:45%; background: linear-gradient(180deg, #1a1c20 0%, #121418 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vcp-aufidius 3s ease-in-out infinite; }
.scn-scene-volscian-camp .blood-stain { position:absolute; bottom:2%; left:52%; width:16px; height:8px; background: radial-gradient(circle, #5e1a1d 0%, transparent 70%); border-radius:50%; animation: vcp-blood 5s ease-in-out infinite alternate; }
.scn-scene-volscian-camp .spear { position:absolute; bottom:20%; left:72%; width:4px; height:55%; background: linear-gradient(180deg, #3d4147 0%, #2a2d32 100%); transform-origin: bottom center; border-radius:0 0 2px 2px; transform: rotate(-5deg); animation: vcp-spear 4s ease-in-out infinite; }
.scn-scene-volscian-camp .ground-shadow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); }
@keyframes vcp-dark { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes vcp-tent { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(0.98) translateY(0); } }
@keyframes vcp-fire { 0% { transform: scale(1) rotate(0deg); opacity:0.8; box-shadow: 0 0 30px 15px rgba(110,76,26,.4); } 50% { transform: scale(1.1) rotate(2deg); opacity:1; box-shadow: 0 0 50px 25px rgba(110,76,26,.6); } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.9; box-shadow: 0 0 35px 18px rgba(110,76,26,.45); } }
@keyframes vcp-aufidius { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes vcp-blood { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.3); opacity:0.8; } 100% { transform: scale(1); opacity:0.5; } }
@keyframes vcp-spear { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-6deg); } }

.scn-scene-corioli-senate { background: linear-gradient(180deg, #1a1c22 0%, #2a2e38 30%, #3a3f4a 70%, #2f333d 100%), radial-gradient(ellipse at 50% 30%, #c8b080 0%, transparent 70%); }
.scn-scene-corioli-senate .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #1b1d23 0%, #2e3139 100%); animation: cst-bg 15s ease-in-out infinite alternate; }
.scn-scene-corioli-senate .column-left { position:absolute; bottom:0; left:10%; width:16px; height:85%; background: linear-gradient(90deg, #3c3f48 0%, #4a4d57 30%, #353840 100%); border-radius:2px; box-shadow: 2px 0 10px rgba(0,0,0,.5); }
.scn-scene-corioli-senate .column-right { position:absolute; bottom:0; right:10%; width:16px; height:85%; background: linear-gradient(90deg, #3c3f48 0%, #4a4d57 30%, #353840 100%); border-radius:2px; box-shadow: -2px 0 10px rgba(0,0,0,.5); }
.scn-scene-corioli-senate .table { position:absolute; bottom:8%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #3a352c 0%, #24211a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-scene-corioli-senate .senator-left { position:absolute; bottom:18%; left:32%; width:22px; height:40%; background: linear-gradient(180deg, #1a1b1f 0%, #141519 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cst-senator 4s ease-in-out infinite; }
.scn-scene-corioli-senate .senator-right { position:absolute; bottom:18%; right:32%; width:22px; height:40%; background: linear-gradient(180deg, #1a1b1f 0%, #141519 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cst-senator 4.5s ease-in-out infinite 0.5s; }
.scn-scene-corioli-senate .torch-left { position:absolute; top:15%; left:15%; width:8px; height:20px; background: linear-gradient(180deg, #6b4e2a 0%, #3d2c16 100%); border-radius:2px 2px 0 0; }
.scn-scene-corioli-senate .torch-right { position:absolute; top:15%; right:15%; width:8px; height:20px; background: linear-gradient(180deg, #6b4e2a 0%, #3d2c16 100%); border-radius:2px 2px 0 0; }
.scn-scene-corioli-senate .torch-left::after { content:''; position:absolute; top:-8px; left:-3px; width:14px; height:14px; background: radial-gradient(circle, #f0c880 0%, #b08040 40%, transparent 70%); border-radius:50%; animation: cst-torch 2s ease-in-out infinite alternate; }
.scn-scene-corioli-senate .torch-right::after { content:''; position:absolute; top:-8px; left:-3px; width:14px; height:14px; background: radial-gradient(circle, #f0c880 0%, #b08040 40%, transparent 70%); border-radius:50%; animation: cst-torch 2.3s ease-in-out infinite alternate 0.3s; }
@keyframes cst-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cst-senator { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cst-torch { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 10px 5px rgba(240,200,128,0.4); } 50% { transform: scale(1.15) rotate(3deg); box-shadow: 0 0 16px 8px rgba(240,200,128,0.6); } 100% { transform: scale(0.9) rotate(-2deg); box-shadow: 0 0 8px 4px rgba(240,200,128,0.3); } }

.scn-scene-item-letter-aufidius { background: linear-gradient(180deg, #1f1c1a 0%, #2b2622 40%, #35302c 100%), radial-gradient(ellipse at 50% 70%, #4a423c 0%, transparent 70%); }
.scn-scene-item-letter-aufidius .table-surface { position:absolute; inset:20% 5% 5% 5%; background: linear-gradient(180deg, #3a342e 0%, #2c2722 100%); border-radius:8px; box-shadow: inset 0 2px 10px rgba(0,0,0,.5); }
.scn-scene-item-letter-aufidius .hand-silhouette { position:absolute; bottom:20%; left:22%; width:40px; height:50px; background: linear-gradient(180deg, #12100e 0%, #0b0a08 100%); border-radius:60% 40% 30% 70% / 50% 50% 50% 50%; transform-origin: 40% 100%; animation: auf-hand 3s ease-in-out infinite alternate; }
.scn-scene-item-letter-aufidius .scroll { position:absolute; bottom:35%; left:28%; width:60px; height:45px; background: linear-gradient(180deg, #d4c8a8 0%, #b8aa8e 100%); border-radius:2px 2px 10px 10px; box-shadow: 2px 2px 8px rgba(0,0,0,.3); transform: rotate(-3deg); }
.scn-scene-item-letter-aufidius .seal { position:absolute; bottom:38%; left:42%; width:16px; height:16px; background: radial-gradient(circle, #c8553d 0%, #8a3b2a 60%, #5e1d14 100%); border-radius:50%; box-shadow: 0 0 6px rgba(200,85,61,.4); animation: auf-seal 4s ease-in-out infinite alternate; }
.scn-scene-item-letter-aufidius .candle-body { position:absolute; bottom:42%; right:20%; width:10px; height:35px; background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%); border-radius:2px; box-shadow: -1px 0 4px rgba(0,0,0,.2); }
.scn-scene-item-letter-aufidius .candle-flame { position:absolute; bottom:72%; right:23%; width:12px; height:14px; background: radial-gradient(circle, #f8e0a0 0%, #e0a050 40%, transparent 70%); border-radius:50%; animation: auf-flame 1.2s ease-in-out infinite alternate; }
.scn-scene-item-letter-aufidius .ink-bottle { position:absolute; bottom:40%; left:8%; width:12px; height:18px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 0 4px rgba(0,0,0,.5); }
@keyframes auf-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(2deg) translateX(-1px); } }
@keyframes auf-seal { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(1) rotate(-5deg); } }
@keyframes auf-flame { 0% { transform: scale(1) translateY(0); opacity:0.8; box-shadow: 0 0 6px 3px rgba(224,160,80,.3); } 50% { transform: scale(1.2) translateY(-2px); opacity:1; box-shadow: 0 0 12px 6px rgba(224,160,80,.5); } 100% { transform: scale(0.9) translateY(1px); opacity:0.9; box-shadow: 0 0 4px 2px rgba(224,160,80,.25); } }

/* scene-rome-mutiny */
.scn-scene-rome-mutiny {
  background:
    linear-gradient(180deg, #4a5154 0%, #6b7376 30%, #8a9296 100%),
    radial-gradient(ellipse at 50% 100%, #5a6266 0%, transparent 70%);
}
.scn-scene-rome-mutiny .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3e4548 0%, transparent 100%);
  animation: rm-sky 12s ease-in-out infinite alternate;
}
.scn-scene-rome-mutiny .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a524a 0%, #2a322a 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-scene-rome-mutiny .crowd {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 35%;
  background: #2d2d2d;
  clip-path: polygon(0% 100%, 2% 75%, 4% 85%, 6% 70%, 8% 80%, 10% 65%, 12% 78%, 14% 68%, 16% 82%, 18% 70%, 20% 85%, 22% 72%, 24% 88%, 26% 75%, 28% 90%, 30% 78%, 32% 85%, 34% 70%, 36% 82%, 38% 68%, 40% 80%, 42% 65%, 44% 78%, 46% 70%, 48% 85%, 50% 72%, 52% 88%, 54% 75%, 56% 90%, 58% 78%, 60% 85%, 62% 70%, 64% 82%, 66% 68%, 68% 80%, 70% 65%, 72% 78%, 74% 70%, 76% 85%, 78% 72%, 80% 88%, 82% 75%, 84% 90%, 86% 78%, 88% 85%, 90% 70%, 92% 80%, 94% 68%, 96% 78%, 98% 72%, 100% 100%);
  animation: rm-crowd 8s ease-in-out infinite alternate;
}
.scn-scene-rome-mutiny .figure-arm {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a, #1a1a1a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rm-figure 4s ease-in-out infinite;
}
.scn-scene-rome-mutiny .club {
  position: absolute; bottom: 30%; left: 28%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a, #3a1a1a);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: rm-club 4s ease-in-out infinite alternate;
}
.scn-scene-rome-mutiny .banner-pole {
  position: absolute; bottom: 18%; left: 65%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: rm-pole 6s ease-in-out infinite alternate;
}
.scn-scene-rome-mutiny .banner-cloth {
  position: absolute; bottom: 30%; left: 65%; width: 28px; height: 16px;
  background: linear-gradient(180deg, #6a3a3a, #4a1a1a);
  border-radius: 0 40% 40% 0;
  transform-origin: left center;
  animation: rm-banner 6s ease-in-out infinite alternate;
}
@keyframes rm-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes rm-crowd { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes rm-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes rm-club { 0% { transform: rotate(-25deg) } 50% { transform: rotate(-35deg) } 100% { transform: rotate(-25deg) } }
@keyframes rm-pole { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes rm-banner { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }

/* scene-menenius-arrives */
.scn-scene-menenius-arrives {
  background:
    linear-gradient(180deg, #5a6064 0%, #7a8286 40%, #9a9ea2 100%),
    radial-gradient(ellipse at 50% 100%, #6a7276 0%, transparent 70%);
}
.scn-scene-menenius-arrives .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a5256 0%, transparent 100%);
  animation: ma-sky 10s ease-in-out infinite alternate;
}
.scn-scene-menenius-arrives .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a5250 0%, #2a3230 100%);
  border-radius: 15% 25% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.35);
}
.scn-scene-menenius-arrives .menenius {
  position: absolute; bottom: 15%; left: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ma-figure 5s ease-in-out infinite alternate;
}
.scn-scene-menenius-arrives .crowd {
  position: absolute; bottom: 20%; right: 10%; left: 50%; height: 30%;
  background: #2d2d2d;
  clip-path: polygon(0% 100%, 2% 80%, 4% 85%, 6% 78%, 8% 82%, 10% 75%, 12% 80%, 14% 76%, 16% 84%, 18% 78%, 20% 82%, 22% 76%, 24% 80%, 26% 78%, 28% 85%, 30% 80%, 32% 82%, 34% 76%, 36% 80%, 38% 78%, 40% 82%, 42% 76%, 44% 80%, 46% 78%, 48% 84%, 50% 80%, 52% 82%, 54% 76%, 56% 80%, 58% 78%, 60% 82%, 62% 76%, 64% 80%, 66% 78%, 68% 84%, 70% 80%, 72% 82%, 74% 76%, 76% 80%, 78% 78%, 80% 82%, 82% 76%, 84% 80%, 86% 78%, 88% 84%, 90% 80%, 92% 82%, 94% 76%, 96% 80%, 98% 78%, 100% 100%);
  animation: ma-crowd 6s ease-in-out infinite alternate;
}
.scn-scene-menenius-arrives .staff {
  position: absolute; bottom: 15%; left: 12%; width: 4px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 2px;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: ma-staff 5s ease-in-out infinite alternate;
}
.scn-scene-menenius-arrives .step {
  position: absolute; bottom: 14%; left: 10%; width: 50px; height: 4px;
  background: linear-gradient(90deg, #4a3a3a, #2a1a1a);
  border-radius: 2px;
  animation: ma-step 4s ease-in-out infinite alternate;
}
@keyframes ma-sky { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .7 } }
@keyframes ma-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ma-crowd { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(0.99) } }
@keyframes ma-staff { 0% { transform: rotate(4deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(4deg) } }
@keyframes ma-step { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }

/* scene-belly-fable */
.scn-scene-belly-fable {
  background:
    linear-gradient(180deg, #6a5a4a 0%, #9a8a6a 40%, #b8a888 100%),
    radial-gradient(ellipse at 50% 100%, #8a7a5a 0%, transparent 70%);
}
.scn-scene-belly-fable .bg-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a4a3a, transparent 100%);
  animation: bf-bg 12s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a5540, #3a3525);
  border-radius: 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-scene-belly-fable .figure-torso {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: bf-torso 8s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .belly {
  position: absolute; bottom: 12%; left: 50%; width: 45px; height: 35px;
  background: radial-gradient(circle at 50% 50%, #6a4a2a, #3a2a1a);
  border-radius: 50%;
  transform: translateX(-50%) translateY(-10px);
  animation: bf-belly 8s ease-in-out infinite alternate;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-scene-belly-fable .arm-left {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 10px;
  transform-origin: right center;
  transform: rotate(-20deg);
  animation: bf-arm-l 6s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .arm-right {
  position: absolute; bottom: 18%; right: 38%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 10px;
  transform-origin: left center;
  transform: rotate(20deg);
  animation: bf-arm-r 6s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .leg-left {
  position: absolute; bottom: 5%; left: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 4px;
  transform-origin: top center;
  transform: rotate(-10deg);
  animation: bf-leg-l 8s ease-in-out infinite alternate;
}
.scn-scene-belly-fable .leg-right {
  position: absolute; bottom: 5%; right: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 4px;
  transform-origin: top center;
  transform: rotate(10deg);
  animation: bf-leg-r 8s ease-in-out infinite alternate;
}
@keyframes bf-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes bf-torso { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes bf-belly { 0% { transform: translateX(-50%) translateY(-10px) scale(1) } 50% { transform: translateX(-50%) translateY(-12px) scale(1.05) } 100% { transform: translateX(-50%) translateY(-10px) scale(0.98) } }
@keyframes bf-arm-l { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-25deg) } }
@keyframes bf-arm-r { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(25deg) } }
@keyframes bf-leg-l { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-6deg) } 100% { transform: rotate(-14deg) } }
@keyframes bf-leg-r { 0% { transform: rotate(10deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(14deg) } }

/* scene-belly-answer */
.scn-scene-belly-answer {
  background:
    linear-gradient(180deg, #7a6a5a 0%, #a88a6a 50%, #c8a888 100%),
    radial-gradient(ellipse at 50% 80%, #9a7a5a 0%, transparent 70%);
}
.scn-scene-belly-answer .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, #5a4a3a 0%, transparent 70%);
  animation: ba-bg 10s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .head {
  position: absolute; top: 8%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #5a4a3a, #2a1a0a);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ba-head 6s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .eye {
  position: absolute; top: 12%; left: 55%; width: 14px; height: 8px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(-5deg);
  animation: ba-eye 4s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .heart {
  position: absolute; top: 38%; left: 50%; width: 28px; height: 24px;
  background: radial-gradient(circle at 50% 50%, #6a3a2a, #3a1a0a);
  clip-path: path('M14,0 C20-6 28-2 28,6 C28,14 14,24 14,24 C14,24 0,14 0,6 C0-2 8-6 14,0Z');
  transform: translateX(-50%) scale(0.9);
  animation: ba-heart 8s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .arm {
  position: absolute; top: 36%; left: 22%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a, #2a1a0a);
  border-radius: 20%;
  transform-origin: top center;
  transform: rotate(30deg);
  animation: ba-arm 5s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .leg {
  position: absolute; top: 60%; left: 50%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a, #2a1a0a);
  border-radius: 30% 30% 20% 20%;
  transform: translateX(-50%) rotate(5deg);
  transform-origin: top center;
  animation: ba-leg 6s ease-in-out infinite alternate;
}
.scn-scene-belly-answer .tongue {
  position: absolute; top: 22%; left: 65%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #6a3a2a, #3a1a0a);
  border-radius: 50% 50% 10% 10%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: rotate(20deg);
  transform-origin: bottom right;
  animation: ba-tongue 5s ease-in-out infinite alternate;
}
@keyframes ba-bg { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes ba-head { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ba-eye { 0% { transform: translateX(-50%) rotate(-5deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(-3deg) scaleY(1.1) } 100% { transform: translateX(-50%) rotate(-7deg) scaleY(0.9) } }
@keyframes ba-heart { 0% { transform: translateX(-50%) scale(0.9) } 50% { transform: translateX(-50%) scale(1) } 100% { transform: translateX(-50%) scale(0.85) } }
@keyframes ba-arm { 0% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(25deg) } }
@keyframes ba-leg { 0% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(10deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ba-tongue { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(25deg) scaleX(1.1) } 100% { transform: rotate(15deg) scaleX(0.9) } }

.scn-item-tenth-refusal { background: linear-gradient(180deg, #f4d9b2 0%, #e0b786 40%, #c3874f 100%), radial-gradient(ellipse at 50% 100%, #d4b483 0%, transparent 60%); }
.scn-item-tenth-refusal .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f6e3c5 0%, #f0d0a0 100%); animation: itr-sky 12s ease-in-out infinite alternate; }
.scn-item-tenth-refusal .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #a0522d 0%, #7a3c1e 100%); border-radius: 30% 40% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.3); animation: itr-ground 8s ease-in-out infinite alternate; }
.scn-item-tenth-refusal .marcius { position:absolute; bottom:20%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6b4c3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: itr-marcius 4s ease-in-out infinite; }
.scn-item-tenth-refusal .purse  { position:absolute; bottom:38%; left:42%; width:14px; height:10px; background: radial-gradient(circle, #f0c060 0%, #d09030 100%); border-radius: 30%; box-shadow: 0 0 20px 8px rgba(240,192,96,.5); animation: itr-purse 2s ease-in-out infinite alternate; }
.scn-item-tenth-refusal .cap1   { position:absolute; bottom:50%; left:30%; width:20px; height:12px; background: #a0461a; border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: itr-cap1 1.5s ease-in-out infinite; }
.scn-item-tenth-refusal .cap2   { position:absolute; bottom:55%; right:25%; width:18px; height:10px; background: #8b5e3c; border-radius: 50% 50% 20% 20%; animation: itr-cap2 2s ease-in-out infinite 0.5s; }
.scn-item-tenth-refusal .lance  { position:absolute; bottom:45%; left:65%; width:4px; height:50px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%); border-radius: 1px; transform-origin: bottom center; animation: itr-lance 2s ease-in-out infinite 0.3s; }
@keyframes itr-sky    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes itr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes itr-marcius { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(8deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(-8deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes itr-purse  { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.15); opacity:1; box-shadow: 0 0 30px 12px rgba(240,192,96,.7) } 100% { transform: scale(1); opacity:.9 } }
@keyframes itr-cap1   { 0% { transform: translate(0,0) rotate(-10deg) } 50% { transform: translate(20px, -30px) rotate(0deg) } 100% { transform: translate(40px, -60px) rotate(10deg) } }
@keyframes itr-cap2   { 0% { transform: translate(0,0) rotate(5deg) } 50% { transform: translate(-20px, -25px) rotate(-5deg) } 100% { transform: translate(-40px, -50px) rotate(0deg) } }
@keyframes itr-lance  { 0% { transform: rotate(-15deg) } 50% { transform: rotate(5deg) translateY(-10px) } 100% { transform: rotate(15deg) translateY(-20px) } }

.scn-scene-crowning-coriolanus { background: linear-gradient(180deg, #f9e4b7 0%, #dfb68c 40%, #c3874f 100%), radial-gradient(ellipse at 70% 20%, #fadaa0 0%, transparent 60%); }
.scn-scene-crowning-coriolanus .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fdeac8 0%, #f2d8a8 100%); animation: scc-sky 15s ease-in-out infinite alternate; }
.scn-scene-crowning-coriolanus .steps  { position:absolute; bottom:25%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #b88a6a 0%, #8b6a4a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); animation: scc-steps 10s ease-in-out infinite alternate; }
.scn-scene-crowning-coriolanus .coriolanus { position:absolute; bottom:35%; left:50%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #6b4c3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scc-coriolanus 6s ease-in-out infinite; }
.scn-scene-crowning-coriolanus .crown  { position:absolute; bottom:70%; left:50%; width:24px; height:10px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #f0c860 0%, #d09030 60%, #a07020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(240,192,96,.4); animation: scc-crown 3s ease-in-out infinite alternate; }
.scn-scene-crowning-coriolanus .senator-l { position:absolute; bottom:30%; left:10%; width:22px; height:55px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: scc-senator-l 8s ease-in-out infinite; }
.scn-scene-crowning-coriolanus .senator-r { position:absolute; bottom:30%; right:10%; width:22px; height:55px; background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: scc-senator-r 8s ease-in-out infinite 1s; }
.scn-scene-crowning-coriolanus .banner  { position:absolute; top:10%; left:60%; width:8px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #8b2a1a 100%); border-radius: 2px; transform-origin: top center; animation: scc-banner 12s ease-in-out infinite alternate; }
@keyframes scc-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes scc-steps  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes scc-coriolanus { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes scc-crown  { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity:.7 } 50% { transform: translateX(-50%) translateY(-5px) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) translateY(0) scale(1); opacity:.8 } }
@keyframes scc-senator-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes scc-senator-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes scc-banner { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }

.scn-scene-host-freedom { background: linear-gradient(180deg, #e6c9a8 0%, #cfa27c 40%, #b08060 100%), radial-gradient(ellipse at 30% 50%, #e6c9a8 0%, transparent 60%); }
.scn-scene-host-freedom .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b89a7a 0%, #9a7a5a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); animation: shf-wall 20s ease-in-out infinite alternate; }
.scn-scene-host-freedom .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; }
.scn-scene-host-freedom .window { position:absolute; top:20%; right:15%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 50%, #f0d8b0 0%, #d0b080 80%, transparent 100%); border: 2px solid #5a4a3a; border-radius: 10%; box-shadow: 0 0 20px 10px rgba(240,200,160,.3); animation: shf-window 8s ease-in-out infinite alternate; }
.scn-scene-host-freedom .host   { position:absolute; bottom:20%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: shf-host 5s ease-in-out infinite; }
.scn-scene-host-freedom .coriolanus-fig { position:absolute; bottom:20%; right:25%; width:24px; height:45px; background: linear-gradient(180deg, #6b4c3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: shf-coriolanus 6s ease-in-out infinite 0.5s; }
.scn-scene-host-freedom .table  { position:absolute; bottom:28%; left:40%; width:50px; height:8px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: shf-table 12s ease-in-out infinite alternate; }
.scn-scene-host-freedom .light-ray { position:absolute; top:15%; right:18%; width:80px; height:160px; background: linear-gradient(135deg, rgba(255,230,180,.4) 0%, transparent 100%); transform: rotate(-10deg); animation: shf-light 4s ease-in-out infinite alternate; }
@keyframes shf-wall   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes shf-window { 0% { transform: scaleY(1); opacity:.7 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(1); opacity:.8 } }
@keyframes shf-host   { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes shf-coriolanus { 0% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes shf-table  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes shf-light  { 0% { transform: rotate(-10deg) scaleX(1); opacity:.5 } 50% { transform: rotate(-8deg) scaleX(1.1); opacity:1 } 100% { transform: rotate(-10deg) scaleX(1); opacity:.6 } }

.scn-scene-rome-public-place { background: linear-gradient(180deg, #6a7b8c 0%, #4a5b6c 50%, #3a4b5c 100%), radial-gradient(ellipse at 80% 20%, #7a8b9c 0%, transparent 70%); }
.scn-scene-rome-public-place .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a8b9c 0%, #5a6b7c 100%); animation: srp-sky 20s ease-in-out infinite alternate; }
.scn-scene-rome-public-place .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a5b6c 0%, #2a3b4c 100%); border-radius: 40% 30% 0 0; box-shadow: inset 0 8px 24px rgba(0,0,0,.5); animation: srp-ground 15s ease-in-out infinite alternate; }
.scn-scene-rome-public-place .col-l  { position:absolute; bottom:20%; left:15%; width:12px; height:100px; background: linear-gradient(180deg, #8a9aab 0%, #6a7a8b 100%); border-radius: 2px; box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: srp-column-l 12s ease-in-out infinite; }
.scn-scene-rome-public-place .col-r  { position:absolute; bottom:20%; right:15%; width:12px; height:100px; background: linear-gradient(180deg, #8a9aab 0%, #6a7a8b 100%); border-radius: 2px; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: srp-column-r 12s ease-in-out infinite 2s; }
.scn-scene-rome-public-place .menenius { position:absolute; bottom:25%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srp-menenius 4s ease-in-out infinite; }
.scn-scene-rome-public-place .tribune1 { position:absolute; bottom:25%; right:35%; width:20px; height:50px; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srp-tribune1 5s ease-in-out infinite 1s; }
.scn-scene-rome-public-place .tribune2 { position:absolute; bottom:25%; left:48%; width:18px; height:48px; background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srp-tribune2 6s ease-in-out infinite 0.5s; }
.scn-scene-rome-public-place .shadow  { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); animation: srp-shadow 10s ease-in-out infinite alternate; }
@keyframes srp-sky    { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes srp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes srp-column-l { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes srp-column-r { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes srp-menenius { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes srp-tribune1 { 0% { transform: rotate(0deg) } 25% { transform: rotate(-4deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(0deg) } }
@keyframes srp-tribune2 { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes srp-shadow  { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }

/* coriolanus-curses-rome */
.scn-coriolanus-curses-rome {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #3d2b24 50%, #1e140f 100%),
    radial-gradient(circle at 60% 20%, #c28a5a 0%, transparent 70%);
}
.scn-coriolanus-curses-rome .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%);
  border-radius: 0 0 20% 20%;
  animation: crc-wall 12s ease-in-out infinite alternate;
}
.scn-coriolanus-curses-rome .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3d2e24 0%, #1e140e 100%);
  border-radius: 30% 30% 0 0 / 80% 80% 0 0;
  filter: blur(2px);
}
.scn-coriolanus-curses-rome .window {
  position: absolute; top: 15%; left: 55%; width: 80px; height: 120px;
  background: radial-gradient(circle at 50% 50%, #fad6a0 0%, #d49c5a 50%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 60px 20px #d49c5a, 0 0 120px 40px rgba(212,156,90,0.4);
  animation: crc-window 6s ease-in-out infinite alternate;
}
.scn-coriolanus-curses-rome .light-beam {
  position: absolute; top: 10%; left: 45%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(250,214,160,0.5) 0%, transparent 70%);
  transform-origin: top left;
  animation: crc-beam 4s ease-in-out infinite alternate;
}
.scn-coriolanus-curses-rome .pillar-left {
  position: absolute; bottom: 15%; left: 10%; width: 40px; height: 200px;
  background: linear-gradient(90deg, #5a4030 0%, #3a2820 50%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 8px 0 12px rgba(0,0,0,0.6);
}
.scn-coriolanus-curses-rome .pillar-right {
  position: absolute; bottom: 15%; right: 10%; width: 40px; height: 200px;
  background: linear-gradient(90deg, #2a1a10 0%, #3a2820 50%, #5a4030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -8px 0 12px rgba(0,0,0,0.6);
}
.scn-coriolanus-curses-rome .figure-cursor {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crc-figure 5s ease-in-out infinite;
}
.scn-coriolanus-curses-rome .crowd-blur {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 100px;
  background: linear-gradient(90deg, transparent 0%, rgba(30,20,15,0.6) 20%, rgba(30,20,15,0.6) 80%, transparent 100%);
  filter: blur(8px);
  border-radius: 50% 50% 0 0;
  animation: crc-crowd 3s ease-in-out infinite alternate;
}
@keyframes crc-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes crc-window { 0% { box-shadow: 0 0 40px 15px #d49c5a, 0 0 80px 30px rgba(212,156,90,0.3); } 50% { box-shadow: 0 0 80px 30px #fad6a0, 0 0 160px 50px rgba(250,214,160,0.5); } 100% { box-shadow: 0 0 50px 20px #d49c5a, 0 0 100px 40px rgba(212,156,90,0.35); } }
@keyframes crc-beam { 0% { transform: translateX(0) scaleY(1); opacity: 0.3; } 50% { transform: translateX(20px) scaleY(1.05); opacity: 0.7; } 100% { transform: translateX(-10px) scaleY(0.95); opacity: 0.4; } }
@keyframes crc-figure { 0% { transform: translate(0,0) rotate(-3deg); } 25% { transform: translate(8px,-4px) rotate(4deg); } 50% { transform: translate(16px,0) rotate(-2deg); } 75% { transform: translate(24px,-2px) rotate(5deg); } 100% { transform: translate(32px,0) rotate(0deg); } }
@keyframes crc-crowd { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.03); } 100% { transform: translateY(0) scaleX(0.97); } }

/* crowd-rejoices */
.scn-crowd-rejoices {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #4a3528 50%, #1e140f 100%),
    radial-gradient(circle at 40% 30%, #e0b080 0%, transparent 60%);
}
.scn-crowd-rejoices .bg-wall-rejoice {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%);
  border-radius: 0 0 30% 30%;
  animation: crj-wall 10s ease-in-out infinite alternate;
}
.scn-crowd-rejoices .bg-floor-rejoice {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3d2e24 0%, #1e140e 100%);
  border-radius: 40% 40% 0 0 / 90% 90% 0 0;
  filter: blur(1px);
}
.scn-crowd-rejoices .window-rejoice {
  position: absolute; top: 20%; right: 15%; width: 60px; height: 90px;
  background: radial-gradient(circle at 50% 50%, #ffe0a0 0%, #d49c5a 60%, transparent 100%);
  border-radius: 15% 15% 5% 5%;
  box-shadow: 0 0 40px 12px #d49c5a, 0 0 80px 25px rgba(212,156,90,0.3);
  animation: crj-window 5s ease-in-out infinite alternate;
}
.scn-crowd-rejoices .light-beam-rejoice {
  position: absolute; top: 15%; left: 40%; width: 100px; height: 180px;
  background: linear-gradient(135deg, rgba(255,224,160,0.4) 0%, transparent 60%);
  transform-origin: top left;
  animation: crj-beam 3s ease-in-out infinite alternate;
}
.scn-crowd-rejoices .crowd-group {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 120px;
  background: linear-gradient(90deg, transparent 0%, rgba(30,20,15,0.7) 15%, rgba(30,20,15,0.7) 85%, transparent 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(5px);
  animation: crj-crowd 2s ease-in-out infinite alternate;
}
.scn-crowd-rejoices .caps-1 {
  position: absolute; bottom: 45%; left: 25%; width: 14px; height: 14px;
  background: radial-gradient(circle, #a67c52 0%, #5a4030 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: crj-cap1 3s ease-in-out infinite;
}
.scn-crowd-rejoices .caps-2 {
  position: absolute; bottom: 40%; right: 30%; width: 16px; height: 16px;
  background: radial-gradient(circle, #b88a60 0%, #4a3528 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: crj-cap2 3.5s ease-in-out infinite 0.5s;
}
.scn-crowd-rejoices .figure-leader {
  position: absolute; bottom: 30%; left: 45%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crj-leader 4s ease-in-out infinite;
}
@keyframes crj-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes crj-window { 0% { box-shadow: 0 0 20px 8px #d49c5a, 0 0 40px 15px rgba(212,156,90,0.2); } 50% { box-shadow: 0 0 60px 20px #ffe0a0, 0 0 120px 40px rgba(255,224,160,0.5); } 100% { box-shadow: 0 0 30px 12px #d49c5a, 0 0 60px 20px rgba(212,156,90,0.25); } }
@keyframes crj-beam { 0% { transform: translateX(0) scaleY(1); opacity: 0.5; } 50% { transform: translateX(15px) scaleY(1.1); opacity: 0.8; } 100% { transform: translateX(-10px) scaleY(0.9); opacity: 0.4; } }
@keyframes crj-crowd { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes crj-cap1 { 0% { transform: translate(0,0) rotate(0deg); opacity: 0; } 20% { opacity: 1; } 40% { transform: translate(20px,-40px) rotate(60deg); opacity: 0.8; } 60% { transform: translate(40px,-20px) rotate(120deg); opacity: 0.6; } 80% { transform: translate(60px,-50px) rotate(180deg); opacity: 0.3; } 100% { transform: translate(80px,-30px) rotate(240deg); opacity: 0; } }
@keyframes crj-cap2 { 0% { transform: translate(0,0) rotate(0deg); opacity: 0; } 20% { opacity: 1; } 40% { transform: translate(-20px,-50px) rotate(-60deg); opacity: 0.8; } 60% { transform: translate(-40px,-30px) rotate(-120deg); opacity: 0.6; } 80% { transform: translate(-60px,-60px) rotate(-180deg); opacity: 0.3; } 100% { transform: translate(-80px,-40px) rotate(-240deg); opacity: 0; } }
@keyframes crj-leader { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(10px,-3px) rotate(3deg); } 50% { transform: translate(20px,0) rotate(-1deg); } 75% { transform: translate(30px,-2px) rotate(4deg); } 100% { transform: translate(40px,0) rotate(0deg); } }

/* farewell-at-gate */
.scn-farewell-at-gate {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #fceabb 60%, #f8b878 100%),
    radial-gradient(ellipse at 50% 100%, #f8b878 0%, transparent 70%);
}
.scn-farewell-at-gate .sky-sun {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7ec8e3 0%, #fceabb 100%);
  animation: fwg-sky 15s ease-in-out infinite alternate;
}
.scn-farewell-at-gate .ground-sun {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d4a373 0%, #b2845c 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2);
}
.scn-farewell-at-gate .gate-arch {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #8a6d52 0%, #a08060 30%, #c0a080 50%, #a08060 70%, #8a6d52 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: fwg-gate 8s ease-in-out infinite alternate;
}
.scn-farewell-at-gate .wall-left {
  position: absolute; bottom: 15%; left: 5%; width: 40%; height: 150px;
  background: linear-gradient(90deg, #7a5d42 0%, #9a7d62 50%, #8a6d52 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -10px 0 15px rgba(0,0,0,0.3);
}
.scn-farewell-at-gate .wall-right {
  position: absolute; bottom: 15%; right: 5%; width: 40%; height: 150px;
  background: linear-gradient(90deg, #8a6d52 0%, #9a7d62 50%, #7a5d42 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 10px 0 15px rgba(0,0,0,0.3);
}
.scn-farewell-at-gate .figure-center {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fwg-figc 5s ease-in-out infinite;
}
.scn-farewell-at-gate .figure-left {
  position: absolute; bottom: 30%; left: 35%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fwg-figl 6s ease-in-out infinite 0.5s;
}
.scn-farewell-at-gate .figure-right {
  position: absolute; bottom: 30%; right: 35%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fwg-figr 6s ease-in-out infinite 1s;
}
.scn-farewell-at-gate .shadow-creep {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 40px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 20%, rgba(0,0,0,0.5) 80%, transparent 100%);
  filter: blur(4px);
  border-radius: 50%;
  animation: fwg-shadow 10s ease-in-out infinite alternate;
}
@keyframes fwg-sky { 0% { opacity: 0.8; background-position: 0% 0%; } 50% { opacity: 1; background-position: 50% 0%; } 100% { opacity: 0.9; background-position: 100% 0%; } }
@keyframes fwg-gate { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes fwg-figc { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(3deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fwg-figl { 0% { transform: rotate(-3deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: translateY(-1px) rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes fwg-figr { 0% { transform: rotate(3deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: rotate(1deg); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes fwg-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.6; } 50% { transform: translateX(10px) scaleX(1.1); opacity: 0.8; } 100% { transform: translateX(-10px) scaleX(0.9); opacity: 0.5; } }

/* volumnia-laments */
.scn-volumnia-laments {
  background: 
    linear-gradient(180deg, #fceabb 0%, #f8b878 50%, #d48c5a 100%),
    radial-gradient(ellipse at 30% 20%, #fceabb 0%, transparent 60%);
}
.scn-volumnia-laments .sky-lament {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0d0e8 0%, #fceabb 100%);
  animation: vlm-sky 20s ease-in-out infinite alternate;
}
.scn-volumnia-laments .ground-lament {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8845c 0%, #8a5a3a 100%);
  border-radius: 30% 30% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-volumnia-laments .pillar-lament {
  position: absolute; bottom: 20%; right: 10%; width: 30px; height: 180px;
  background: linear-gradient(90deg, #7a5d42 0%, #9a7d62 50%, #7a5d42 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -6px 0 10px rgba(0,0,0,0.4);
  animation: vlm-pillar 12s ease-in-out infinite alternate;
}
.scn-volumnia-laments .figure-volumnia {
  position: absolute; bottom: 35%; left: 35%; width: 44px; height: 90px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: vlm-figure 6s ease-in-out infinite;
}
.scn-volumnia-laments .veil-drape {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(180deg, rgba(250,240,230,0.4) 0%, rgba(250,240,230,0.1) 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(3px);
  animation: vlm-veil 8s ease-in-out infinite alternate;
}
.scn-volumnia-laments .light-rays {
  position: absolute; top: 10%; left: 20%; width: 150px; height: 250px;
  background: linear-gradient(135deg, rgba(255,224,160,0.3) 0%, transparent 60%);
  transform-origin: top left;
  animation: vlm-rays 5s ease-in-out infinite alternate;
}
.scn-volumnia-laments .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 30%, rgba(255,224,160,0.08) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(255,224,160,0.05) 0%, transparent 50%),
              radial-gradient(circle at 30% 70%, rgba(255,224,160,0.04) 0%, transparent 50%);
  background-size: 200px 200px, 150px 150px, 180px 180px;
  animation: vlm-dust 40s linear infinite;
}
@keyframes vlm-sky { 0% { opacity: 0.8; background-position: 0% 0%; } 50% { opacity: 1; background-position: 50% 0%; } 100% { opacity: 0.9; background-position: 100% 0%; } }
@keyframes vlm-pillar { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes vlm-figure { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-4px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes vlm-veil { 0% { transform: translateX(0) rotate(-5deg); opacity: 0.4; } 50% { transform: translateX(8px) rotate(5deg); opacity: 0.7; } 100% { transform: translateX(-4px) rotate(-2deg); opacity: 0.5; } }
@keyframes vlm-rays { 0% { transform: translateX(0) scaleY(1); opacity: 0.3; } 50% { transform: translateX(15px) scaleY(1.05); opacity: 0.6; } 100% { transform: translateX(-10px) scaleY(0.95); opacity: 0.4; } }
@keyframes vlm-dust { 0% { transform: translateY(0); } 100% { transform: translateY(-500px); } }

/* --- menenius-despair --- */
.scn-menenius-despair {
  background: linear-gradient(180deg, #f2d8a0 0%, #c89a5a 40%, #7a5020 80%, #3a1a0a 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255, 215, 140, 0.4) 0%, transparent 70%);
}
.scn-menenius-despair .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f7e6c4 0%, #e3b77a 60%, transparent 100%);
  animation: md-sky 14s ease-in-out infinite alternate;
}
.scn-menenius-despair .sun {
  position: absolute;
  top: 5%;
  left: 70%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #ffecb0 0%, #f2c850 50%, transparent 70%);
  border-radius: 50%;
  animation: md-sun 6s ease-in-out infinite alternate;
}
.scn-menenius-despair .hills {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #6b4a2a 0%, #3a2a12 100%);
  border-radius: 40% 70% 0 0 / 80% 60% 0 0;
  animation: md-hills 20s ease-in-out infinite alternate;
}
.scn-menenius-despair .dragon-body {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 120px;
  height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #2a1a08 0%, #0f0802 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: md-dragon 8s ease-in-out infinite;
}
.scn-menenius-despair .dragon-wing-l {
  position: absolute;
  bottom: 55%;
  left: 40%;
  width: 80px;
  height: 40px;
  background: #1a0e04;
  border-radius: 50% 20% 50% 50% / 50% 30% 70% 50%;
  transform-origin: right center;
  animation: md-wing-l 4s ease-in-out infinite;
}
.scn-menenius-despair .dragon-wing-r {
  position: absolute;
  bottom: 55%;
  right: 40%;
  width: 80px;
  height: 40px;
  background: #1a0e04;
  border-radius: 20% 50% 50% 50% / 30% 50% 50% 70%;
  transform-origin: left center;
  animation: md-wing-r 4s ease-in-out infinite 0.2s;
}
.scn-menenius-despair .mother {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 14px;
  height: 24px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: md-mother 10s ease-in-out infinite;
}
@keyframes md-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes md-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 6px rgba(242,200,80,0.6); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 15px rgba(242,200,80,0.8); } 100% { transform: scale(1); box-shadow: 0 0 40px 10px rgba(242,200,80,0.7); } }
@keyframes md-hills { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(0.97); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes md-dragon { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-8px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes md-wing-l { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes md-wing-r { 0% { transform: rotate(20deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(20deg); } }
@keyframes md-mother { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }

/* --- menenius-dragon --- */
.scn-menenius-dragon {
  background: linear-gradient(180deg, #eac48a 0%, #c89850 40%, #8a5a28 80%, #3a1a08 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255, 200, 100, 0.3) 0%, transparent 60%);
}
.scn-menenius-dragon .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5ddb0 0%, #d4a86a 50%, transparent 100%);
  animation: mdr-sky 10s ease-in-out infinite alternate;
}
.scn-menenius-dragon .mountains {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a12 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  animation: mdr-mountains 25s ease-in-out infinite alternate;
}
.scn-menenius-dragon .dragon-head {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 160px;
  height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  animation: mdr-head 6s ease-in-out infinite;
}
.scn-menenius-dragon .dragon-eye {
  position: absolute;
  bottom: 50%;
  left: 60%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #ffd060 0%, #c08030 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #c08030, 0 0 80px 24px rgba(192,128,48,0.5);
  animation: mdr-eye 3s ease-in-out infinite alternate;
}
.scn-menenius-dragon .dragon-jaw {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 100px;
  height: 50px;
  transform: translateX(-50%);
  background: #0a0502;
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: mdr-jaw 4s ease-in-out infinite;
}
.scn-menenius-dragon .ground-crack {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 8%;
  background: linear-gradient(90deg, transparent 0%, #4a2a12 20%, transparent 40%, #4a2a12 60%, transparent 80%);
  animation: mdr-crack 2s ease-in-out infinite alternate;
}
.scn-menenius-dragon .particles {
  position: absolute;
  top: 10%;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at 20% 30%, rgba(200,160,80,0.3) 0%, transparent 8%),
              radial-gradient(circle at 70% 60%, rgba(200,160,80,0.2) 0%, transparent 6%);
  animation: mdr-particles 3s ease-in-out infinite;
}
@keyframes mdr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mdr-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mdr-head { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes mdr-eye { 0% { box-shadow: 0 0 20px 6px rgba(192,128,48,0.5); opacity: 0.8; } 50% { box-shadow: 0 0 50px 18px rgba(255,208,96,0.7); opacity: 1; } 100% { box-shadow: 0 0 30px 10px rgba(192,128,48,0.5); opacity: 0.9; } }
@keyframes mdr-jaw { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes mdr-crack { 0% { opacity: 0.3; } 100% { opacity: 1; } }
@keyframes mdr-particles { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(1); } }

/* --- menenius-godlike --- */
.scn-menenius-godlike {
  background: linear-gradient(180deg, #fff2d6 0%, #eac68a 40%, #c89850 70%, #8a5a28 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255, 250, 230, 0.5) 0%, transparent 80%);
}
.scn-menenius-godlike .heaven {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fff8e8 0%, #edd6aa 60%, transparent 100%);
  animation: mg-heaven 12s ease-in-out infinite alternate;
}
.scn-menenius-godlike .ray-l {
  position: absolute;
  top: 5%;
  left: 15%;
  width: 8px;
  height: 60%;
  background: linear-gradient(180deg, rgba(255, 235, 180, 0.8) 0%, transparent 100%);
  transform: rotate(-25deg);
  transform-origin: top center;
  border-radius: 4px;
  animation: mg-ray 8s ease-in-out infinite;
}
.scn-menenius-godlike .ray-r {
  position: absolute;
  top: 5%;
  right: 15%;
  width: 8px;
  height: 60%;
  background: linear-gradient(180deg, rgba(255, 235, 180, 0.8) 0%, transparent 100%);
  transform: rotate(25deg);
  transform-origin: top center;
  border-radius: 4px;
  animation: mg-ray 8s ease-in-out infinite 0.5s;
}
.scn-menenius-godlike .throne {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 100px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a12 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
}
.scn-menenius-godlike .figure {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 40px;
  height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mg-figure 9s ease-in-out infinite;
}
.scn-menenius-godlike .halo {
  position: absolute;
  bottom: 52%;
  left: 50%;
  width: 50px;
  height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe8a0 0%, #f0c060 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(240, 192, 96, 0.5);
  animation: mg-halo 4s ease-in-out infinite alternate;
}
@keyframes mg-heaven { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mg-ray { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.3; } }
@keyframes mg-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes mg-halo { 0% { box-shadow: 0 0 20px 8px rgba(240, 192, 96, 0.3); opacity: 0.7; } 50% { box-shadow: 0 0 60px 25px rgba(255, 232, 160, 0.6); opacity: 1; } 100% { box-shadow: 0 0 30px 12px rgba(240, 192, 96, 0.3); opacity: 0.8; } }

/* --- messenger-news --- */
.scn-messenger-news {
  background: linear-gradient(180deg, #c8d8f0 0%, #a0b8d8 40%, #7088a8 70%, #40586a 100%),
              radial-gradient(ellipse at 80% 20%, rgba(255, 240, 200, 0.3) 0%, transparent 60%);
}
.scn-messenger-news .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8f0ff 0%, #b0c8e0 50%, transparent 100%);
  animation: mn-sky 12s ease-in-out infinite alternate;
}
.scn-messenger-news .sun {
  position: absolute;
  top: 5%;
  left: 85%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #fff8d0 0%, #e8c860 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #e8c860;
  animation: mn-sun 2s ease-in-out infinite alternate;
}
.scn-messenger-news .house {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 80px;
  height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-messenger-news .house::before {
  content: '';
  position: absolute;
  top: -20px;
  left: 0;
  width: 80px;
  height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 50% 50% 0 0;
}
.scn-messenger-news .mob-left {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 60px;
  height: 30px;
  background: radial-gradient(circle at 20% 50%, #2a1a0a 0%, transparent 60%);
  animation: mn-mob 0.6s ease-in-out infinite alternate;
}
.scn-messenger-news .mob-right {
  position: absolute;
  bottom: 18%;
  right: 25%;
  width: 70px;
  height: 35px;
  background: radial-gradient(circle at 80% 50%, #2a1a0a 0%, transparent 60%);
  animation: mn-mob 0.6s ease-in-out infinite alternate 0.3s;
}
.scn-messenger-news .tribune {
  position: absolute;
  bottom: 18%;
  left: 48%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: mn-tribune 0.8s ease-in-out infinite alternate;
}
.scn-messenger-news .dust {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at 30% 20%, rgba(180,160,120,0.15) 0%, transparent 5%),
              radial-gradient(circle at 70% 50%, rgba(180,160,120,0.1) 0%, transparent 4%);
  animation: mn-dust 2s ease-in-out infinite;
}
@keyframes mn-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mn-sun { 0% { transform: scale(0.9); box-shadow: 0 0 10px 4px #e8c860; } 50% { transform: scale(1.1); box-shadow: 0 0 30px 12px #ffd880; } 100% { transform: scale(1); box-shadow: 0 0 20px 8px #e8c860; } }
@keyframes mn-mob { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mn-tribune { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes mn-dust { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-volumnia-begs-son {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a0e 50%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-volumnia-begs-son .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: vbs-floor 12s ease-in-out infinite alternate;
}
.scn-volumnia-begs-son .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 5% 5%;
  animation: vbs-wall 8s ease-in-out infinite alternate;
}
.scn-volumnia-begs-son .pillar {
  position: absolute; left: 20%; bottom: 40%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,.5);
  animation: vbs-pillar 6s ease-in-out infinite;
}
.scn-volumnia-begs-son .mother {
  position: absolute; left: 30%; bottom: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vbs-mother 4s ease-in-out infinite;
}
.scn-volumnia-begs-son .son {
  position: absolute; right: 25%; bottom: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: vbs-son 4s ease-in-out infinite;
}
.scn-volumnia-begs-son .lantern {
  position: absolute; left: 45%; bottom: 50%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(255,208,128,.6);
  animation: vbs-lantern 3s ease-in-out infinite alternate;
}
@keyframes vbs-floor {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.98) translateY(2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes vbs-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes vbs-pillar {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes vbs-mother {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes vbs-son {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes vbs-lantern {
  0% { box-shadow: 0 0 20px 4px rgba(255,208,128,.5); opacity: 0.8; }
  50% { box-shadow: 0 0 32px 12px rgba(255,208,128,.8); opacity: 1; }
  100% { box-shadow: 0 0 24px 6px rgba(255,208,128,.6); opacity: 0.9; }
}

.scn-cominius-advises {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a0a 50%, #0a0505 100%),
              radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-cominius-advises .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  animation: cmn-floor 10s ease-in-out infinite alternate;
}
.scn-cominius-advises .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a0a 80%);
  animation: cmn-wall 6s ease-in-out infinite alternate;
}
.scn-cominius-advises .table {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  animation: cmn-table 8s ease-in-out infinite;
}
.scn-cominius-advises .advisor {
  position: absolute; left: 30%; bottom: 38%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cmn-advisor 4s ease-in-out infinite;
}
.scn-cominius-advises .senator {
  position: absolute; right: 30%; bottom: 38%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cmn-senator 5s ease-in-out infinite;
}
.scn-cominius-advises .candle {
  position: absolute; left: 47%; bottom: 42%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #f5d6a0 0%, #b08040 80%);
  border-radius: 20%;
  box-shadow: 0 0 16px 4px rgba(255,208,128,.5);
  animation: cmn-candle 2s ease-in-out infinite alternate;
}
.scn-cominius-advises .scroll {
  position: absolute; left: 48%; bottom: 32%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #d4c4a0 0%, #b0a080 100%);
  border-radius: 10%;
  animation: cmn-scroll 7s ease-in-out infinite;
}
@keyframes cmn-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97) translateY(1px); }
  100% { transform: scaleY(1); }
}
@keyframes cmn-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes cmn-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes cmn-advisor {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes cmn-senator {
  0% { transform: rotate(2deg); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(2deg); }
}
@keyframes cmn-candle {
  0% { box-shadow: 0 0 12px 2px rgba(255,208,128,.4); opacity: 0.9; }
  50% { box-shadow: 0 0 24px 8px rgba(255,208,128,.7); opacity: 1; }
  100% { box-shadow: 0 0 16px 4px rgba(255,208,128,.5); opacity: 0.9; }
}
@keyframes cmn-scroll {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-5deg) scaleY(1); }
}

.scn-coriolanus-agrees-compromise {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 50%, #050505 100%),
              radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, transparent 80%);
}
.scn-coriolanus-agrees-compromise .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: cac-floor 14s ease-in-out infinite alternate;
}
.scn-coriolanus-agrees-compromise .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: cac-wall 9s ease-in-out infinite alternate;
}
.scn-coriolanus-agrees-compromise .figure {
  position: absolute; left: 50%; bottom: 25%; width: 20%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(0,0,0,.8);
  animation: cac-figure 5s ease-in-out infinite;
}
.scn-coriolanus-agrees-compromise .sconce {
  position: absolute; left: 50%; top: 20%; width: 12%; height: 12%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #4a3a2a 0%, #1a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(180,140,80,.3);
  animation: cac-sconce 6s ease-in-out infinite;
}
.scn-coriolanus-agrees-compromise .light-beam {
  position: absolute; left: 45%; top: 0; width: 10%; height: 70%;
  background: linear-gradient(180deg, rgba(255,200,150,0.4) 0%, rgba(255,200,150,0) 100%);
  clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%);
  animation: cac-beam 8s ease-in-out infinite alternate;
}
.scn-coriolanus-agrees-compromise .shadow {
  position: absolute; left: 50%; bottom: 10%; width: 30%; height: 15%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: cac-shadow 5s ease-in-out infinite;
}
@keyframes cac-floor {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.97) translateY(2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cac-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes cac-figure {
  0% { transform: translateX(-50%) rotate(-2deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(-2deg) scaleY(1); }
}
@keyframes cac-sconce {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.8; }
}
@keyframes cac-beam {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}
@keyframes cac-shadow {
  0% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleX(1.1) scaleY(0.9); opacity: 0.4; }
  100% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.6; }
}

.scn-tribunes-prepare-accusation {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #a09070 100%),
              radial-gradient(ellipse at 70% 20%, #f0e0b0 0%, transparent 60%);
}
.scn-tribunes-prepare-accusation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: tbp-floor 12s ease-in-out infinite alternate;
}
.scn-tribunes-prepare-accusation .backwall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  animation: tbp-wall 8s ease-in-out infinite alternate;
}
.scn-tribunes-prepare-accusation .column-left {
  position: absolute; left: 15%; bottom: 30%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #c8b898 0%, #a09070 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,.2);
  animation: tbp-column 7s ease-in-out infinite;
}
.scn-tribunes-prepare-accusation .column-right {
  position: absolute; right: 15%; bottom: 30%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #c8b898 0%, #a09070 100%);
  border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,.2);
  animation: tbp-column 7s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-tribunes-prepare-accusation .tribune-left {
  position: absolute; left: 28%; bottom: 35%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #d4b080 0%, #b09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tbp-figure 5s ease-in-out infinite;
}
.scn-tribunes-prepare-accusation .tribune-right {
  position: absolute; right: 28%; bottom: 35%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tbp-figure 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-tribunes-prepare-accusation .scroll {
  position: absolute; left: 46%; bottom: 42%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #f0e0b0 0%, #d0c0a0 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: tbp-scroll 6s ease-in-out infinite;
}
.scn-tribunes-prepare-accusation .sunlight {
  position: absolute; left: 35%; top: 0; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(255,255,200,0.5) 0%, rgba(255,255,200,0) 100%);
  clip-path: polygon(20% 0, 80% 0, 65% 100%, 35% 100%);
  animation: tbp-sun 10s ease-in-out infinite alternate;
}
@keyframes tbp-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98) translateY(1px); }
  100% { transform: scaleY(1); }
}
@keyframes tbp-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes tbp-column {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes tbp-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes tbp-scroll {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(8deg) scaleY(1.05); }
  100% { transform: rotate(-8deg) scaleY(1); }
}
@keyframes tbp-sun {
  0% { opacity: 0.4; transform: skewX(0deg); }
  50% { opacity: 0.8; transform: skewX(-2deg); }
  100% { opacity: 0.4; transform: skewX(0deg); }
}

.scn-cominius-praises-coriolanus {
  background: 
    radial-gradient(ellipse at 50% 30%, #f0c060 0%, #8a5a2a 50%, #3a1a0a 100%),
    linear-gradient(180deg, #7a3a1a 0%, #4a2a1a 100%);
}

.scn-cominius-praises-coriolanus .backdrop {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 80%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: cp-backdrop 16s ease-in-out infinite;
}

.scn-cominius-praises-coriolanus .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a2a1a 0%, #2a0a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}

.scn-cominius-praises-coriolanus .pedestal {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 60px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0a060 0%, #a07030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cp-pedestal 10s ease-in-out infinite alternate;
}

.scn-cominius-praises-coriolanus .figure-back {
  position: absolute;
  bottom: calc(20% + 40px);
  left: 50%;
  width: 40px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: cp-figure 4s ease-in-out infinite;
}

.scn-cominius-praises-coriolanus .light-glow {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 100px;
  height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe080 0%, #f0c060 30%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: cp-light 5s ease-in-out infinite alternate;
}

.scn-cominius-praises-coriolanus .aura {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,80,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cp-aura 8s ease-in-out infinite alternate;
}

@keyframes cp-backdrop {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.95; transform: scaleY(1); }
}

@keyframes cp-pedestal {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}

@keyframes cp-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

@keyframes cp-light {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
}

@keyframes cp-aura {
  0% { opacity: 0.3; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.5; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.3; transform: translateX(-50%) scale(0.95); }
}

.scn-coriolanus-consul-offer {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b68a 50%, #a07a4a 100%),
    radial-gradient(ellipse at 50% 80%, #c8a070 0%, transparent 60%);
}

.scn-coriolanus-consul-offer .throne {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 100px;
  height: 120px;
  background: linear-gradient(180deg, #b8864a 0%, #8a6020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 10px 10px 20px rgba(0,0,0,0.3);
  animation: co-throne 12s ease-in-out infinite alternate;
}

.scn-coriolanus-consul-offer .figure-kneeling {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: co-kneel 4s ease-in-out infinite;
}

.scn-coriolanus-consul-offer .figure-consul {
  position: absolute;
  bottom: 25%;
  right: 25%;
  width: 35px;
  height: 70px;
  background: linear-gradient(180deg, #f0d8b0 0%, #c0a070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: co-consul 6s ease-in-out infinite alternate;
}

.scn-coriolanus-consul-offer .scroll {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 40px;
  height: 12px;
  background: linear-gradient(90deg, #eeddbb 0%, #bbaa88 100%);
  border-radius: 20%;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  animation: co-scroll 8s ease-in-out infinite;
}

.scn-coriolanus-consul-offer .light-source {
  position: absolute;
  top: 10%;
  right: 20%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #fff5e0 0%, #ffe8b0 20%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: co-light 5s ease-in-out infinite alternate;
}

.scn-coriolanus-consul-offer .shadow-shaft {
  position: absolute;
  top: 60%;
  left: 40%;
  width: 120px;
  height: 200px;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.4) 100%);
  transform: skewX(10deg) translateX(-30px);
  filter: blur(10px);
  animation: co-shadow 7s ease-in-out infinite alternate;
}

@keyframes co-throne {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px) rotate(0.5deg); }
  100% { transform: translateY(0); }
}

@keyframes co-kneel {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95) translateY(-2px); }
  100% { transform: scaleY(1); }
}

@keyframes co-consul {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px) rotate(-1deg); }
  100% { transform: translateX(0); }
}

@keyframes co-scroll {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

@keyframes co-light {
  0% { opacity: 0.8; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.9; transform: scale(1); }
}

@keyframes co-shadow {
  0% { opacity: 0.3; transform: skewX(10deg) translateX(-30px); }
  50% { opacity: 0.5; transform: skewX(12deg) translateX(-25px); }
  100% { opacity: 0.3; transform: skewX(10deg) translateX(-30px); }
}

.scn-forum-citizens-debate {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #deb887 100%),
    radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 50%);
}

.scn-forum-citizens-debate .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6bb3e0 0%, #c9e6ff 100%);
  animation: fc-sky 20s ease-in-out infinite alternate;
}

.scn-forum-citizens-debate .columns {
  position: absolute;
  bottom: 30%;
  left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, #c8a882 0%, #a07858 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(10% 0%, 15% 100%, 20% 100%, 25% 0%, 30% 0%, 35% 100%, 40% 100%, 45% 0%, 50% 0%, 55% 100%, 60% 100%, 65% 0%, 70% 0%, 75% 100%, 80% 100%, 85% 0%, 90% 0%, 95% 100%, 100% 0%, 0% 0%);
  animation: fc-columns 30s linear infinite;
}

.scn-forum-citizens-debate .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #c0a080 0%, #8a6840 100%);
}

.scn-forum-citizens-debate .citizen-left {
  position: absolute;
  bottom: 28%;
  left: 15%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: fc-citizen-left 4s ease-in-out infinite;
}

.scn-forum-citizens-debate .citizen-right {
  position: absolute;
  bottom: 28%;
  right: 20%;
  width: 22px;
  height: 45px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: fc-citizen-right 5s ease-in-out infinite;
  animation-delay: 2s;
}

.scn-forum-citizens-debate .sunburst {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, #fff5e0 0%, #ffe8a0 20%, transparent 60%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: fc-sunburst 6s ease-in-out infinite alternate;
}

@keyframes fc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes fc-columns {
  0% { background-position: 0 0; }
  100% { background-position: 100px 0; }
}

@keyframes fc-citizen-left {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes fc-citizen-right {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes fc-sunburst {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}

.scn-coriolanus-in-gown {
  background: 
    linear-gradient(180deg, #f5deb3 0%, #d2b48c 50%, #a0522d 100%),
    radial-gradient(ellipse at 50% 20%, #fffacd 0%, transparent 40%);
}

.scn-coriolanus-in-gown .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87cefa 0%, #b0e0e6 100%);
  animation: cg-sky 15s ease-in-out infinite alternate;
}

.scn-coriolanus-in-gown .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%);
}

.scn-coriolanus-in-gown .gown-figure {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 50px;
  height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #fff0d0 0%, #e0c0a0 40%, #a08060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.3);
  animation: cg-figure 3s ease-in-out infinite;
}

.scn-coriolanus-in-gown .citizen-1 {
  position: absolute;
  bottom: 32%;
  left: 20%;
  width: 25px;
  height: 55px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: cg-citizen1 2.5s ease-in-out infinite;
}

.scn-coriolanus-in-gown .citizen-2 {
  position: absolute;
  bottom: 28%;
  right: 15%;
  width: 25px;
  height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: cg-citizen2 3.5s ease-in-out infinite;
  animation-delay: 1s;
}

.scn-coriolanus-in-gown .shadow-cast {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 200px;
  height: 80px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.1) 100%);
  transform: skewX(-20deg);
  filter: blur(5px);
  animation: cg-shadow 4s ease-in-out infinite alternate;
}

@keyframes cg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes cg-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-5px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

@keyframes cg-citizen1 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0); }
}

@keyframes cg-citizen2 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0); }
}

@keyframes cg-shadow {
  0% { opacity: 0.2; transform: skewX(-20deg) scaleX(1); }
  50% { opacity: 0.5; transform: skewX(-25deg) scaleX(1.1); }
  100% { opacity: 0.2; transform: skewX(-20deg) scaleX(1); }
}

/* scene-marcius-enters - tense, overcast */
.scn-scene-marcius-enters {
  background: linear-gradient(180deg, #2f3640 0%, #353b48 30%, #2d3436 70%), radial-gradient(ellipse at 50% 100%, #2d3436 0%, transparent 70%);
}
.scn-scene-marcius-enters .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #596275 0%, #2f3640 100%);
  animation: sme-sky 20s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a4e54 0%, #2d3436 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: sme-hills 15s ease-in-out infinite alternate;
}
.scn-scene-marcius-enters .gate {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 150px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4e54 0%, #2d3436 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: sme-gate 10s ease-in-out infinite;
}
.scn-scene-marcius-enters .figure {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 50px;
  background: #1e1e1e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sme-figure 4s ease-in-out infinite;
}
.scn-scene-marcius-enters .crowd {
  position: absolute; bottom: 25%; left: 33%; width: 100px; height: 40px;
  background: #1e1e1e;
  border-radius: 60% 60% 30% 30% / 70% 70% 40% 40%;
  animation: sme-crowd 6s ease-in-out infinite;
}
.scn-scene-marcius-enters .lantern {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 8px;
  background: #ffc864;
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(255,200,100,0.3);
  animation: sme-lantern 3s ease-in-out infinite;
}
.scn-scene-marcius-enters .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 140px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  animation: sme-shadow 8s ease-in-out infinite;
}
@keyframes sme-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes sme-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes sme-gate {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(0.5deg); }
  50% { transform: translateX(-50%) rotate(-0.3deg); }
  75% { transform: translateX(-50%) rotate(0.4deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes sme-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(20px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sme-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sme-lantern {
  0% { box-shadow: 0 0 4px 2px rgba(255,200,100,0.3); }
  50% { box-shadow: 0 0 8px 4px rgba(255,200,100,0.6); }
  100% { box-shadow: 0 0 4px 2px rgba(255,200,100,0.3); }
}
@keyframes sme-shadow {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); }
}

/* scene-marcius-news - tense, overcast */
.scn-scene-marcius-news {
  background: linear-gradient(180deg, #40444a 0%, #353a40 40%, #2d3136 100%), radial-gradient(ellipse at 50% 0%, #4a4f55 0%, transparent 60%);
}
.scn-scene-marcius-news .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a6068 0%, #40444a 100%);
  animation: smn-sky 25s ease-in-out infinite alternate;
}
.scn-scene-marcius-news .bg-buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3e44 0%, #2d3136 100%);
  clip-path: polygon(0% 100%, 5% 40%, 15% 100%, 25% 35%, 35% 100%, 50% 20%, 65% 100%, 75% 45%, 85% 100%, 95% 30%, 100% 100%);
  animation: smn-buildings 18s ease-in-out infinite;
}
.scn-scene-marcius-news .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a4e54 0%, #2d3136 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-scene-marcius-news .figure-citizen {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 40px;
  background: #1e1e1e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: smn-citizen 6s ease-in-out infinite;
}
.scn-scene-marcius-news .figure-marcius {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 52px;
  background: #1e1e1e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: smn-marcius 8s ease-in-out infinite;
}
.scn-scene-marcius-news .bowl {
  position: absolute; bottom: 18%; left: 42%; width: 16px; height: 8px;
  background: #5a4a3a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: smn-bowl 4s ease-in-out infinite;
}
@keyframes smn-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes smn-buildings {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes smn-citizen {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes smn-marcius {
  0% { transform: rotate(5deg); }
  25% { transform: rotate(3deg); }
  50% { transform: rotate(7deg); }
  75% { transform: rotate(4deg); }
  100% { transform: rotate(5deg); }
}
@keyframes smn-bowl {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* scene-volscian-news - tense, sunlit */
.scn-scene-volscian-news {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #c2b280 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-scene-volscian-news .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0e0f0 0%, #87CEEB 100%);
  animation: svn-sky 30s ease-in-out infinite alternate;
}
.scn-scene-volscian-news .sun {
  position: absolute; top: 8%; left: 80%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.5);
  animation: svn-sun 8s ease-in-out infinite;
}
.scn-scene-volscian-news .rays {
  position: absolute; top: 8%; left: 80%; width: 100px; height: 100px;
  margin: -25px 0 0 -25px;
  background: conic-gradient(from 0deg, transparent 0deg, rgba(255,215,0,0.1) 30deg, transparent 60deg, rgba(255,215,0,0.1) 90deg, transparent 120deg, rgba(255,215,0,0.1) 150deg, transparent 180deg, rgba(255,215,0,0.1) 210deg, transparent 240deg, rgba(255,215,0,0.1) 270deg, transparent 300deg, rgba(255,215,0,0.1) 330deg, transparent 360deg);
  border-radius: 50%;
  animation: svn-rays 20s linear infinite;
}
.scn-scene-volscian-news .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c2b280 0%, #8B7355 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-scene-volscian-news .tent {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 100px;
  background: linear-gradient(135deg, #d2b48c 0%, #8B7355 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: svn-tent 12s ease-in-out infinite;
}
.scn-scene-volscian-news .figure-messenger {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 48px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: svn-messenger 3s ease-in-out infinite;
}
.scn-scene-volscian-news .figure-marcius {
  position: absolute; bottom: 15%; left: 65%; width: 22px; height: 52px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: svn-marcius 5s ease-in-out infinite;
}
@keyframes svn-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes svn-sun {
  0% { box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); }
  50% { box-shadow: 0 0 60px 30px rgba(255,215,0,0.7); }
  100% { box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); }
}
@keyframes svn-rays {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes svn-tent {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
  100% { transform: scaleX(1); }
}
@keyframes svn-messenger {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(5deg); }
  50% { transform: translateX(20px) rotate(0deg); }
  75% { transform: translateX(10px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes svn-marcius {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}

/* scene-war-council - determined, sunlit */
.scn-scene-war-council {
  background: linear-gradient(180deg, #b0c4de 0%, #f0e68c 40%, #c2b280 100%), radial-gradient(ellipse at 50% 100%, #d2b48c 0%, transparent 60%);
}
.scn-scene-war-council .tent-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d2b48c 0%, #8B7355 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: swc-tent 20s ease-in-out infinite;
}
.scn-scene-war-council .table {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6b4226 0%, #8B5E3C 50%, #6b4226 100%);
  border-radius: 30px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: swc-table 15s ease-in-out infinite;
}
.scn-scene-war-council .figure-cominius {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 56px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: swc-cominius 10s ease-in-out infinite;
}
.scn-scene-war-council .figure-marcius {
  position: absolute; bottom: 25%; left: 48%; width: 22px; height: 54px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: swc-marcius 12s ease-in-out infinite;
}
.scn-scene-war-council .figure-lartius {
  position: absolute; bottom: 25%; left: 58%; width: 20px; height: 50px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: swc-lartius 8s ease-in-out infinite;
}
.scn-scene-war-council .lamp-light {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd700 0%, #ffa500 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,215,0,0.4);
  animation: swc-lamp 5s ease-in-out infinite alternate;
}
.scn-scene-war-council .map {
  position: absolute; bottom: 22%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c2a570 0%, #8B7355 100%);
  border-radius: 10px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: swc-map 20s ease-in-out infinite;
}
@keyframes swc-tent {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes swc-table {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(0.98); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes swc-cominius {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes swc-marcius {
  0% { transform: rotate(5deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(5deg); }
}
@keyframes swc-lartius {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes swc-lamp {
  0% { box-shadow: 0 0 30px 15px rgba(255,215,0,0.4); }
  100% { box-shadow: 0 0 50px 25px rgba(255,215,0,0.6); }
}
@keyframes swc-map {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(0.95); }
  100% { transform: translateX(-50%) scale(1); }
}

.scn-menenius-baits-guard {
  background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 50%, #FFD700 100%), radial-gradient(ellipse at 50% 0%, #FFA500 0%, transparent 70%);
}
.scn-menenius-baits-guard .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%);
  animation: mbg-sky 10s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .sun {
  position: absolute; top: 5%; right: 20%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px #FFD700, 0 0 80px rgba(255,215,0,0.4);
  animation: mbg-sun 6s ease-in-out infinite;
}
.scn-menenius-baits-guard .wall {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #D2B48C, #A0522D);
  border-radius: 5px;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: mbg-wall 12s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .gate {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, #8B4513, #5C4033);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.5), inset 0 -5px 10px rgba(0,0,0,0.3);
  animation: mbg-gate 8s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .guard {
  position: absolute; bottom: 25%; left: 42%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mbg-guard 4s ease-in-out infinite;
}
.scn-menenius-baits-guard .menenius {
  position: absolute; bottom: 25%; left: 58%;
  width: 25px; height: 50px;
  background: linear-gradient(180deg, #D2691E 0%, #8B4513 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mbg-menenius 3s ease-in-out infinite;
}
.scn-menenius-baits-guard .coin {
  position: absolute; bottom: 30%; left: 50%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #FFD700, #DAA520);
  border-radius: 50%;
  box-shadow: 0 0 8px gold, 0 0 16px rgba(255,215,0,0.3);
  animation: mbg-coin 2s ease-in-out infinite alternate;
}
@keyframes mbg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mbg-sun {
  0% { transform: translateX(0) scale(1); box-shadow: 0 0 40px #FFD700, 0 0 80px rgba(255,215,0,0.4); }
  50% { transform: translateX(10px) scale(1.05); box-shadow: 0 0 60px #FFD700, 0 0 120px rgba(255,215,0,0.6); }
  100% { transform: translateX(0) scale(1); box-shadow: 0 0 40px #FFD700, 0 0 80px rgba(255,215,0,0.4); }
}
@keyframes mbg-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mbg-gate {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes mbg-guard {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes mbg-menenius {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-2px); }
  50% { transform: rotate(-5deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mbg-coin {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  50% { transform: translateY(-10px) rotate(180deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(360deg); opacity: 1; }
}

.scn-item-letter-aufidius { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%); }
.scn-item-letter-aufidius .room-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #0a0a1a 0%, #000 100%); animation: aff-bg 15s ease-in-out infinite alternate; }
.scn-item-letter-aufidius .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-item-letter-aufidius .desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:4px; box-shadow:0 -8px 20px rgba(0,0,0,.7); }
.scn-item-letter-aufidius .letter { position:absolute; bottom:18%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #d0c0a0 0%, #a08060 100%); transform:rotate(5deg); box-shadow:0 4px 8px rgba(0,0,0,.5); animation: aff-letter 6s ease-in-out infinite; }
.scn-item-letter-aufidius .figure { position:absolute; bottom:15%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: aff-figure 4s ease-in-out infinite; }
.scn-item-letter-aufidius .candle { position:absolute; bottom:18%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #a07040 100%); border-radius:4px 4px 2px 2px; }
.scn-item-letter-aufidius .candle-glow { position:absolute; bottom:18%; left:30%; width:40px; height:40px; transform:translate(-16px,-10px); background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,200,100,0) 70%); animation: aff-glow 2s ease-in-out infinite alternate; }

@keyframes aff-bg { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes aff-letter { 0%,100%{transform:rotate(5deg)} 50%{transform:rotate(-3deg) translateY(-2px)} }
@keyframes aff-figure { 0%{transform:translateX(0) translateY(0) rotate(0)} 25%{transform:translateX(2px) translateY(-1px) rotate(2deg)} 50%{transform:translateX(0) translateY(0) rotate(0)} 75%{transform:translateX(-2px) translateY(-1px) rotate(-2deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes aff-glow { 0%{opacity:0.8;transform:translate(-16px,-10px) scale(1)} 50%{opacity:1;transform:translate(-16px,-10px) scale(1.15)} 100%{opacity:0.7;transform:translate(-16px,-10px) scale(0.95)} }

.scn-item-butterfly-gilded { background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 100%), radial-gradient(circle at 70% 30%, #fff8e0 0%, transparent 60%); }
.scn-item-butterfly-gilded .sunlight { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 100%); animation: gld-sun 10s ease-in-out infinite alternate; }
.scn-item-butterfly-gilded .window { position:absolute; top:10%; right:15%; width:120px; height:160px; background: linear-gradient(180deg, #c0d8f0 0%, #a0c0e0 100%); border:6px solid #8a7050; border-radius:4px; }
.scn-item-butterfly-gilded .chair { position:absolute; bottom:15%; left:25%; width:80px; height:100px; background: linear-gradient(135deg, #b08050 0%, #806040 100%); border-radius:10% 10% 30% 30%; }
.scn-item-butterfly-gilded .woman { position:absolute; bottom:20%; left:28%; width:40px; height:80px; background: linear-gradient(180deg, #d8b888 0%, #b09070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: gld-woman 5s ease-in-out infinite; }
.scn-item-butterfly-gilded .child { position:absolute; bottom:18%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: gld-child 6s ease-in-out infinite; }
.scn-item-butterfly-gilded .basket { position:absolute; bottom:12%; left:22%; width:40px; height:30px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:20% 20% 40% 40%; }
.scn-item-butterfly-gilded .butterfly { position:absolute; top:30%; left:60%; width:20px; height:20px; background: radial-gradient(circle at 50% 50%, #e0b040 0%, #c09020 100%); border-radius:50%; animation: gld-butterfly 8s ease-in-out infinite; box-shadow:0 0 20px 6px rgba(224,176,64,0.4); }
.scn-item-butterfly-gilded .butterfly-glow { position:absolute; top:30%; left:60%; width:60px; height:60px; transform:translate(-20px,-20px); background: radial-gradient(circle, rgba(224,176,64,0.3) 0%, transparent 70%); animation: gld-glow 8s ease-in-out infinite; }

@keyframes gld-sun { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes gld-woman { 0%{transform:translateY(0) rotate(0)} 25%{transform:translateY(-2px) rotate(2deg)} 50%{transform:translateY(0) rotate(0)} 75%{transform:translateY(-1px) rotate(-2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes gld-child { 0%{transform:translateX(0) translateY(0)} 50%{transform:translateX(5px) translateY(-3px)} 100%{transform:translateX(0) translateY(0)} }
@keyframes gld-butterfly { 0%{transform:translate(0,0) rotate(0) scale(1)} 25%{transform:translate(10px,-15px) rotate(45deg) scale(1.1)} 50%{transform:translate(-5px,-10px) rotate(-20deg) scale(0.9)} 75%{transform:translate(15px,-5px) rotate(30deg) scale(1)} 100%{transform:translate(0,0) rotate(0) scale(1)} }
@keyframes gld-glow { 0%{opacity:0.5;transform:translate(-20px,-20px) scale(1)} 50%{opacity:0.8;transform:translate(-20px,-20px) scale(1.3)} 100%{opacity:0.5;transform:translate(-20px,-20px) scale(1)} }

.scn-item-butterfly-gilded {
  background: linear-gradient(180deg, #f9e3b0 0%, #d4a373 50%, #a67c52 100%),
              radial-gradient(ellipse at 30% 20%, #f9d59a 0%, transparent 60%);
}
.scn-item-butterfly-gilded .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,235,190,0.3) 0%, rgba(180,140,100,0.2) 100%);
  animation: gb-wall 14s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .window {
  position: absolute; top: 8%; left: 30%; width: 110px; height: 150px;
  background: linear-gradient(135deg, #fce9c0 0%, #f0d8a8 60%, #b8915a 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: inset 0 0 20px rgba(255,220,160,0.5), 0 0 30px rgba(255,200,100,0.3);
  animation: gb-window 6s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .sunbeam {
  position: absolute; top: 0; left: 20%; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  transform-origin: top left; animation: gb-sunbeam 20s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .butterfly {
  position: absolute; top: 30%; left: 55%; width: 48px; height: 38px;
  background: radial-gradient(circle at 50% 40%, #f5c542 0%, #b8860b 50%, #704214 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(255,215,0,0.6), 0 0 40px 12px rgba(200,150,50,0.3);
  animation: gb-butterfly 4s ease-in-out infinite;
}
.scn-item-butterfly-gilded .hoop {
  position: absolute; bottom: 25%; left: 18%; width: 80px; height: 80px;
  background: radial-gradient(circle, #d4a373 0%, #b0804a 50%, #8a6430 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2), inset 0 -2px 6px rgba(0,0,0,0.1);
  animation: gb-hoop 10s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .hoop::after {
  content: ''; position: absolute; top: 12%; left: 12%; width: 76%; height: 76%;
  background: radial-gradient(circle, #f7e4c0 0%, #e2c596 60%, #c9a77a 100%);
  border-radius: 50%; box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
}
.scn-item-butterfly-gilded .figure {
  position: absolute; bottom: 10%; right: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a3020 0%, #2f1e12 60%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: gb-figure 5s ease-in-out infinite alternate;
}
.scn-item-butterfly-gilded .needle-thread {
  position: absolute; bottom: 32%; left: 25%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #c0a87a 0%, #8a7050 100%);
  border-radius: 40%; transform: rotate(-20deg); animation: gb-needle 3s ease-in-out infinite;
}
@keyframes gb-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gb-window {
  0% { box-shadow: inset 0 0 15px rgba(255,220,160,0.4), 0 0 20px rgba(255,200,100,0.2); }
  50% { box-shadow: inset 0 0 25px rgba(255,240,200,0.7), 0 0 40px rgba(255,220,120,0.5); }
  100% { box-shadow: inset 0 0 18px rgba(255,220,160,0.5), 0 0 28px rgba(255,200,100,0.3); }
}
@keyframes gb-sunbeam {
  0% { transform: rotate(0deg) scaleY(1); opacity: 0.6; }
  50% { transform: rotate(2deg) scaleY(1.05); opacity: 0.9; }
  100% { transform: rotate(-1deg) scaleY(0.95); opacity: 0.7; }
}
@keyframes gb-butterfly {
  0% { transform: translate(0,0) rotate(0deg) scale(1); }
  30% { transform: translate(4px,-6px) rotate(8deg) scale(1.05); }
  60% { transform: translate(-2px,2px) rotate(-4deg) scale(0.95); }
  100% { transform: translate(0,0) rotate(0deg) scale(1); }
}
@keyframes gb-hoop {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes gb-figure {
  0% { transform: translate(0,0) rotate(-1deg); }
  50% { transform: translate(0,-2px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(-1deg); }
}
@keyframes gb-needle {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-18deg) translateX(1px); }
  100% { transform: rotate(-20deg) translateX(0); }
}

.scn-menenius-baits-guard {
  background: linear-gradient(180deg, #f7e7b8 0%, #e2c385 40%, #c99f5c 70%, #9e7138 100%),
              radial-gradient(ellipse at 60% 80%, #d4a373 0%, transparent 60%);
}
.scn-menenius-baits-guard .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a4c2f4 0%, #daf0e0 40%, #f7e7b8 100%);
  animation: mbg-sky 10s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b58d5c 0%, #8b6a3e 60%, #5a4528 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
}
.scn-menenius-baits-guard .gate {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5), 0 4px 12px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateY(-5deg);
  animation: mbg-gate 8s ease-in-out infinite alternate;
}
.scn-menenius-baits-guard .guard {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #b87878 0%, #8a4a4a 80%, #5e1a1d 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mbg-guard 6s ease-in-out infinite;
}
.scn-menenius-baits-guard .menenius {
  position: absolute; bottom: 20%; right: 25%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #f5f0e0 0%, #d9cba0 50%, #b08d5a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: mbg-menenius 4s ease-in-out infinite;
}
.scn-menenius-baits-guard .spear {
  position: absolute; bottom: 40%; left: calc(25% + 18px); width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
  animation: mbg-spear 2s ease-in-out infinite;
}
.scn-menenius-baits-guard .sun {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff4c0 0%, #f0d080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,208,128,0.4);
  animation: mbg-sun 12s ease-in-out infinite alternate;
}
@keyframes mbg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes mbg-gate {
  0% { transform: perspective(600px) rotateY(-5deg) translateY(0); }
  50% { transform: perspective(600px) rotateY(-2deg) translateY(-3px); }
  100% { transform: perspective(600px) rotateY(-5deg) translateY(0); }
}
@keyframes mbg-guard {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-3px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes mbg-menenius {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(-4px) rotate(-3deg) scaleY(1.02); }
  60% { transform: translateX(2px) rotate(2deg) scaleY(0.98); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes mbg-spear {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-6deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mbg-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cup { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.servant { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* menenius-urges-flight */
.scn-menenius-urges-flight {
  background: linear-gradient(180deg, #e8d4a0 0%, #c8a870 40%, #8a6a40 100%), radial-gradient(ellipse at 70% 30%, #ffd080 0%, transparent 60%);
}
.scn-menenius-urges-flight .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #ffe0a0 100%);
  animation: muf-sky 12s ease-in-out infinite alternate;
}
.scn-menenius-urges-flight .sun {
  position: absolute; top: 18%; right: 22%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff4c0 0%, #ffcc66 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,204,102,0.6);
  animation: muf-sun 8s ease-in-out infinite alternate;
}
.scn-menenius-urges-flight .column {
  position: absolute; bottom: 45%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #d2b48c 0%, #a0875c 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: muf-column 6s ease-in-out infinite;
}
.scn-menenius-urges-flight .column.left { left: 30%; }
.scn-menenius-urges-flight .column.right { left: 60%; }
.scn-menenius-urges-flight .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b08050 0%, #6a4a2e 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-menenius-urges-flight .figure {
  position: absolute; bottom: 40%; width: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-menenius-urges-flight .figure.menenius {
  left: 35%; height: 48px;
  transform-origin: bottom center;
  animation: muf-gesture 4s ease-in-out infinite;
}
.scn-menenius-urges-flight .figure.coriolanus {
  left: 55%; height: 52px;
  transform-origin: bottom center;
  animation: muf-turn 5s ease-in-out infinite;
}
.scn-menenius-urges-flight .ray {
  position: absolute; top: 10%; left: 55%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(255,224,160,0.3) 0%, transparent 100%);
  transform: rotate(30deg);
  filter: blur(8px);
  animation: muf-ray 10s ease-in-out infinite alternate;
}
@keyframes muf-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes muf-sun { 0% { transform: scale(1) translate(0,0); } 100% { transform: scale(1.05) translate(4px,-4px); } }
@keyframes muf-column { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes muf-gesture { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(0) rotate(-3deg); } 75% { transform: translateX(-4px) rotate(4deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes muf-turn { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-10px) rotate(-8deg); } }
@keyframes muf-ray { 0% { opacity:0.2; } 100% { opacity:0.6; } }

/* volumnia-urges-dissembling */
.scn-volumnia-urges-dissembling {
  background: linear-gradient(180deg, #1c1612 0%, #2a1f1a 50%, #3a2a22 100%), radial-gradient(ellipse at 50% 100%, #3a2a22 0%, transparent 70%);
}
.scn-volumnia-urges-dissembling .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d3028 0%, #2a1f1a 100%);
  border-radius: 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-volumnia-urges-dissembling .window {
  position: absolute; top: 20%; left: 35%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at center, #b08040 0%, #8a5a20 60%, transparent 100%);
  border: 3px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(176,128,64,0.4);
  animation: vud-glow 4s ease-in-out infinite alternate;
}
.scn-volumnia-urges-dissembling .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
}
.scn-volumnia-urges-dissembling .table {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 6px;
  background: #5a3a1a;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-volumnia-urges-dissembling .figure {
  position: absolute; bottom: 30%; width: 22px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-volumnia-urges-dissembling .figure.volumnia {
  left: 30%; height: 44px;
  transform-origin: bottom center;
  animation: vud-plead 5s ease-in-out infinite;
}
.scn-volumnia-urges-dissembling .figure.coriolanus {
  left: 55%; height: 48px;
  transform-origin: bottom center;
  animation: vud-turn 6s ease-in-out infinite;
}
.scn-volumnia-urges-dissembling .shadow {
  position: absolute; bottom: 30%; left: 20%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(10px);
  animation: vud-shadow 8s ease-in-out infinite alternate;
}
@keyframes vud-glow { 0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(176,128,64,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(176,128,64,0.6); } 100% { opacity:0.8; box-shadow: 0 0 25px 8px rgba(176,128,64,0.4); } }
@keyframes vud-plead { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(8px) rotate(-4deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-6px) rotate(3deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes vud-turn { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-8px) rotate(-6deg); } }
@keyframes vud-shadow { 0% { transform: scaleX(1) translateX(0); } 100% { transform: scaleX(1.2) translateX(10px); } }

/* coriolanus-banished */
.scn-coriolanus-banished {
  background: linear-gradient(180deg, #a0c8e0 0%, #c0d8e8 40%, #e8d8a0 100%), radial-gradient(ellipse at 50% 30%, #ffe080 0%, transparent 60%);
}
.scn-coriolanus-banished .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7ab8d4 0%, #b0d4e8 100%);
  animation: cba-sky 15s ease-in-out infinite alternate;
}
.scn-coriolanus-banished .sun {
  position: absolute; top: 15%; right: 25%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff0b0 0%, #ffcc66 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px rgba(255,204,102,0.5);
  animation: cba-sun 10s ease-in-out infinite alternate;
}
.scn-coriolanus-banished .rostrum {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-coriolanus-banished .figure.coriolanus {
  position: absolute; bottom: 48%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 56px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cba-defy 4s ease-in-out infinite;
}
.scn-coriolanus-banished .crowd {
  position: absolute; bottom: 38%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  filter: blur(3px);
}
.scn-coriolanus-banished .crowd.left { left: 10%; animation: cba-crowd-left 8s ease-in-out infinite; }
.scn-coriolanus-banished .crowd.right { right: 10%; animation: cba-crowd-right 8s ease-in-out infinite reverse; }
.scn-coriolanus-banished .shadow {
  position: absolute; bottom: 40%; left: 45%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: cba-shadow 6s ease-in-out infinite alternate;
}
@keyframes cba-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes cba-sun { 0% { transform: scale(1) translate(0,0); } 100% { transform: scale(1.03) translate(3px,-3px); } }
@keyframes cba-defy { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); } 25% { transform: translateX(-50%) rotate(0) scale(1.02); } 50% { transform: translateX(-50%) rotate(3deg) scale(1); } 75% { transform: translateX(-50%) rotate(-1deg) scale(0.98); } 100% { transform: translateX(-50%) rotate(-2deg) scale(1); } }
@keyframes cba-crowd-left { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(8px) translateY(-4px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cba-crowd-right { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-8px) translateY(-4px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cba-shadow { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.3); } }

/* farewell-and-curses */
.scn-farewell-and-curses {
  background: linear-gradient(180deg, #0e0a08 0%, #1a1210 50%, #2a1a14 100%), radial-gradient(ellipse at 50% 100%, #2a1a14 0%, transparent 70%);
}
.scn-farewell-and-curses .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.8);
}
.scn-farewell-and-curses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%);
}
.scn-farewell-and-curses .doorway {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 100px;
  background: #0a0604;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px rgba(0,0,0,0.5);
}
.scn-farewell-and-curses .lantern {
  position: absolute; bottom: 50%; left: 42%; width: 8px; height: 12px;
  background: #e0a030;
  border-radius: 2px;
  box-shadow: 0 0 30px 15px rgba(224,160,48,0.6);
  animation: fac-lantern 4s ease-in-out infinite alternate;
}
.scn-farewell-and-curses .figure {
  position: absolute; bottom: 30%; width: 20px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-farewell-and-curses .figure.coriolanus {
  left: 48%; height: 50px;
  transform-origin: bottom center;
  animation: fac-leave 6s ease-in-out infinite;
}
.scn-farewell-and-curses .figure.volumnia {
  left: 35%; height: 44px;
  transform-origin: bottom center;
  animation: fac-curse 5s ease-in-out infinite;
}
.scn-farewell-and-curses .figure.menenius {
  left: 62%; height: 42px;
  transform-origin: bottom center;
  animation: fac-mourn 7s ease-in-out infinite;
}
@keyframes fac-lantern { 0% { opacity:0.7; transform: translate(0,0) rotate(-3deg); } 50% { opacity:1; transform: translate(1px,-1px) rotate(3deg); } 100% { opacity:0.8; transform: translate(0,0) rotate(-3deg); } }
@keyframes fac-leave { 0% { transform: translateX(0) rotate(0) scale(1); } 25% { transform: translateX(-10px) rotate(-5deg) scale(0.98); } 50% { transform: translateX(-20px) rotate(0) scale(0.95); } 75% { transform: translateX(-10px) rotate(3deg) scale(0.98); } 100% { transform: translateX(0) rotate(0) scale(1); } }
@keyframes fac-curse { 0%,100% { transform: translateX(0) rotate(0) translateY(0); } 25% { transform: translateX(-5px) rotate(-8deg) translateY(-4px); } 50% { transform: translateX(0) rotate(5deg) translateY(0); } 75% { transform: translateX(5px) rotate(-3deg) translateY(-2px); } }
@keyframes fac-mourn { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(5px) translateY(-3px) rotate(4deg); } }

/* scene 1: naming-coriolanus — warm sunlit camp */
.scn-naming-coriolanus {
  background:
    linear-gradient(180deg, #f5d7a0 0%, #e8b86a 40%, #c8904a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-naming-coriolanus .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fce6b0 0%, #d9a85a 100%);
  animation: nc-sky 12s ease-in-out infinite alternate;
}
.scn-naming-coriolanus .sun {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff4d0 0%, #ffd270 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffd270, 0 0 120px 40px rgba(255,210,112,0.3);
  animation: nc-sun 6s ease-in-out infinite alternate;
}
.scn-naming-coriolanus .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b6a3a 0%, #5a4a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-naming-coriolanus .figure-hero {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nc-hero 4s ease-in-out infinite;
}
.scn-naming-coriolanus .figure-soldier-left {
  position: absolute; bottom: 36%; left: 30%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg) scale(0.95);
  animation: nc-soldier 5s ease-in-out infinite;
}
.scn-naming-coriolanus .figure-soldier-right {
  position: absolute; bottom: 36%; left: 55%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg) scale(0.95);
  animation: nc-soldier 5s ease-in-out infinite 0.5s;
}
.scn-naming-coriolanus .banner {
  position: absolute; bottom: 45%; left: 62%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  transform: skewX(-10deg);
  box-shadow: 0 0 8px 2px rgba(200,85,61,0.3);
  animation: nc-banner 3s ease-in-out infinite alternate;
}
.scn-naming-coriolanus .spear {
  position: absolute; bottom: 30%; left: 60%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(12deg);
  animation: nc-spear 6s ease-in-out infinite;
}
@keyframes nc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes nc-sun { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes nc-hero { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-48%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-52%) translateY(-1px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes nc-soldier { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes nc-banner { 0% { transform: skewX(-10deg) scaleY(1); } 50% { transform: skewX(-5deg) scaleY(1.02); } 100% { transform: skewX(-12deg) scaleY(0.98); } }
@keyframes nc-spear { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(14deg) translateY(0); } }

/* scene 2: menenius-tribunes-argument — tense sunlit forum */
.scn-menenius-tribunes-argument {
  background:
    linear-gradient(180deg, #d4c8a0 0%, #b8a880 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 100%, #6a5a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-menenius-tribunes-argument .wall-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
  animation: mt-wall 10s ease-in-out infinite alternate;
}
.scn-menenius-tribunes-argument .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-menenius-tribunes-argument .column-left {
  position: absolute; bottom: 0; left: 15%; width: 20px; height: 70%;
  background: linear-gradient(90deg, #a09070 0%, #c8b898 30%, #a09070 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 4px rgba(0,0,0,0.3);
  animation: mt-column 8s ease-in-out infinite;
}
.scn-menenius-tribunes-argument .column-right {
  position: absolute; bottom: 0; right: 15%; width: 20px; height: 70%;
  background: linear-gradient(90deg, #a09070 0%, #c8b898 30%, #a09070 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 4px rgba(0,0,0,0.3);
  animation: mt-column 8s ease-in-out infinite 2s;
}
.scn-menenius-tribunes-argument .menenius {
  position: absolute; bottom: 20%; left: 35%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(8deg);
  animation: mt-figure 4s ease-in-out infinite;
}
.scn-menenius-tribunes-argument .tribune-brutus {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: mt-figure 4s ease-in-out infinite 0.8s;
}
.scn-menenius-tribunes-argument .tribune-sicinius {
  position: absolute; bottom: 22%; left: 58%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: mt-figure 4s ease-in-out infinite 1.2s;
}
.scn-menenius-tribunes-argument .shadow-fall {
  position: absolute; bottom: 0; left: 30%; width: 60%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
  animation: mt-shadow 6s ease-in-out infinite alternate;
}
@keyframes mt-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mt-column { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes mt-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mt-shadow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }

/* scene 3: item-oaken-garland — warm sunlit triumph */
.scn-item-oaken-garland {
  background:
    linear-gradient(180deg, #f5e0b0 0%, #d4b880 40%, #a88a5a 100%),
    radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-item-oaken-garland .bg-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fceac0 0%, #e8c880 100%);
  animation: og-sky 15s ease-in-out infinite alternate;
}
.scn-item-oaken-garland .arch {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 100px;
  background: radial-gradient(circle at 50% 100%, transparent 50%, #c8b898 50%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: og-arch 8s ease-in-out infinite;
}
.scn-item-oaken-garland .crowd-left {
  position: absolute; bottom: 25%; left: 5%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  animation: og-crowd 10s ease-in-out infinite;
}
.scn-item-oaken-garland .crowd-right {
  position: absolute; bottom: 25%; right: 5%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  animation: og-crowd 10s ease-in-out infinite 3s;
}
.scn-item-oaken-garland .coriolanus-triumph {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: og-hero 4s ease-in-out infinite;
}
.scn-item-oaken-garland .garland {
  position: absolute; bottom: 58%; left: 50%; transform: translateX(-50%) translateY(-20px);
  width: 26px; height: 10px;
  background: linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(106,138,58,0.5);
  animation: og-garland 3s ease-in-out infinite alternate;
}
.scn-item-oaken-garland .child-virgilia {
  position: absolute; bottom: 22%; left: 42%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.8);
  animation: og-child 5s ease-in-out infinite;
}
.scn-item-oaken-garland .elder-volumnia {
  position: absolute; bottom: 24%; left: 56%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: og-elder 6s ease-in-out infinite;
}
@keyframes og-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes og-arch { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } }
@keyframes og-crowd { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes og-hero { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-48%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-52%) translateY(-1px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes og-garland { 0% { transform: translateX(-50%) translateY(-20px) scale(1); } 50% { transform: translateX(-50%) translateY(-22px) scale(1.05); } 100% { transform: translateX(-50%) translateY(-18px) scale(0.95); } }
@keyframes og-child { 0%,100% { transform: scale(0.8) translateY(0); } 50% { transform: scale(0.8) translateY(-2px); } }
@keyframes og-elder { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } }

/* scene 4: tribunes-plot-consulship — tense dim interior */
.scn-tribunes-plot-consulship {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-tribunes-plot-consulship .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
  animation: tp-wall 14s ease-in-out infinite alternate;
}
.scn-tribunes-plot-consulship .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: tp-table 7s ease-in-out infinite;
}
.scn-tribunes-plot-consulship .lamp-glow {
  position: absolute; top: 15%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d4a060 0%, #8a6030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #d4a060, 0 0 80px 20px rgba(212,160,96,0.3);
  animation: tp-lamp 4s ease-in-out infinite alternate;
}
.scn-tribunes-plot-consulship .tribune-plotter-1 {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: tp-figure 5s ease-in-out infinite;
}
.scn-tribunes-plot-consulship .tribune-plotter-2 {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: tp-figure 5s ease-in-out infinite 0.8s;
}
.scn-tribunes-plot-consulship .scroll {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 6px;
  background: linear-gradient(180deg, #b8a878 0%, #8a7a5a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: tp-scroll 9s ease-in-out infinite;
}
.scn-tribunes-plot-consulship .shadow-sharp {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  animation: tp-shadow 6s ease-in-out infinite alternate;
}
@keyframes tp-wall { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes tp-table { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes tp-lamp { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.08) rotate(2deg); } 100% { opacity:0.9; transform: scale(0.95) rotate(-2deg); } }
@keyframes tp-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-5deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes tp-scroll { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-1px); } }
@keyframes tp-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

.scn-coriolanus-in-antium { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 60%, #0f0a08 100%), radial-gradient(circle at 30% 60%, #8b5a3a 0%, transparent 70%); }
.scn-coriolanus-in-antium .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #3a2822 0%, #2a1c16 50%, #1a100c 100%); opacity:.9; }
.scn-coriolanus-in-antium .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; }
.scn-coriolanus-in-antium .doorway { position:absolute; bottom:25%; left:20%; width:30%; height:55%; background: #1a0e08; border-radius: 20% 20% 0 0; box-shadow: inset -4px 0 12px #0a0502, inset 4px 0 12px #0a0502; }
.scn-coriolanus-in-antium .figure-coriolanus { position:absolute; bottom:25%; left:38%; width:24px; height:60px; background: linear-gradient(180deg, #181210 0%, #0d0a08 50%, #0a0806 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: ca-fig 6s ease-in-out infinite; }
.scn-coriolanus-in-antium .figure-servant-a { position:absolute; bottom:25%; left:52%; width:20px; height:50px; background: linear-gradient(180deg, #1e1814 0%, #12100c 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: ca-serv1 8s ease-in-out infinite; }
.scn-coriolanus-in-antium .figure-servant-b { position:absolute; bottom:25%; left:58%; width:18px; height:48px; background: linear-gradient(180deg, #1a1410 0%, #0e0c0a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: ca-serv2 7s ease-in-out infinite 1s; }
.scn-coriolanus-in-antium .fire-glow { position:absolute; bottom:28%; left:22%; width:40px; height:40px; background: radial-gradient(circle, #d09050 0%, #a06030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #a06030, 0 0 120px 40px #804020; animation: ca-fire 2s ease-in-out infinite alternate; }
.scn-coriolanus-in-antium .shadow { position:absolute; bottom:0; left:30%; width:60%; height:10%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.6) 50%, transparent 100%); filter: blur(8px); animation: ca-shadow 5s ease-in-out infinite; }
@keyframes ca-fig { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ca-serv1 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-3deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes ca-serv2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes ca-fire { 0% { opacity:.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.85; transform: scale(0.95); } }
@keyframes ca-shadow { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.05); } 100% { opacity:.3; transform: scaleX(0.95); } }

.scn-volcanic-army-advances { background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%); }
.scn-volcanic-army-advances .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 70%, #1a1a1a 100%); animation: va-sky 20s ease-in-out infinite alternate; }
.scn-volcanic-army-advances .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-volcanic-army-advances .volcano { position:absolute; bottom:25%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: va-volc 30s ease-in-out infinite; }
.scn-volcanic-army-advances .army-silhouette { position:absolute; bottom:28%; left:25%; width:50%; height:15%; background: linear-gradient(90deg, #1a120e 0%, #12100c 50%, #0e0c0a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; filter: blur(2px); animation: va-army 12s ease-in-out infinite; }
.scn-volcanic-army-advances .banner { position:absolute; bottom:38%; left:55%; width:4px; height:20%; background: #1a1a10; transform-origin: bottom center; animation: va-banner 4s ease-in-out infinite; }
.scn-volcanic-army-advances .dust-cloud { position:absolute; bottom:30%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(80,70,50,.4) 0%, transparent 70%); filter: blur(12px); animation: va-dust 25s linear infinite; }
.scn-volcanic-army-advances .lightning-flash { position:absolute; top:10%; left:40%; width:20%; height:20%; background: radial-gradient(ellipse, rgba(200,200,180,.8) 0%, transparent 80%); opacity:0; animation: va-light 8s ease-in-out infinite; }
@keyframes va-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes va-volc { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes va-army { 0% { transform: translateX(-2%); } 50% { transform: translateX(2%); } 100% { transform: translateX(-1%); } }
@keyframes va-banner { 0% { transform: rotate(0); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes va-dust { 0% { transform: translateX(0); opacity:.5; } 50% { transform: translateX(20%); opacity:.3; } 100% { transform: translateX(40%); opacity:.1; } }
@keyframes va-light { 0% { opacity:0; } 25% { opacity:.8; } 30% { opacity:0; } 100% { opacity:0; } }

.scn-panic-in-rome { background: linear-gradient(180deg, #1a1410 0%, #0f0a08 60%, #080504 100%), radial-gradient(circle at 40% 30%, #3a2018 0%, transparent 70%); }
.scn-panic-in-rome .wall-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #2a1e16 0%, #1a100c 50%, #0a0604 100%); opacity:.95; }
.scn-panic-in-rome .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a120c 0%, #0a0602 100%); border-radius: 0 0 10% 10% / 0 0 20% 20%; }
.scn-panic-in-rome .table { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2820 0%, #1a100a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 50% 50%; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-panic-in-rome .figure-cominius { position:absolute; bottom:22%; left:28%; width:22px; height:48px; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-figc 5s ease-in-out infinite; }
.scn-panic-in-rome .figure-tribune { position:absolute; bottom:22%; left:42%; width:20px; height:44px; background: linear-gradient(180deg, #221a16 0%, #14100c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-figt 6s ease-in-out infinite 0.5s; }
.scn-panic-in-rome .figure-citizen { position:absolute; bottom:22%; left:52%; width:18px; height:42px; background: linear-gradient(180deg, #1e1814 0%, #12100c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-figc2 7s ease-in-out infinite 1s; }
.scn-panic-in-rome .lamp { position:absolute; bottom:30%; left:20%; width:14px; height:20px; background: radial-gradient(circle, #b08040 0%, #603020 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #603020, 0 0 40px 12px #402018; animation: pr-lamp 4s ease-in-out infinite alternate; }
.scn-panic-in-rome .shadow { position:absolute; bottom:0; left:20%; width:60%; height:8%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.7) 50%, transparent 100%); filter: blur(10px); animation: pr-shadow 7s ease-in-out infinite; }
@keyframes pr-figc { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(3deg); } 100% { transform: translateX(2px) rotate(-2deg); } }
@keyframes pr-figt { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(-4deg); } 100% { transform: translateX(-2px) rotate(2deg); } }
@keyframes pr-figc2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-3deg); } }
@keyframes pr-lamp { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.7; transform: scaleY(0.95); } }
@keyframes pr-shadow { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.3; } }

.scn-item-letter-delivered { background: linear-gradient(180deg, #1a1410 0%, #120e0a 50%, #0a0705 100%), radial-gradient(circle at 50% 40%, #4a3020 0%, transparent 60%); }
.scn-item-letter-delivered .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #2a1c16 0%, #1a100c 50%, #0a0604 100%); }
.scn-item-letter-delivered .door-frame { position:absolute; bottom:0; left:60%; width:30%; height:80%; background: #1a1008; border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 20px #0a0502; }
.scn-item-letter-delivered .figure-caius { position:absolute; bottom:20%; left:30%; width:24px; height:54px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: il-caius 8s ease-in-out infinite; }
.scn-item-letter-delivered .figure-menenius { position:absolute; bottom:20%; left:42%; width:20px; height:46px; background: linear-gradient(180deg, #221a16 0%, #16120e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: il-menen 7s ease-in-out infinite 0.5s; }
.scn-item-letter-delivered .table { position:absolute; bottom:20%; left:28%; width:12%; height:4%; background: linear-gradient(180deg, #3a2a20 0%, #1a100c 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; }
.scn-item-letter-delivered .letter { position:absolute; bottom:26%; left:33%; width:8px; height:5px; background: #a08060; border-radius: 5% 5% 10% 10% / 10% 10% 20% 20%; box-shadow: 0 0 4px #b09880; animation: il-letter 3s ease-in-out infinite; }
.scn-item-letter-delivered .guard { position:absolute; bottom:20%; left:58%; width:18px; height:50px; background: linear-gradient(180deg, #16120e 0%, #0e0a08 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: il-guard 10s ease-in-out infinite; }
.scn-item-letter-delivered .light-spot { position:absolute; top:30%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse, rgba(200,160,120,.15) 0%, transparent 70%); filter: blur(20px); animation: il-light 6s ease-in-out infinite alternate; }
@keyframes il-caius { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(0); } }
@keyframes il-menen { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes il-letter { 0% { transform: scale(1) rotate(0); opacity:.8; } 50% { transform: scale(1.05) rotate(-3deg); opacity:1; } 100% { transform: scale(0.95) rotate(2deg); opacity:.7; } }
@keyframes il-guard { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes il-light { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.4; } }

/* one block per scene id. Append to style.css. */

/* Scene: item-gown-of-humility */
.scn-item-gown-of-humility {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e6c8 30%, #d4a373 60%, #a0461a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-item-gown-of-humility .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #6b9bbf 0%, #cfe0e8 100%);
  animation: gh-sky 8s ease-in-out infinite alternate;
}
.scn-item-gown-of-humility .sunburn {
  position:absolute; top:5%; left:45%; width:60px; height:60px;
  background: radial-gradient(circle, #ffd066 0%, #ffb347 60%, transparent 100%);
  border-radius:50%; filter: blur(4px);
  animation: gh-sun 12s ease-in-out infinite alternate;
}
.scn-item-gown-of-humility .columns {
  position:absolute; bottom:40%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #e0d4c0 0%, #b8a88a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.3);
}
.scn-item-gown-of-humility .gown {
  position:absolute; bottom:35%; left:50%; width:80px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #5e1a1d 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.5);
  animation: gh-gown 3s ease-in-out infinite;
}
.scn-item-gown-of-humility .citizen-left {
  position:absolute; bottom:30%; left:15%; width:40px; height:80px;
  background: linear-gradient(180deg, #4b3e30 0%, #2c241c 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: gh-citizen-l 4s ease-in-out infinite alternate;
}
.scn-item-gown-of-humility .citizen-right {
  position:absolute; bottom:30%; right:15%; width:40px; height:80px;
  background: linear-gradient(180deg, #4b3e30 0%, #2c241c 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: gh-citizen-r 4s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-item-gown-of-humility .shadow-figure {
  position:absolute; bottom:30%; left:48%; width:60px; height:110px;
  background: rgba(0,0,0,.4);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  filter: blur(2px);
  animation: gh-shadow 3s ease-in-out infinite;
}
.scn-item-gown-of-humility .vote-hand {
  position:absolute; bottom:45%; left:52%; width:20px; height:30px;
  background: #d4a373;
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gh-hand 2.5s ease-in-out infinite alternate;
}
@keyframes gh-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gh-sun { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.2) translateY(-10px) } 100% { transform: scale(0.9) translateY(5px) } }
@keyframes gh-gown { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px) } }
@keyframes gh-citizen-l { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-5px) } 100% { transform: rotate(10deg) translateY(2px) } }
@keyframes gh-citizen-r { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-5px) } 100% { transform: rotate(-10deg) translateY(2px) } }
@keyframes gh-shadow { 0%,100% { opacity:.3 } 50% { opacity:.6 } }
@keyframes gh-hand { 0% { transform: rotate(-20deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(-10deg) } }

/* Scene: election-revoked */
.scn-election-revoked {
  background:
    linear-gradient(180deg, #b8d4e8 0%, #f5e6c8 40%, #d4a373 70%, #8b5e3c 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-election-revoked .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #87bbd4 0%, #d6eaf0 100%);
  animation: er-sky 10s ease-in-out infinite alternate;
}
.scn-election-revoked .rostrum {
  position:absolute; bottom:25%; left:30%; right:30%; height:20%;
  background: linear-gradient(180deg, #c8b896 0%, #a0846a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.3);
}
.scn-election-revoked .tribune-left {
  position:absolute; bottom:35%; left:38%; width:45px; height:90px;
  background: linear-gradient(180deg, #5e3e2c 0%, #3a261a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  animation: er-tribune-l 3s ease-in-out infinite alternate;
}
.scn-election-revoked .tribune-right {
  position:absolute; bottom:35%; right:38%; width:45px; height:90px;
  background: linear-gradient(180deg, #5e3e2c 0%, #3a261a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(5deg);
  animation: er-tribune-r 3.5s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-election-revoked .mob-back {
  position:absolute; bottom:20%; left:5%; right:5%; height:30%;
  background: linear-gradient(180deg, rgba(80,60,40,.4) 0%, rgba(40,30,20,.6) 100%);
  border-radius: 30% 30% 0 0;
  animation: er-mob-back 6s ease-in-out infinite alternate;
}
.scn-election-revoked .mob-front {
  position:absolute; bottom:10%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2c1e 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: er-mob-front 4s ease-in-out infinite alternate;
}
.scn-election-revoked .anger-flash {
  position:absolute; top:30%; left:40%; width:80px; height:40px;
  background: radial-gradient(ellipse, #ffd166 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: er-flash 1.5s ease-in-out infinite alternate;
}
.scn-election-revoked .gesture-arm {
  position:absolute; bottom:45%; left:45%; width:15px; height:50px;
  background: #a0643c;
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: er-arm 2s ease-in-out infinite alternate;
}
@keyframes er-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes er-tribune-l { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-5px) } 100% { transform: rotate(-8deg) translateY(2px) } }
@keyframes er-tribune-r { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-5px) } 100% { transform: rotate(8deg) translateY(2px) } }
@keyframes er-mob-back { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes er-mob-front { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(3px) } }
@keyframes er-flash { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes er-arm { 0% { transform: rotate(-40deg) } 50% { transform: rotate(60deg) } 100% { transform: rotate(-30deg) } }

/* Scene: tribunes-incite-corn */
.scn-tribunes-incite-corn {
  background:
    linear-gradient(180deg, #a8c8d8 0%, #f5e6c8 35%, #d4a373 65%, #7a4e2a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-tribunes-incite-corn .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #7baac4 0%, #c8dce8 100%);
  animation: ti-sky 9s ease-in-out infinite alternate;
}
.scn-tribunes-incite-corn .forum-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #b8a88a 0%, #8a7a62 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.4);
}
.scn-tribunes-incite-corn .tribune-speaker {
  position:absolute; bottom:40%; left:35%; width:50px; height:100px;
  background: linear-gradient(180deg, #5e3e2c 0%, #3a261a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(5deg);
  animation: ti-speaker 2.5s ease-in-out infinite alternate;
}
.scn-tribunes-incite-corn .tribune-ally {
  position:absolute; bottom:40%; left:48%; width:45px; height:95px;
  background: linear-gradient(180deg, #5e3e2c 0%, #3a261a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-3deg);
  animation: ti-ally 3s ease-in-out infinite alternate;
}
.scn-tribunes-incite-corn .citizen-corn {
  position:absolute; bottom:25%; left:15%; width:30px; height:60px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #5e1a1d 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: ti-corn 4s ease-in-out infinite;
}
.scn-tribunes-incite-corn .citizen-anger {
  position:absolute; bottom:25%; right:15%; width:35px; height:65px;
  background: linear-gradient(180deg, #4b3e30 0%, #2c241c 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(10deg);
  animation: ti-anger 3.5s ease-in-out infinite alternate;
}
.scn-tribunes-incite-corn .far-figure {
  position:absolute; bottom:30%; right:10%; width:20px; height:50px;
  background: #3a2e22;
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  transform: scale(0.7);
  animation: ti-far 8s ease-in-out infinite alternate;
}
.scn-tribunes-incite-corn .banner-rust {
  position:absolute; bottom:50%; left:60%; width:40px; height:70px;
  background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%);
  border-radius: 10% 10% 50% 50% / 10% 10% 40% 40%;
  transform: rotate(15deg);
  animation: ti-banner 5s ease-in-out infinite alternate;
}
@keyframes ti-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ti-speaker { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-6px) } 100% { transform: rotate(8deg) translateY(2px) } }
@keyframes ti-ally { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-4px) } 100% { transform: rotate(-5deg) translateY(2px) } }
@keyframes ti-corn { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-5px) } }
@keyframes ti-anger { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(2px) } }
@keyframes ti-far { 0% { opacity:.4; transform: scale(0.7) translateX(0) } 50% { opacity:.7; transform: scale(0.8) translateX(-10px) } 100% { opacity:.5; transform: scale(0.7) translateX(5px) } }
@keyframes ti-banner { 0% { transform: rotate(15deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(20deg) } }

/* Scene: riot-demand-death */
.scn-riot-demand-death {
  background:
    linear-gradient(180deg, #8bb8d4 0%, #e8d8b8 30%, #c8a078 60%, #6b4226 100%),
    radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%);
}
.scn-riot-demand-death .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #5a8ab3 0%, #b0c8d8 100%);
  animation: rd-sky 7s ease-in-out infinite alternate;
}
.scn-riot-demand-death .ground-riot {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #a08870 0%, #5a4a38 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 20px 50px rgba(0,0,0,.6);
}
.scn-riot-demand-death .coriolanus-grabbed {
  position:absolute; bottom:30%; left:50%; width:60px; height:100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #5e1a1d 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.6);
  animation: rd-cor 2s ease-in-out infinite alternate;
}
.scn-riot-demand-death .menenius-plea {
  position:absolute; bottom:30%; left:30%; width:40px; height:90px;
  background: linear-gradient(180deg, #8a7a62 0%, #5a4a38 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(15deg);
  animation: rd-men 3s ease-in-out infinite alternate;
}
.scn-riot-demand-death .citizen-tight-left {
  position:absolute; bottom:25%; left:10%; width:50px; height:80px;
  background: linear-gradient(180deg, #4b3e30 0%, #2c241c 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-20deg);
  animation: rd-cit-left 2.5s ease-in-out infinite alternate;
}
.scn-riot-demand-death .citizen-tight-right {
  position:absolute; bottom:25%; right:10%; width:50px; height:80px;
  background: linear-gradient(180deg, #4b3e30 0%, #2c241c 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(20deg);
  animation: rd-cit-right 2.5s ease-in-out infinite alternate;
  animation-delay: 0.3s;
}
.scn-riot-demand-death .clutch-hand {
  position:absolute; bottom:45%; left:46%; width:20px; height:25px;
  background: #a0643c;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: center center;
  animation: rd-clutch 1.8s ease-in-out infinite;
}
.scn-riot-demand-death .weapon-shaft {
  position:absolute; bottom:20%; left:70%; width:8px; height:60px;
  background: #3a2e22;
  border-radius: 30%;
  transform: rotate(-30deg);
  animation: rd-weapon 4s ease-in-out infinite alternate;
}
.scn-riot-demand-death .blood-dust {
  position:absolute; bottom:25%; left:45%; width:40px; height:20px;
  background: radial-gradient(ellipse, #a0461a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rd-dust 1.5s ease-in-out infinite alternate;
}
@keyframes rd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes rd-cor { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(-5deg) translateY(-8px) } 100% { transform: translateX(-50%) rotate(3deg) translateY(5px) } }
@keyframes rd-men { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-5px) } 100% { transform: rotate(20deg) translateY(3px) } }
@keyframes rd-cit-left { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-25deg) translateX(-6px) } 100% { transform: rotate(-15deg) translateX(3px) } }
@keyframes rd-cit-right { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(25deg) translateX(6px) } 100% { transform: rotate(15deg) translateX(-3px) } }
@keyframes rd-clutch { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.3) rotate(20deg) } }
@keyframes rd-weapon { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-60deg) } 100% { transform: rotate(-25deg) } }
@keyframes rd-dust { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-news-of-volscians {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a8 40%, #b8a48a 70%, #8a7a64 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-news-of-volscians .bg-wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #d4c4a8 0%, #b8a48a 70%, #8a7a64 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-news-of-volscians .pillar-left {
  position: absolute; bottom: 30%; left: 15%; width: 6%; height: 70%; background: linear-gradient(90deg, #a09078 0%, #c4b8a0 30%, #a09078 70%, #7a6a54 100%); border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.1); transform: skewX(-2deg);
}
.scn-news-of-volscians .pillar-right {
  position: absolute; bottom: 30%; right: 15%; width: 6%; height: 70%; background: linear-gradient(90deg, #a09078 0%, #c4b8a0 30%, #a09078 70%, #7a6a54 100%); border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.1); transform: skewX(2deg);
}
.scn-news-of-volscians .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8a7a64 0%, #6a5a44 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
.scn-news-of-volscians .marcius-figure {
  position: absolute; bottom: 30%; left: 38%; width: 8%; height: 34%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nv-marcius 6s ease-in-out infinite;
}
.scn-news-of-volscians .messenger-figure {
  position: absolute; bottom: 30%; right: 30%; width: 7%; height: 28%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nv-messenger 8s ease-in-out infinite;
}
.scn-news-of-volscians .sunbeam {
  position: absolute; top: 0; left: 20%; width: 60%; height: 90%; background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, rgba(255,240,200,0.05) 100%); transform: skewX(-10deg) rotate(8deg); filter: blur(12px); animation: nv-sunbeam 14s ease-in-out infinite alternate;
}
.scn-news-of-volscians .tribune-shadow {
  position: absolute; bottom: 30%; left: 55%; width: 14%; height: 30%; background: linear-gradient(180deg, rgba(10,10,20,0.5) 0%, rgba(10,10,20,0.2) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(6px); animation: nv-shadow 10s ease-in-out infinite;
}
@keyframes nv-marcius {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nv-messenger {
  0% { transform: translateY(0) scaleY(1); }
  20% { transform: translateY(-4px) scaleY(1.02); }
  40% { transform: translateY(0) scaleY(0.98); }
  70% { transform: translateY(-2px) scaleY(1); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes nv-sunbeam {
  0% { opacity: 0.4; transform: skewX(-10deg) rotate(8deg) scale(1); }
  50% { opacity: 0.8; transform: skewX(-8deg) rotate(10deg) scale(1.1); }
  100% { opacity: 0.5; transform: skewX(-12deg) rotate(6deg) scale(0.95); }
}
@keyframes nv-shadow {
  0% { opacity: 0.6; transform: translateX(0); }
  30% { opacity: 0.4; transform: translateX(5px); }
  60% { opacity: 0.7; transform: translateX(-3px); }
  100% { opacity: 0.6; transform: translateX(0); }
}

/* volumnia-ambition */
.scn-volumnia-ambition {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 70%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #6a4a2a 0%, transparent 70%);
}
.scn-volumnia-ambition .bg-room {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.4);
}
.scn-volumnia-ambition .window-glow {
  position: absolute; top: 12%; left: 65%; width: 12%; height: 18%; background: radial-gradient(circle, #f0d080 0%, #c8a860 60%, transparent 80%); border-radius: 4px; box-shadow: 0 0 30px 12px #c8a860; animation: va-window 5s ease-in-out infinite alternate;
}
.scn-volumnia-ambition .table {
  position: absolute; bottom: 24%; left: 30%; width: 40%; height: 6%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5); transform: perspective(400px) rotateX(5deg);
}
.scn-volumnia-ambition .volumnia {
  position: absolute; bottom: 30%; left: 32%; width: 10%; height: 30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: va-volumnia 8s ease-in-out infinite;
}
.scn-volumnia-ambition .virgilia {
  position: absolute; bottom: 30%; left: 48%; width: 9%; height: 28%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: va-virgilia 7s ease-in-out infinite;
}
.scn-volumnia-ambition .fireplace {
  position: absolute; bottom: 26%; right: 10%; width: 18%; height: 34%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-volumnia-ambition .hearth-glow {
  position: absolute; bottom: 26%; right: 10%; width: 18%; height: 34%; background: radial-gradient(ellipse at 50% 80%, #ff9a40 0%, #e07020 40%, transparent 70%); mix-blend-mode: screen; animation: va-hearth 4s ease-in-out infinite alternate;
}
.scn-volumnia-ambition .valeria-figure {
  position: absolute; bottom: 30%; left: 58%; width: 8%; height: 26%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: va-valeria 9s ease-in-out infinite;
}
@keyframes va-window {
  0% { opacity: 0.7; box-shadow: 0 0 20px 8px #c8a860; }
  50% { opacity: 1; box-shadow: 0 0 40px 16px #f0d080; }
  100% { opacity: 0.8; box-shadow: 0 0 25px 10px #d0b070; }
}
@keyframes va-volumnia {
  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 va-virgilia {
  0% { transform: translateX(0) scaleY(1); }
  30% { transform: translateX(2px) scaleY(0.98); }
  60% { transform: translateX(-1px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes va-hearth {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.08); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes va-valeria {
  0% { transform: translateY(0) scale(1); }
  20% { transform: translateY(-3px) scale(1.01); }
  50% { transform: translateY(0) scale(0.99); }
  80% { transform: translateY(-1px) scale(1); }
  100% { transform: translateY(0) scale(1); }
}

/* assault-on-corioli */
.scn-assault-on-corioli {
  background: linear-gradient(180deg, #b8d8ff 0%, #f0e0c0 40%, #c0a080 70%, #6a5a3a 100%), radial-gradient(ellipse at 30% 60%, #ffe8c0 0%, transparent 60%);
}
.scn-assault-on-corioli .sky {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #a0c8f0 0%, #e0d0b0 80%); animation: ac-sky 20s ease-in-out infinite alternate;
}
.scn-assault-on-corioli .sun {
  position: absolute; top: 10%; left: 30%; width: 15%; height: 15%; background: radial-gradient(circle, #fff0c0 0%, #ffd080 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,208,128,0.4); animation: ac-sun 12s ease-in-out infinite;
}
.scn-assault-on-corioli .city-wall {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.3); transform: perspective(600px) rotateX(5deg);
}
.scn-assault-on-corioli .gate {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 28%; background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-assault-on-corioli .marcius-entry {
  position: absolute; bottom: 35%; left: 42%; width: 8%; height: 26%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-marcius 4s ease-in-out infinite;
}
.scn-assault-on-corioli .dust-cloud {
  position: absolute; bottom: 38%; left: 30%; right: 30%; height: 10%; background: radial-gradient(ellipse at 50% 50%, rgba(180,160,120,0.4) 0%, transparent 70%); filter: blur(8px); animation: ac-dust 9s ease-in-out infinite;
}
.scn-assault-on-corioli .lartius-figure {
  position: absolute; bottom: 35%; left: 34%; width: 7%; height: 22%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-lartius 5s ease-in-out infinite;
}
.scn-assault-on-corioli .volscian-spear {
  position: absolute; bottom: 48%; left: 44%; width: 2%; height: 18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20%; transform: rotate(15deg); animation: ac-spear 3s ease-in-out infinite alternate;
}
@keyframes ac-sky {
  0% { opacity: 0.8; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 10% 0%; }
  100% { opacity: 0.7; background-position: 0% 0%; }
}
@keyframes ac-sun {
  0% { transform: scale(1); opacity: 0.9; }
  40% { transform: scale(1.05); opacity: 1; }
  70% { transform: scale(0.95); opacity: 0.85; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes ac-marcius {
  0% { transform: translateY(0) scaleX(1); }
  30% { transform: translateY(-5px) scaleX(1.05); }
  60% { transform: translateY(-2px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ac-dust {
  0% { opacity: 0.3; transform: scale(1) translateY(0); }
  50% { opacity: 0.7; transform: scale(1.2) translateY(-4px); }
  100% { opacity: 0.4; transform: scale(0.9) translateY(0); }
}
@keyframes ac-lartius {
  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 ac-spear {
  0% { transform: rotate(12deg) translateX(0); }
  50% { transform: rotate(18deg) translateX(3px); }
  100% { transform: rotate(12deg) translateX(0); }
}

/* single-combat-aufidius */
.scn-single-combat-aufidius {
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a480 40%, #8a6a4a 100%), radial-gradient(ellipse at 60% 40%, #f0d8b0 0%, transparent 70%);
}
.scn-single-combat-aufidius .bg-ground {
  position: absolute; inset: auto 0 0 0; height: 40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
}
.scn-single-combat-aufidius .marcius {
  position: absolute; bottom: 24%; left: 20%; width: 16%; height: 50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-marcius 3s ease-in-out infinite;
}
.scn-single-combat-aufidius .aufidius {
  position: absolute; bottom: 24%; right: 20%; width: 16%; height: 50%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-aufidius 3.2s ease-in-out infinite;
}
.scn-single-combat-aufidius .sword-spark {
  position: absolute; top: 38%; left: 40%; width: 10%; height: 10%; background: radial-gradient(circle, #ffe8a0 0%, #ffc040 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #ffd060; animation: sc-spark 1.5s ease-in-out infinite alternate;
}
.scn-single-combat-aufidius .dust-clouds {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 14%; background: radial-gradient(ellipse at 50% 50%, rgba(180,160,120,0.3) 0%, transparent 70%); filter: blur(10px); animation: sc-dust 4s ease-in-out infinite;
}
.scn-single-combat-aufidius .sunlight-rays {
  position: absolute; top: 0; left: 0; right: 0; height: 100%; background: linear-gradient(135deg, rgba(255,240,200,0.1) 0%, transparent 50%, rgba(255,240,200,0.15) 100%); transform: skewX(-20deg); animation: sc-rays 10s ease-in-out infinite alternate;
}
.scn-single-combat-aufidius .impact-ring {
  position: absolute; top: 42%; left: 44%; width: 8%; height: 8%; border: 4px solid rgba(255,200,80,0.6); border-radius: 50%; box-shadow: 0 0 20px 4px rgba(255,200,80,0.3); animation: sc-impact 2s ease-out infinite;
}
@keyframes sc-marcius {
  0% { transform: translateX(0) rotate(-2deg) scaleX(1); }
  30% { transform: translateX(6px) rotate(2deg) scaleX(1.02); }
  60% { transform: translateX(-3px) rotate(-1deg) scaleX(0.98); }
  100% { transform: translateX(0) rotate(-2deg) scaleX(1); }
}
@keyframes sc-aufidius {
  0% { transform: translateX(0) rotate(2deg) scaleX(1); }
  30% { transform: translateX(-5px) rotate(-2deg) scaleX(1.02); }
  60% { transform: translateX(3px) rotate(1deg) scaleX(0.98); }
  100% { transform: translateX(0) rotate(2deg) scaleX(1); }
}
@keyframes sc-spark {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes sc-dust {
  0% { opacity: 0.2; transform: scale(0.9); }
  30% { opacity: 0.6; transform: scale(1.2); }
  60% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 0.2; transform: scale(0.9); }
}
@keyframes sc-rays {
  0% { opacity: 0.3; transform: skewX(-20deg) translateX(0); }
  50% { opacity: 0.6; transform: skewX(-15deg) translateX(10px); }
  100% { opacity: 0.3; transform: skewX(-20deg) translateX(0); }
}
@keyframes sc-impact {
  0% { transform: scale(0.2); opacity: 0.8; border-width: 6px; }
  50% { transform: scale(1.5); opacity: 0.4; border-width: 3px; }
  100% { transform: scale(2.5); opacity: 0; border-width: 1px; }
}

/* volumnia-pleads-tent */
.scn-volumnia-pleads-tent {
  background: linear-gradient(180deg, #1a0e05 0%, #2a1a0a 30%, #1a0e05 100%), radial-gradient(ellipse at 70% 40%, #4a2a10 0%, transparent 60%);
}
.scn-volumnia-pleads-tent .tent-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: vpt-fabric 5s ease-in-out infinite alternate;
}
.scn-volumnia-pleads-tent .tent-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0e05, #0a0502);
}
.scn-volumnia-pleads-tent .brazier {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c06030 0%, #a04020 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 30px 10px rgba(200,100,50,0.5);
  animation: vpt-fire 1s ease-in-out infinite alternate;
}
.scn-volumnia-pleads-tent .glow {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffb060 0%, transparent 70%);
  border-radius: 50%;
  animation: vpt-glow 3s ease-in-out infinite;
}
.scn-volumnia-pleads-tent .volumnia {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vpt-kneel 4s ease-in-out infinite;
}
.scn-volumnia-pleads-tent .coriolanus {
  position: absolute; bottom: 20%; left: 55%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: vpt-stand 6s ease-in-out infinite;
}
.scn-volumnia-pleads-tent .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: vpt-shadow 4s ease-in-out infinite;
}
@keyframes vpt-fabric {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes vpt-fire {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.05); opacity:1; }
  100% { transform: scale(1); opacity:0.9; }
}
@keyframes vpt-glow {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes vpt-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes vpt-stand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes vpt-shadow {
  0% { transform: scaleX(1); opacity:0.6; }
  50% { transform: scaleX(1.2); opacity:0.4; }
  100% { transform: scaleX(1); opacity:0.6; }
}

/* aufidius-betrayed-anger */
.scn-aufidius-betrayed-anger {
  background: linear-gradient(180deg, #4a7a9a 0%, #8ab4d0 30%, #c0d8e0 60%, #fff8e0 100%), radial-gradient(circle at 70% 30%, #ffffc0 0%, transparent 60%);
}
.scn-aufidius-betrayed-anger .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  animation: au-sky 10s ease-in-out infinite;
}
.scn-aufidius-betrayed-anger .sun {
  position: absolute; top: 20%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8c0 0%, #ffe080 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,224,128,0.6), 0 0 100px 40px rgba(255,224,128,0.3);
  animation: au-glare 4s ease-in-out infinite alternate;
}
.scn-aufidius-betrayed-anger .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: au-ground 8s ease-in-out infinite;
}
.scn-aufidius-betrayed-anger .aufidius {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: au-point 1.5s ease-in-out infinite;
}
.scn-aufidius-betrayed-anger .coriolanus {
  position: absolute; bottom: 30%; left: 55%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: au-stand 3s ease-in-out infinite;
}
.scn-aufidius-betrayed-anger .conspirator-a {
  position: absolute; bottom: 30%; left: 25%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: au-crouch 2s ease-in-out infinite;
}
.scn-aufidius-betrayed-anger .conspirator-b {
  position: absolute; bottom: 30%; left: 65%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: au-crouch 2.5s ease-in-out infinite;
}
.scn-aufidius-betrayed-anger .spear {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 2px 2px 0 0;
  transform: rotate(15deg);
  animation: au-spear 1.2s ease-in-out infinite;
}
@keyframes au-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes au-glare {
  0% { opacity:0.8; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.85; transform: scale(1); }
}
@keyframes au-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes au-point {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(1px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes au-stand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes au-crouch {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(3px) scaleY(0.95); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes au-spear {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(15deg); }
}

/* citizens-arm-protest – tense, sunlit */
.scn-citizens-arm-protest {
  background: linear-gradient(180deg, #fff8e7 0%, #ffd700 40%, #87ceeb 80%, #4682b4 100%),
              radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%);
}
.scn-citizens-arm-protest .sky         { position:absolute; inset:0 0 60% 0; background: radial-gradient(ellipse at 50% 100%, #fff8dc 0%, transparent 70%); animation: cap-sky 12s ease-in-out infinite alternate; }
.scn-citizens-arm-protest .buildings   { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #c4a882 0%, #8b7355 100%); border-radius: 5% 95% 0 0 / 20% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: cap-buildings 6s ease-in-out infinite; }
.scn-citizens-arm-protest .crowd       { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5e4b3a 0%, #3e2e1e 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: cap-crowd 2s ease-in-out infinite alternate; }
.scn-citizens-arm-protest .figure-leader { position:absolute; bottom:25%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #2a1e12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cap-leader 1.5s ease-in-out infinite; }
.scn-citizens-arm-protest .banner      { position:absolute; bottom:45%; left:52%; width:40px; height:50px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: cap-banner 3s ease-in-out infinite alternate; }
.scn-citizens-arm-protest .shadow-stripe { position:absolute; top:20%; left:0; width:100%; height:10%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 30%, transparent 70%); animation: cap-shadow 8s linear infinite; }
@keyframes cap-sky       { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.8; transform: scale(1) } }
@keyframes cap-buildings { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cap-crowd     { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cap-leader    { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-3deg) } 50% { transform: translateX(-2px) rotate(3deg) } 75% { transform: translateX(2px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cap-banner    { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes cap-shadow    { 0% { transform: translateX(-100%) } 100% { transform: translateX(100%) } }

/* second-citizen-moderates – tense, sunlit */
.scn-second-citizen-moderates {
  background: linear-gradient(180deg, #fff5e0 0%, #fdd835 30%, #64b5f6 70%, #1e88e5 100%),
              radial-gradient(ellipse at 50% 30%, #fff9c4 0%, transparent 50%);
}
.scn-second-citizen-moderates .sky        { position:absolute; inset:0 0 60% 0; background: radial-gradient(ellipse at 50% 100%, #fff9c4 0%, transparent 70%); animation: scm-sky 15s ease-in-out infinite alternate; }
.scn-second-citizen-moderates .buildings  { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #bcaaa4 0%, #8d6e63 100%); border-radius: 10% 90% 0 0 / 30% 70% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.25); animation: scm-buildings 8s ease-in-out infinite; }
.scn-second-citizen-moderates .crowd-bg   { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6d4c41 0%, #4e342e 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; animation: scm-crowd 3s ease-in-out infinite alternate; }
.scn-second-citizen-moderates .citizen-one { position:absolute; bottom:25%; left:38%; width:28px; height:58px; background: linear-gradient(180deg, #3e2723 0%, #2c1f18 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: scm-cit1 1.2s ease-in-out infinite; }
.scn-second-citizen-moderates .citizen-two { position:absolute; bottom:25%; left:52%; width:28px; height:58px; background: linear-gradient(180deg, #5d4037 0%, #4a3228 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scm-cit2 2s ease-in-out infinite; }
.scn-second-citizen-moderates .gesture-arm { position:absolute; bottom:38%; left:56%; width:18px; height:8px; background: linear-gradient(180deg, #a1887f 0%, #795548 100%); border-radius: 10% 10% 50% 50% / 40% 40% 60% 60%; transform-origin: left center; animation: scm-arm 1.5s ease-in-out infinite; }
@keyframes scm-sky       { 0% { opacity:.6; transform: scale(1.01) } 50% { opacity:1; transform: scale(1) } 100% { opacity:.8; transform: scale(1.02) } }
@keyframes scm-buildings { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes scm-crowd     { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes scm-cit1      { 0% { transform: translateX(0) rotate(2deg) } 40% { transform: translateX(-3px) rotate(-4deg) } 70% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes scm-cit2      { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes scm-arm       { 0% { transform: rotate(10deg) } 30% { transform: rotate(-15deg) } 60% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }

/* menenius-fable-belly – calm, sunlit */
.scn-menenius-fable-belly {
  background: linear-gradient(180deg, #fffde7 0%, #ffe082 40%, #8fd3f4 80%, #4fc3f7 100%),
              radial-gradient(ellipse at 50% 20%, #fff9c4 0%, transparent 60%);
}
.scn-menenius-fable-belly .sky         { position:absolute; inset:0 0 55% 0; background: radial-gradient(ellipse at 50% 100%, #fff9c4 0%, transparent 60%); animation: mfb-sky 20s ease-in-out infinite alternate; }
.scn-menenius-fable-belly .road        { position:absolute; bottom:30%; left:0; right:0; height:10%; background: linear-gradient(180deg, #d7ccc8 0%, #a1887f 100%); border-radius: 20% 80% 0 0 / 50% 50% 0 0; animation: mfb-road 6s ease-in-out infinite; }
.scn-menenius-fable-belly .menenius    { position:absolute; bottom:30%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #7b5b3e 0%, #5a4030 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: mfb-fig 8s ease-in-out infinite; }
.scn-menenius-fable-belly .listeners   { position:absolute; bottom:30%; left:45%; width:100px; height:50px; background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%); border-radius: 40% 60% 0 0 / 80% 80% 0 0; animation: mfb-listen 10s ease-in-out infinite; }
.scn-menenius-fable-belly .sunburst    { position:absolute; top:10%; left:50%; width:100px; height:100px; background: radial-gradient(circle, #fff9c4 0%, transparent 70%); transform: translate(-50%, 0); animation: mfb-sun 25s linear infinite; }
.scn-menenius-fable-belly .shadow-soft { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.08) 100%); animation: mfb-shadow 8s ease-in-out infinite alternate; }
@keyframes mfb-sky     { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } 100% { opacity:.9; transform: scale(1) } }
@keyframes mfb-road    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes mfb-fig     { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mfb-listen  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mfb-sun     { 0% { opacity:.2; transform: translate(-50%, 0) scale(1) } 50% { opacity:.4; transform: translate(-50%, -5px) scale(1.05) } 100% { opacity:.2; transform: translate(-50%, 0) scale(1) } }
@keyframes mfb-shadow  { 0% { opacity:.5 } 50% { opacity:.3 } 100% { opacity:.5 } }

/* marcius-scorns-crowd – tense, sunlit */
.scn-marcius-scorns-crowd {
  background: linear-gradient(180deg, #fff8e1 0%, #ffd54f 30%, #90caf9 70%, #42a5f5 100%),
              radial-gradient(ellipse at 50% 20%, #fff9c4 0%, transparent 50%);
}
.scn-marcius-scorns-crowd .sky           { position:absolute; inset:0 0 55% 0; background: radial-gradient(ellipse at 50% 100%, #fff9c4 0%, transparent 60%); animation: msc-sky 10s ease-in-out infinite alternate; }
.scn-marcius-scorns-crowd .forum-floor   { position:absolute; bottom:30%; left:0; right:0; height:15%; background: linear-gradient(180deg, #bcaaa4 0%, #8d6e63 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: msc-floor 5s ease-in-out infinite; }
.scn-marcius-scorns-crowd .marcius-figure { position:absolute; bottom:30%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: msc-marcius 1s ease-in-out infinite; }
.scn-marcius-scorns-crowd .crowd-below   { position:absolute; bottom:15%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: msc-crowd 0.8s ease-in-out infinite alternate; }
.scn-marcius-scorns-crowd .shadow-hard   { position:absolute; top:5%; right:0; width:30%; height:100%; background: linear-gradient(270deg, transparent 0%, rgba(0,0,0,.2) 40%, transparent 100%); animation: msc-shadow 3s linear infinite; }
.scn-marcius-scorns-crowd .speech-lines  { position:absolute; top:40%; left:52%; width:60px; height:40px; background: repeating-linear-gradient(90deg, #ffd54f 0px, #ffd54f 2px, transparent 2px, transparent 6px); opacity:.6; animation: msc-speech 1.5s ease-in-out infinite; }
@keyframes msc-sky      { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.8; transform: scale(1) } }
@keyframes msc-floor    { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes msc-marcius  { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-4deg) } 50% { transform: translateX(2px) rotate(4deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes msc-crowd    { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes msc-shadow   { 0% { transform: translateX(-100%) } 100% { transform: translateX(100%) } }
@keyframes msc-speech   { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(1) } }
/* end per-scene blocks */
