/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-arcadians-routed {
  background: linear-gradient(180deg, #2c241f 0%, #4a3a2a 40%, #7a5a3a 100%), radial-gradient(ellipse at 60% 50%, #b08040 0%, transparent 60%);
}
.scn-arcadians-routed .cliff {
  position: absolute; bottom: 20%; left: 0; right: 40%; height: 50%; 
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 0 100% 0 0 / 0 80% 0 0; 
  animation: ar-cliff 10s ease-in-out infinite alternate;
}
.scn-arcadians-routed .gorge {
  position: absolute; bottom: 10%; left: 30%; right: 10%; height: 30%; 
  background: linear-gradient(180deg, #2a2018 0%, #1a120e 100%); 
  border-radius: 20% 20% 0 0 / 50% 50% 0 0; 
  box-shadow: inset 0 12px 30px rgba(0,0,0,.7);
}
.scn-arcadians-routed .figures {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); 
  width: 60px; height: 40px; 
  background: linear-gradient(180deg, #1a140e 0%, #0a0806 100%); 
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%; 
  animation: ar-figures 3s ease-in-out infinite;
}
.scn-arcadians-routed .banner {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); 
  width: 8px; height: 30px; 
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); 
  border-radius: 2px; 
  animation: ar-banner 2s ease-in-out infinite;
}
.scn-arcadians-routed .dust-a {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 30px; 
  background: radial-gradient(ellipse, rgba(180,150,120,.4) 0%, transparent 100%); 
  filter: blur(5px); 
  animation: ar-dust 5s linear infinite;
}
.scn-arcadians-routed .dust-b {
  position: absolute; bottom: 20%; right: 15%; width: 50px; height: 25px; 
  background: radial-gradient(ellipse, rgba(180,150,120,.3) 0%, transparent 100%); 
  filter: blur(4px); 
  animation: ar-dust 7s linear infinite reverse;
}
.scn-arcadians-routed .sunflash {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 20px; 
  background: linear-gradient(135deg, rgba(240,200,100,.6) 0%, transparent 100%); 
  border-radius: 50%; filter: blur(8px); 
  animation: ar-sunflash 10s ease-in-out infinite alternate;
}
.scn-arcadians-routed .arrows {
  position: absolute; top: 30%; left: 10%; width: 30px; height: 4px; 
  background: linear-gradient(90deg, transparent 0%, #6a4a3a 100%); 
  border-radius: 2px; 
  animation: ar-arrows 1.5s ease-in-out infinite;
}
@keyframes ar-cliff {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes ar-figures {
  0% { transform: translateX(-50%) scaleY(1); }
  25% { transform: translateX(-40%) scaleY(1.05); }
  50% { transform: translateX(-60%) scaleY(.95); }
  75% { transform: translateX(-45%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes ar-banner {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes ar-dust {
  0% { transform: translate(0, 0) scale(1); opacity: .4; }
  50% { transform: translate(20px, -10px) scale(1.3); opacity: .2; }
  100% { transform: translate(40px, -20px) scale(1.5); opacity: 0; }
}
@keyframes ar-sunflash {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.2); }
  100% { opacity: .4; transform: scale(.9); }
}
@keyframes ar-arrows {
  0% { transform: translateX(0); opacity: 0; }
  50% { opacity: 1; }
  100% { transform: translateX(100px); opacity: 0; }
}

/* Scene 4: reunion-at-calpe-haven */

/* barren-country-millstones */
.scn-barren-country-millstones {
  background: linear-gradient(180deg, #f5e6b8 0%, #d9c68a 40%, #b59a5c 100%), radial-gradient(ellipse at 80% 20%, #fce89a 0%, transparent 60%);
}
.scn-barren-country-millstones .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fce8b0 0%, #f0d088 100%);
  animation: bcm-sky 8s ease-in-out infinite alternate;
}
.scn-barren-country-millstones .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5d0 0%, #fde68a 50%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(253,230,138,0.6);
  border-radius: 50%;
  animation: bcm-sun 12s ease-in-out infinite alternate;
}
.scn-barren-country-millstones .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c2a66b 0%, #8b7340 100%);
  border-radius: 40% 60% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-barren-country-millstones .millstone-left {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #a0845c 0%, #7a623a 70%);
  border-radius: 50%;
  transform: rotate(15deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-barren-country-millstones .millstone-right {
  position: absolute; bottom: 20%; right: 20%; width: 70px; height: 35px;
  background: linear-gradient(135deg, #b39a6a 0%, #8b7340 70%);
  border-radius: 50%;
  transform: rotate(-10deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-barren-country-millstones .dust {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, rgba(210,180,140,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: bcm-dust 6s ease-in-out infinite alternate;
}
@keyframes bcm-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bcm-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(5px); } 100% { transform: scale(0.95) translateX(-5px); } }
@keyframes bcm-dust { 0% { opacity: 0.4; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-5px); } 100% { opacity: 0.3; transform: translateY(2px); } }

/* clay-wagons */
.scn-clay-wagons {
  background: linear-gradient(180deg, #f7e9c3 0%, #e0c896 50%, #b0965a 100%), radial-gradient(ellipse at 50% 0%, #fff2d0 0%, transparent 60%);
}
.scn-clay-wagons .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce8b0 0%, #edd6a0 100%);
  animation: cw-sky 6s ease-in-out infinite alternate;
}
.scn-clay-wagons .sun {
  position: absolute; top: 15%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff4d0 0%, #fedb7a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(254,219,122,0.5);
}
.scn-clay-wagons .ground-clay {
  position: absolute; bottom: 0%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #c09a5a 0%, #8b6a3a 40%, #5a4020 100%);
  border-top: 4px solid #7a5a3a;
}
.scn-clay-wagons .wagon {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a3020 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-clay-wagons .wagon-wheel {
  position: absolute; bottom: 20%; left: 22%; width: 18px; height: 18px;
  background: radial-gradient(circle, #4a3020 30%, #2a1a10 60%, #1a0e08 100%);
  border-radius: 50%;
  border: 2px solid #3a2a1a;
  animation: cw-wheel 4s linear infinite;
}
.scn-clay-wagons .figures {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: cw-figures 3s ease-in-out infinite alternate;
}
@keyframes cw-sky { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes cw-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes cw-figures { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-45%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }

/* cyrus-nobles-mud */
.scn-cyrus-nobles-mud {
  background: linear-gradient(180deg, #f0dca0 0%, #dab870 50%, #b89040 100%), radial-gradient(ellipse at 30% 20%, #fce88a 0%, transparent 50%);
}
.scn-cyrus-nobles-mud .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fce8b0 0%, #eed498 100%);
  animation: cnm-sky 10s ease-in-out infinite alternate;
}
.scn-cyrus-nobles-mud .sun-burst {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff5d0 0%, #fde68a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(253,230,138,0.4);
  animation: cnm-sun 8s ease-in-out infinite alternate;
}
.scn-cyrus-nobles-mud .muddy-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b08040 0%, #7a5420 60%, #4a3010 100%);
  border-top: 3px solid #a07030;
}
.scn-cyrus-nobles-mud .figure-cyrus {
  position: absolute; bottom: 25%; left: 20%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cnm-walk 5s ease-in-out infinite;
}
.scn-cyrus-nobles-mud .figure-nobles {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cnm-walk 4.5s ease-in-out infinite 0.5s;
}
.scn-cyrus-nobles-mud .mud-splash {
  position: absolute; bottom: 22%; left: 35%; width: 12px; height: 8px;
  background: #6a4a20;
  border-radius: 50%;
  filter: blur(2px);
  animation: cnm-splash 3s ease-in-out infinite alternate;
}
.scn-cyrus-nobles-mud .tunic-tatters {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 10px;
  background: #8a6a3a;
  border-radius: 0 0 20% 20%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: cnm-tatters 2s ease-in-out infinite alternate;
}
@keyframes cnm-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cnm-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.1) translateX(3px); } 100% { transform: scale(0.9) translateX(-3px); } }
@keyframes cnm-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(10px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes cnm-splash { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.5); } 100% { opacity: 0.2; transform: scale(0.8); } }
@keyframes cnm-tatters { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* cyrus-presses-on */
.scn-cyrus-presses-on {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2040 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #3a3050 0%, transparent 70%);
}
.scn-cyrus-presses-on .bg-interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2040 0%, #1a1a2e 60%, #0e0e1a 100%);
}
.scn-cyrus-presses-on .lamp {
  position: absolute; top: 10%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3020 100%);
  border-radius: 6px 6px 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,0.5);
  animation: cpo-lamp 4s ease-in-out infinite alternate;
}
.scn-cyrus-presses-on .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-cyrus-presses-on .map {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(135deg, #b09060 0%, #a08050 50%, #8a6a3a 100%);
  border-radius: 2px;
  clip-path: polygon(0 10%, 100% 0%, 100% 90%, 0 100%);
  animation: cpo-map 8s ease-in-out infinite alternate;
}
.scn-cyrus-presses-on .cyrus-hand {
  position: absolute; bottom: 22%; left: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  animation: cpo-hand 3s ease-in-out infinite alternate;
}
.scn-cyrus-presses-on .scroll {
  position: absolute; bottom: 28%; right: 20%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #b08050 0%, #8a6a3a 100%);
  border-radius: 10% 10% 50% 50%;
  transform: rotate(-10deg);
  animation: cpo-scroll 5s ease-in-out infinite;
}
@keyframes cpo-lamp { 0% { box-shadow: 0 0 20px 8px rgba(200,160,80,0.4); } 50% { box-shadow: 0 0 40px 20px rgba(200,160,80,0.7); } 100% { box-shadow: 0 0 25px 10px rgba(200,160,80,0.5); } }
@keyframes cpo-map { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes cpo-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes cpo-scroll { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-12deg); } }

.scn-clearchus-deliberates {
  background: 
    radial-gradient(ellipse at 30% 60%, #4a3a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1208 0%, #0d0a04 100%);
}
.scn-clearchus-deliberates .candle {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 4px;
  height: 14px;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 100%);
  border-radius: 2px 2px 0 0;
  transform-origin: bottom;
  animation: cd-candle 4s ease-in-out infinite alternate;
}
.scn-clearchus-deliberates .glow {
  position: absolute;
  bottom: 35%;
  left: 36%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, rgba(200, 130, 50, 0.6) 0%, rgba(200, 130, 50, 0.2) 40%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: cd-glow 2.5s ease-in-out infinite alternate;
}
.scn-clearchus-deliberates .table {
  position: absolute;
  bottom: 24%;
  left: 20%;
  right: 20%;
  height: 10%;
  background: linear-gradient(180deg, #3a2810 0%, #1a1008 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-clearchus-deliberates .figure {
  position: absolute;
  bottom: 24%;
  left: 50%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cd-figure 8s ease-in-out infinite;
}
.scn-clearchus-deliberates .shadows {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 38% 37%, transparent 20%, rgba(0,0,0,0.7) 60%);
  pointer-events: none;
}
.scn-clearchus-deliberates .scroll {
  position: absolute;
  bottom: 26%;
  left: 58%;
  width: 24px;
  height: 16px;
  background: linear-gradient(180deg, #d4b060 0%, #a08040 100%);
  border-radius: 2px 2px 2px 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform: rotate(-8deg);
  animation: cd-scroll 12s ease-in-out infinite alternate;
}
@keyframes cd-candle {
  0% { transform: scaleY(1) translateY(0); }
  30% { transform: scaleY(1.05) translateY(-1px); }
  60% { transform: scaleY(0.95) translateY(1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cd-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes cd-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes cd-scroll {
  0% { transform: rotate(-8deg) scale(1); }
  50% { transform: rotate(-5deg) scale(1.02); }
  100% { transform: rotate(-8deg) scale(1); }
}

.scn-clearchus-warns-of-cyrus {
  background:
    radial-gradient(ellipse at 40% 60%, #2a1a0a 0%, transparent 50%),
    linear-gradient(180deg, #120d06 0%, #080603 100%);
}
.scn-clearchus-warns-of-cyrus .lamp {
  position: absolute;
  bottom: 40%;
  left: 30%;
  width: 8px;
  height: 16px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 2px 2px 4px 4px;
  animation: cwc-lamp 3s ease-in-out infinite;
}
.scn-clearchus-warns-of-cyrus .glow {
  position: absolute;
  bottom: 40%;
  left: 28%;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(180, 100, 40, 0.5) 0%, transparent 60%);
  mix-blend-mode: screen;
  animation: cwc-glow 4s ease-in-out infinite alternate;
}
.scn-clearchus-warns-of-cyrus .crowd {
  position: absolute;
  bottom: 20%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #120d08 0%, #080503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cwc-crowd 6s ease-in-out infinite;
}
.scn-clearchus-warns-of-cyrus .sil-a {
  left: 15%;
  animation-duration: 5s;
}
.scn-clearchus-warns-of-cyrus .sil-b {
  right: 15%;
  animation-duration: 7s;
}
.scn-clearchus-warns-of-cyrus .speaker {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 45px;
  height: 70px;
  background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cwc-speaker 4s ease-in-out infinite;
}
.scn-clearchus-warns-of-cyrus .arm {
  position: absolute;
  bottom: 45%;
  left: 54%;
  width: 20px;
  height: 6px;
  background: #1a1008;
  border-radius: 6px;
  transform-origin: left center;
  animation: cwc-arm 2s ease-in-out infinite alternate;
}
.scn-clearchus-warns-of-cyrus .floor {
  position: absolute;
  bottom: 18%;
  left: 0;
  right: 0;
  height: 4%;
  background: linear-gradient(180deg, #201508 0%, #100a04 100%);
  border-radius: 2px;
}
@keyframes cwc-lamp {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes cwc-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes cwc-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes cwc-speaker {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes cwc-arm {
  0% { transform: rotate(-10deg); }
  100% { transform: rotate(30deg); }
}

.scn-speakers-propose-actions {
  background:
    radial-gradient(ellipse at 50% 60%, #3a2810 0%, transparent 60%),
    linear-gradient(180deg, #1a1208 0%, #0d0a04 100%);
}
.scn-speakers-propose-actions .torch {
  position: absolute;
  bottom: 30%;
  width: 6px;
  height: 18px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1808 100%);
  border-radius: 2px;
  transform-origin: bottom;
}
.scn-speakers-propose-actions .torch.glow {
  left: 20%;
  animation: spa-torch 3s ease-in-out infinite;
}
.scn-speakers-propose-actions .torch.glow-b {
  right: 20%;
  animation: spa-torch 4s ease-in-out infinite reverse;
}
.scn-speakers-propose-actions .stage {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 12%;
  background: linear-gradient(180deg, #3a2810 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
}
.scn-speakers-propose-actions .speaker-1 {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 40px;
  height: 65px;
  background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: spa-speak1 5s ease-in-out infinite;
}
.scn-speakers-propose-actions .speaker-2 {
  position: absolute;
  bottom: 20%;
  left: 70%;
  width: 36px;
  height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #120a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: spa-speak2 6s ease-in-out infinite;
}
.scn-speakers-propose-actions .listeners {
  position: absolute;
  bottom: 18%;
  width: 24px;
  height: 40px;
  background: linear-gradient(180deg, #0d0a04 0%, #080503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-speakers-propose-actions .sil-c { left: 12%; animation: spa-listen 8s ease-in-out infinite; }
.scn-speakers-propose-actions .sil-d { left: 22%; animation: spa-listen 7s ease-in-out infinite; }
.scn-speakers-propose-actions .sil-e { right: 12%; animation: spa-listen 9s ease-in-out infinite; }
@keyframes spa-torch {
  0% { transform: scaleY(1) rotate(-2deg); }
  50% { transform: scaleY(1.1) rotate(2deg); }
  100% { transform: scaleY(1) rotate(-2deg); }
}
@keyframes spa-speak1 {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(2deg); }
  40% { transform: translateY(0) rotate(-1deg); }
  60% { transform: translateY(-1px) rotate(1deg); }
  80% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes spa-speak2 {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(-2deg); }
  60% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes spa-listen {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-clearchus-declines-command {
  background:
    radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, transparent 50%),
    linear-gradient(180deg, #0d0a04 0%, #080503 100%);
}
.scn-clearchus-declines-command .brazier {
  position: absolute;
  bottom: 36%;
  left: 50%;
  transform: translateX(-50%);
  width: 16px;
  height: 12px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4px 4px 2px 2px;
  animation: cdc-brazier 4s ease-in-out infinite;
}
.scn-clearchus-declines-command .glow {
  position: absolute;
  bottom: 36%;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(180, 100, 40, 0.4) 0%, transparent 60%);
  mix-blend-mode: screen;
  animation: cdc-glow 3s ease-in-out infinite alternate;
}
.scn-clearchus-declines-command .figure {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 50px;
  height: 80px;
  background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cdc-figure 6s ease-in-out infinite;
}
.scn-clearchus-declines-command .hand {
  position: absolute;
  bottom: 48%;
  left: 50%;
  transform: translateX(-50%);
  width: 12px;
  height: 8px;
  background: #1a1008;
  border-radius: 4px;
  animation: cdc-hand 2s ease-in-out infinite alternate;
}
.scn-clearchus-declines-command .shadow {
  position: absolute;
  bottom: 18%;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: cdc-shadow 4s ease-in-out infinite;
}
.scn-clearchus-declines-command .wall {
  position: absolute;
  inset: 0 0 22% 0;
  background: linear-gradient(180deg, #120d08 0%, #0a0704 100%);
  opacity: 0.5;
  pointer-events: none;
}
@keyframes cdc-brazier {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.05); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes cdc-glow {
  0% { opacity: 0.5; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
}
@keyframes cdc-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes cdc-hand {
  0% { transform: translateX(-50%) rotate(-15deg); }
  100% { transform: translateX(-50%) rotate(15deg); }
}
@keyframes cdc-shadow {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(0.9); }
  100% { transform: translateX(-50%) scaleX(1); }
}

.scn-xenophon-recalls-incident {
  background: linear-gradient(180deg, #8a9a9e 0%, #6b7b7f 40%, #4a5a5e 100%),
              radial-gradient(ellipse at 50% 120%, #5a6a6e 0%, transparent 70%);
}
.scn-xenophon-recalls-incident .sky       { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0c0c4 0%, transparent 100%); animation: xr-sky 16s ease-in-out infinite alternate; }
.scn-xenophon-recalls-incident .hills-bg  { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a7a6e 0%, #4a5a4e 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 6px 14px rgba(0,0,0,.3); animation: xr-hills 24s ease-in-out infinite alternate; }
.scn-xenophon-recalls-incident .road      { position:absolute; bottom:30%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%; opacity:.7; }
.scn-xenophon-recalls-incident .figure-walker { position:absolute; bottom:28%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: xr-walk 4s ease-in-out infinite; }
.scn-xenophon-recalls-incident .figure-horse  { position:absolute; bottom:26%; left:48%; width:40px; height:35px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 30% 50% 30% 50% / 40% 50% 40% 50%; animation: xr-horse 4.5s ease-in-out infinite; }
.scn-xenophon-recalls-incident .pack      { position:absolute; bottom:30%; left:55%; width:18px; height:15px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20%; animation: xr-pack 4.5s ease-in-out infinite; }
@keyframes xr-sky   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes xr-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes xr-walk  { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes xr-horse { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(6px) translateY(-1px) } 50% { transform: translateX(12px) translateY(0) } 75% { transform: translateX(18px) translateY(-1px) } 100% { transform: translateX(24px) translateY(0) } }
@keyframes xr-pack  { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-3deg) } 50% { transform: translateX(4px) rotate(2deg) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-xenophon-tells-story-sick-man {
  background: linear-gradient(180deg, #9a9a8a 0%, #7a7a6a 40%, #5a5a4a 100%),
              radial-gradient(ellipse at 50% 110%, #6a6a5a 0%, transparent 70%);
}
.scn-xenophon-tells-story-sick-man .ground { position:absolute; bottom:20%; left:0; right:0; height:50%; background: linear-gradient(180deg, #6a6a4a 0%, #3a3a2a 100%); border-radius: 10% 10% 0 0; }
.scn-xenophon-tells-story-sick-man .trench { position:absolute; bottom:35%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-xenophon-tells-story-sick-man .prone-figure { position:absolute; bottom:40%; left:38%; width:30px; height:20px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: xt-prone 20s ease-in-out infinite; }
.scn-xenophon-tells-story-sick-man .digger { position:absolute; bottom:38%; left:55%; width:24px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: xt-dig 3s ease-in-out infinite; }
.scn-xenophon-tells-story-sick-man .shovel { position:absolute; bottom:45%; left:58%; width:4px; height:25px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 0 0 20% 20%; transform-origin: bottom center; animation: xt-shovel 3s ease-in-out infinite; }
.scn-xenophon-tells-story-sick-man .clouds { position:absolute; top:8%; left:10%; width:100px; height:20px; background: rgba(255,255,255,.15); border-radius: 50%; filter: blur(8px); animation: xt-clouds 45s linear infinite; }
@keyframes xt-prone   { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(1px) rotate(2deg) } }
@keyframes xt-dig     { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(2px) translateY(-3px) rotate(5deg) } 50% { transform: translateX(0) translateY(0) rotate(-5deg) } 75% { transform: translateX(-2px) translateY(-3px) rotate(5deg) } 100% { transform: translateX(0) translateY(0) rotate(-5deg) } }
@keyframes xt-shovel  { 0% { transform: rotate(-15deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(-15deg) } 75% { transform: rotate(10deg) } 100% { transform: rotate(-15deg) } }
@keyframes xt-clouds  { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

.scn-xenophon-justifies-blow {
  background: linear-gradient(180deg, #7a7a7e 0%, #5a5a5e 40%, #3a3a3e 100%),
              radial-gradient(ellipse at 50% 90%, #4a4a4e 0%, transparent 70%);
}
.scn-xenophon-justifies-blow .bg-ambient  { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,200,200,.05) 0%, transparent 100%); animation: xj-ambient 8s ease-in-out infinite alternate; }
.scn-xenophon-justifies-blow .figure-left { position:absolute; bottom:25%; left:20%; width:30px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: xj-left 4s ease-in-out infinite; }
.scn-xenophon-justifies-blow .figure-right { position:absolute; bottom:25%; right:20%; width:30px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%; transform-origin: bottom center; animation: xj-right 4.2s ease-in-out infinite; }
.scn-xenophon-justifies-blow .arm-extended { position:absolute; bottom:55%; left:35%; width:30px; height:4px; background: linear-gradient(90deg, #2a2a2a 0%, #5a5a5a 100%); border-radius: 4px; transform-origin: left center; animation: xj-arm 1.5s ease-in-out infinite alternate; }
.scn-xenophon-justifies-blow .dust        { position:absolute; bottom:20%; left:30%; right:30%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(100,90,80,.3) 0%, transparent 80%); filter: blur(3px); animation: xj-dust 5s ease-in-out infinite; }
@keyframes xj-ambient { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes xj-left    { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes xj-right   { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes xj-arm     { 0% { transform: rotate(-20deg) translateX(0) } 100% { transform: rotate(20deg) translateX(10px) } }
@keyframes xj-dust    { 0% { opacity:.2; transform: scaleY(1) } 50% { opacity:.4; transform: scaleY(1.2) } 100% { opacity:.2; transform: scaleY(1) } }

.scn-xenophon-admits-striking-for-discipline {
  background: linear-gradient(180deg, #8a8a8e 0%, #6a6a6e 40%, #4a4a4e 100%),
              radial-gradient(ellipse at 50% 100%, #5a5a5e 0%, transparent 70%);
}
.scn-xenophon-admits-striking-for-discipline .horizon { position:absolute; bottom:60%; left:0; right:0; height:40%; background: linear-gradient(180deg, #b0b0b4 0%, transparent 100%); }
.scn-xenophon-admits-striking-for-discipline .speaker { position:absolute; bottom:45%; left:15%; width:35px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: xs-speak 6s ease-in-out infinite; }
.scn-xenophon-admits-striking-for-discipline .soldiers-row1 { position:absolute; bottom:40%; left:45%; right:5%; height:40px; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 8px, transparent 8px, transparent 16px); opacity:.6; }
.scn-xenophon-admits-striking-for-discipline .soldiers-row2 { position:absolute; bottom:35%; left:40%; right:10%; height:35px; background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 7px, transparent 7px, transparent 14px); opacity:.5; animation: xs-row2 20s ease-in-out infinite; }
.scn-xenophon-admits-striking-for-discipline .ground-shadow { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.2) 0%, transparent 70%); filter: blur(5px); }
@keyframes xs-speak { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes xs-row2  { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }

/* Scene: army-split-into-three (overcast, tense) */
.scn-army-split-into-three {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 60%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 70%, #4a6a7a 0%, transparent 60%);
}
.scn-army-split-into-three .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); animation: as3-sky 12s ease-in-out infinite alternate; }
.scn-army-split-into-three .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 50% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-army-split-into-three .division { position:absolute; bottom:20%; height:18%; width:18%; border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: as3-march 4s ease-in-out infinite; }
.scn-army-split-into-three .division-1 { left:20%; width:14%; height:16%; animation-delay:0s; }
.scn-army-split-into-three .division-2 { left:45%; width:18%; height:20%; animation-delay:-1s; }
.scn-army-split-into-three .division-3 { left:68%; width:15%; height:17%; animation-delay:-2s; }
.scn-army-split-into-three .path { position:absolute; bottom:28%; left:10%; right:10%; height:2px; background: #4a5a4a; box-shadow: 0 0 4px #5a6a5a; animation: as3-path 8s ease-in-out infinite alternate; }
@keyframes as3-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes as3-march { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(0) } 75% { transform: translateX(8px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes as3-path { 0% { transform: scaleY(1); opacity:.3 } 50% { transform: scaleY(1.5); opacity:.6 } 100% { transform: scaleY(1); opacity:.3 } }

/* Scene: arcadians-sail-to-calpe (sunlit, tense) */
.scn-arcadians-sail-to-calpe {
  background: linear-gradient(180deg, #8ab0d0 0%, #6a90b0 50%, #4a7a9a 100%),
              radial-gradient(ellipse at 70% 30%, #c0d8f0 0%, transparent 70%);
}
.scn-arcadians-sail-to-calpe .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #9ac0e0 0%, #7aa0c0 100%); animation: asc-sky 15s ease-in-out infinite alternate; }
.scn-arcadians-sail-to-calpe .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-arcadians-sail-to-calpe .ship { position:absolute; bottom:25%; left:40%; width:30%; height:14%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-2deg); box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: asc-ship 6s ease-in-out infinite; }
.scn-arcadians-sail-to-calpe .sail { position:absolute; bottom:28%; left:45%; width:8%; height:20%; background: linear-gradient(180deg, #e0e8f0 0%, #c0c8d0 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); transform: rotate(5deg); animation: asc-sail 8s ease-in-out infinite alternate; }
.scn-arcadians-sail-to-calpe .sun { position:absolute; top:15%; right:20%; width:8%; height:12%; background: radial-gradient(circle, #ffd080 0%, #e8b050 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,128,.5); animation: asc-sun 4s ease-in-out infinite alternate; }
.scn-arcadians-sail-to-calpe .cliff { position:absolute; right:5%; bottom:15%; width:20%; height:40%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.5); }
.scn-arcadians-sail-to-calpe .wave-1, .scn-arcadians-sail-to-calpe .wave-2 { position:absolute; bottom:8%; height:8%; width:100%; background: linear-gradient(180deg, #4a7a9a 0%, transparent 100%); border-radius:50%; filter: blur(4px); }
.scn-arcadians-sail-to-calpe .wave-1 { left:-10%; animation: asc-wave 8s linear infinite; }
.scn-arcadians-sail-to-calpe .wave-2 { left:-30%; animation: asc-wave 10s linear infinite reverse; opacity:.6; }
@keyframes asc-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes asc-ship { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } }
@keyframes asc-sail { 0% { transform: rotate(5deg) scaleX(1) } 50% { transform: rotate(8deg) scaleX(1.1) } 100% { transform: rotate(5deg) scaleX(1) } }
@keyframes asc-sun { 0% { opacity:.7; box-shadow: 0 0 30px 15px rgba(255,208,128,.4) } 100% { opacity:1; box-shadow: 0 0 50px 25px rgba(255,208,128,.6) } }
@keyframes asc-wave { 0% { transform: translateX(0) } 100% { transform: translateX(100%) } }

/* Scene: arcadians-attack-villages (dawn, tense) */
.scn-arcadians-attack-villages {
  background: linear-gradient(180deg, #c87040 0%, #9a5a30 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 20%, #e0a060 0%, transparent 60%);
}
.scn-arcadians-attack-villages .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d09060 0%, #b07040 100%); animation: aav-sky 10s ease-in-out infinite alternate; }
.scn-arcadians-attack-villages .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 30% 0 0 / 50% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-arcadians-attack-villages .hut { position:absolute; bottom:20%; width:10%; height:12%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: aav-hut 5s ease-in-out infinite; }
.scn-arcadians-attack-villages .hut-1 { left:15%; }
.scn-arcadians-attack-villages .hut-2 { left:35%; height:10%; width:12%; animation-delay:-1.5s; }
.scn-arcadians-attack-villages .hut-3 { left:55%; height:14%; width:11%; animation-delay:-3s; }
.scn-arcadians-attack-villages .soldiers { position:absolute; bottom:15%; left:40%; width:20%; height:18%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 20% 20%; clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%); animation: aav-soldiers 3s ease-in-out infinite; }
.scn-arcadians-attack-villages .smoke { position:absolute; top:15%; left:25%; width:15%; height:20%; background: linear-gradient(180deg, rgba(200,180,160,.4) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: aav-smoke 12s ease-in-out infinite; }
@keyframes aav-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes aav-hut { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes aav-soldiers { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(5px) translateY(-2px) } 50% { transform: translateX(10px) translateY(0) } 75% { transform: translateX(5px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes aav-smoke { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-10px) scale(1.2); opacity:.6 } 100% { transform: translateY(0) scale(1); opacity:.3 } }

/* Scene: arcadians-routed (overcast, dark) */
.scn-arcadians-routed {
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 60%, #050a15 100%),
              radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, transparent 70%);
}
.scn-arcadians-routed .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); animation: ar-sky 15s ease-in-out infinite alternate; }
.scn-arcadians-routed .gorge-left, .scn-arcadians-routed .gorge-right { position:absolute; bottom:0; width:30%; height:70%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); }
.scn-arcadians-routed .gorge-left { left:0; clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 0% 0%); }
.scn-arcadians-routed .gorge-right { right:0; clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 20% 0%); }
.scn-arcadians-routed .ground { position:absolute; bottom:0; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 10% 10% 0 0; }
.scn-arcadians-routed .figures { position:absolute; bottom:5%; height:15%; width:12%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 20% 20%; animation: ar-figures 5s ease-in-out infinite; }
.scn-arcadians-routed .figures-1 { left:30%; animation-delay:0s; }
.scn-arcadians-routed .figures-2 { left:55%; animation-delay:-2s; opacity:.7; }
.scn-arcadians-routed .river { position:absolute; bottom:10%; left:25%; right:25%; height:2px; background: #2a4a5a; box-shadow: 0 0 4px #3a5a6a; animation: ar-river 10s linear infinite; }
@keyframes ar-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes ar-figures { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes ar-river { 0% { transform: scaleX(1); opacity:.2 } 50% { transform: scaleX(1.2); opacity:.5 } 100% { transform: scaleX(1); opacity:.2 } }

/* Scene: second-raid-planned */
.scn-second-raid-planned {
  background: linear-gradient(180deg, #0b0b1e 0%, #1a1a3e 40%, #2c1e2e 100%),
              radial-gradient(ellipse at 80% 20%, #3a2a4a 0%, transparent 60%);
}
.scn-second-raid-planned .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #12122a 0%, #0a0a1a 100%); animation: srp-sky 6s ease-in-out infinite alternate; }
.scn-second-raid-planned .moon { position:absolute; top:8%; left:75%; width:40px; height:40px; background: radial-gradient(circle, #d0d0e8 0%, #9090b0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,200,230,0.3); animation: srp-moon 8s ease-in-out infinite; }
.scn-second-raid-planned .tower { position:absolute; bottom:30%; left:20%; width:60px; height:100px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:6% 6% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); }
.scn-second-raid-planned .torch { position:absolute; bottom:48%; left:22%; width:4px; height:8px; background: radial-gradient(circle, #e08020 0%, #a04010 100%); border-radius:50%; box-shadow: 0 0 20px 6px #d06020; animation: srp-torch 0.8s ease-in-out infinite alternate; }
.scn-second-raid-planned .figure-1 { position:absolute; bottom:28%; left:40%; width:16px; height:36px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a24 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: srp-figure1 3s ease-in-out infinite; }
.scn-second-raid-planned .figure-2 { position:absolute; bottom:28%; left:55%; width:14px; height:34px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a24 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: srp-figure2 3.5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-second-raid-planned .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius:60% 50% 0 0 / 40% 30% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); }
@keyframes srp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes srp-moon { 0% { transform: translateY(0); box-shadow: 0 0 30px 10px rgba(200,200,230,0.3); } 50% { transform: translateY(-2px); box-shadow: 0 0 40px 12px rgba(200,200,230,0.4); } 100% { transform: translateY(0); box-shadow: 0 0 30px 10px rgba(200,200,230,0.3); } }
@keyframes srp-torch { 0% { box-shadow: 0 0 15px 4px #d06020; opacity:0.8; } 50% { box-shadow: 0 0 25px 8px #f08030; opacity:1; } 100% { box-shadow: 0 0 18px 5px #d06020; opacity:0.9; } }
@keyframes srp-figure1 { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes srp-figure2 { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-5px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }

/* Scene: xenophon-honored */
.scn-xenophon-honored {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 30%, #e0e8f0 60%, #c8b888 100%),
              radial-gradient(ellipse at 30% 10%, #fff8e0 0%, transparent 50%);
}
.scn-xenophon-honored .sky-warm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8fc8f0 0%, #b8d8f8 100%); animation: xh-sky 10s ease-in-out infinite alternate; }
.scn-xenophon-honored .sun { position:absolute; top:12%; left:30%; width:60px; height:60px; background: radial-gradient(circle, #ffe680 0%, #ffd060 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,214,96,0.4); animation: xh-sun 8s ease-in-out infinite; }
.scn-xenophon-honored .city-wall { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%); border-radius:0 0 10% 10% / 0 0 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-xenophon-honored .xenophon { position:absolute; bottom:28%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: xh-xeno 4s ease-in-out infinite; }
.scn-xenophon-honored .soldier-left { position:absolute; bottom:28%; left:35%; width:16px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: xh-soldier-l 5s ease-in-out infinite; }
.scn-xenophon-honored .soldier-right { position:absolute; bottom:28%; left:55%; width:16px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: xh-soldier-r 5s ease-in-out infinite; animation-delay: 1s; }
.scn-xenophon-honored .gift-horse { position:absolute; bottom:24%; left:25%; width:40px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: xh-horse 6s ease-in-out infinite; }
.scn-xenophon-honored .gift-cattle { position:absolute; bottom:22%; left:65%; width:50px; height:18px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: xh-cattle 7s ease-in-out infinite; animation-delay: 0.5s; }
@keyframes xh-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes xh-sun { 0% { transform: translateY(0); box-shadow: 0 0 60px 20px rgba(255,214,96,0.4); } 50% { transform: translateY(-3px); box-shadow: 0 0 70px 25px rgba(255,214,96,0.5); } 100% { transform: translateY(0); box-shadow: 0 0 60px 20px rgba(255,214,96,0.4); } }
@keyframes xh-xeno { 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 xh-soldier-l { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(8px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xh-soldier-r { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-4px) rotate(-1deg); } 60% { transform: translateX(-8px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xh-horse { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes xh-cattle { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.01) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }

/* Scene: thibron-arrives */
.scn-thibron-arrives {
  background: linear-gradient(180deg, #a8d8f0 0%, #c8e8f8 40%, #e0f0f8 70%, #c0d8c0 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
}
.scn-thibron-arrives .sea-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d8f0 0%, #d0e8f8 100%); animation: ta-sky 12s ease-in-out infinite alternate; }
.scn-thibron-arrives .horizon { position:absolute; bottom:40%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, #8aa8b8 50%, transparent 100%); filter: blur(2px); }
.scn-thibron-arrives .ship { position:absolute; bottom:35%; left:30%; width:80px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 50% 50% / 20% 20% 40% 40%; animation: ta-ship 8s ease-in-out infinite; }
.scn-thibron-arrives .sail { position:absolute; bottom:40%; left:32%; width:20px; height:40px; background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b8 100%); border-radius:10% 10% 20% 20% / 30% 30% 40% 40%; transform-origin: bottom; animation: ta-sail 6s ease-in-out infinite alternate; }
.scn-thibron-arrives .soldiers { position:absolute; bottom:28%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; animation: ta-soldiers 5s ease-in-out infinite; }
.scn-thibron-arrives .waves { position:absolute; bottom:30%; left:0; right:0; height:12%; background: repeating-linear-gradient(90deg, transparent, rgba(255,255,255,0.2) 20px, transparent 40px); background-size: 100% 100%; animation: ta-waves 15s linear infinite; }
.scn-thibron-arrives .camp-tent { position:absolute; bottom:20%; left:65%; width:50px; height:40px; background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); animation: ta-tent 10s ease-in-out infinite alternate; }
@keyframes ta-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ta-ship { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-1px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(5px) translateY(1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ta-sail { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(15deg); } 100% { transform: rotateY(0deg); } }
@keyframes ta-soldiers { 0% { transform: translateX(0); } 30% { transform: translateX(6px); } 60% { transform: translateX(12px); } 100% { transform: translateX(0); } }
@keyframes ta-waves { 0% { background-position: 0 0; } 100% { background-position: 200px 0; } }
@keyframes ta-tent { 0% { transform: scaleX(1); box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); } 50% { transform: scaleX(1.02) translateY(-1px); box-shadow: inset 0 -12px 22px rgba(0,0,0,0.25); } 100% { transform: scaleX(1); box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); } }

.scn-xenophon-calls-to-action {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-calls-to-action .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  animation: xc-wall 20s ease-in-out infinite alternate;
}
.scn-xenophon-calls-to-action .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-xenophon-calls-to-action .column-left,
.scn-xenophon-calls-to-action .column-right {
  position: absolute; bottom: 35%; width: 12px; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px #2a1a0a;
}
.scn-xenophon-calls-to-action .column-left { left: 20%; }
.scn-xenophon-calls-to-action .column-right { right: 20%; }
.scn-xenophon-calls-to-action .torch {
  position: absolute; bottom: 55%; left: 50%; width: 8px; height: 16px;
  margin-left: -4px;
  background: linear-gradient(180deg, #ffaa44 0%, #cc6622 50%, #331100 100%);
  border-radius: 50% 50% 0 0;
  animation: xc-torch 2s ease-in-out infinite alternate;
  box-shadow: 0 0 40px #ffaa44, 0 0 80px rgba(255,170,68,0.3);
}
.scn-xenophon-calls-to-action .speaker {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xc-speaker 8s ease-in-out infinite;
}
.scn-xenophon-calls-to-action .officers {
  position: absolute; bottom: 35%; left: 55%; width: 80px; height: 36px;
  background: linear-gradient(90deg, transparent 0%, #1a0a00 20%, #1a0a00 80%, transparent 100%);
  border-radius: 30% 30% 0 0;
  animation: xc-officers 12s ease-in-out infinite alternate;
}
.scn-xenophon-calls-to-action .table {
  position: absolute; bottom: 33%; left: 42%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
@keyframes xc-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xc-torch { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.1) rotate(0deg); } 100% { transform: scaleY(1) rotate(2deg); } }
@keyframes xc-speaker { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } }
@keyframes xc-officers { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-officers-respond-apollonides {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #050510 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a3e 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-officers-respond-apollonides .tent-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #1a1a2e 30%, #0e0e1a 70%);
  animation: of-wall 25s ease-in-out infinite alternate;
}
.scn-officers-respond-apollonides .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-officers-respond-apollonides .brazier {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 30px;
  margin-left: -10px;
  background: radial-gradient(ellipse at 50% 30%, #ff6633 0%, #993322 60%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: of-brazier 3s ease-in-out infinite alternate;
  box-shadow: 0 0 60px #ff6633, 0 0 120px rgba(255,102,51,0.3);
}
.scn-officers-respond-apollonides .speaker-apollonides {
  position: absolute; bottom: 37%; left: 42%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  animation: of-speaker 4s ease-in-out infinite;
}
.scn-officers-respond-apollonides .officer-silhouette {
  position: absolute; bottom: 37%; width: 14px; height: 30px;
  background: #0a0a1a;
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  animation: of-officer 6s ease-in-out infinite alternate;
}
.scn-officers-respond-apollonides .officer-silhouette.alt {
  left: 55%;
  animation-delay: -2s;
}
@keyframes of-wall { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes of-brazier { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.15) rotate(3deg); } 100% { transform: scaleY(1) rotate(-3deg); } }
@keyframes of-speaker { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes of-officer { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-xenophon-rebukes-apollonides {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%, #0a0000 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-rebukes-apollonides .alcove {
  position: absolute; inset: 0 10% 35% 10%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px #0a0000;
}
.scn-xenophon-rebukes-apollonides .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  background-size: 20px 20px;
  animation: xr-floor 10s linear infinite;
}
.scn-xenophon-rebukes-apollonides .lamp {
  position: absolute; bottom: 55%; left: 50%; width: 8px; height: 12px;
  margin-left: -4px;
  background: radial-gradient(circle at 50% 20%, #ffcc55 0%, #cc8822 60%, #331100 100%);
  border-radius: 50% 50% 0 0;
  animation: xr-lamp 2.5s ease-in-out infinite alternate;
  box-shadow: 0 0 30px #ffcc55, 0 0 80px rgba(255,204,85,0.4);
}
.scn-xenophon-rebukes-apollonides .xenophon-figure {
  position: absolute; bottom: 32%; left: 38%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: xr-xen 6s ease-in-out infinite;
}
.scn-xenophon-rebukes-apollonides .apollonides-figure {
  position: absolute; bottom: 31%; left: 52%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xr-apol 4s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-xenophon-rebukes-apollonides .shadow-line {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 2px;
  background: rgba(0,0,0,0.6);
  animation: xr-shadow 8s ease-in-out infinite;
}
@keyframes xr-floor { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes xr-lamp { 0% { transform: scaleY(1) rotate(-5deg); } 50% { transform: scaleY(1.2) rotate(0deg); } 100% { transform: scaleY(1) rotate(5deg); } }
@keyframes xr-xen { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(3deg); } }
@keyframes xr-apol { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes xr-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-apollonides-banished {
  background:
    linear-gradient(180deg, #1a0a00 0%, #0a0000 50%, #050000 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-apollonides-banished .doorway {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 70px;
  margin-left: -30px;
  background: linear-gradient(180deg, #0a0000 0%, #050000 100%);
  border: 2px solid #1a0a00;
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 20px #000;
  animation: ap-doorway 15s ease-in-out infinite alternate;
}
.scn-apollonides-banished .guard-left,
.scn-apollonides-banished .guard-right {
  position: absolute; bottom: 38%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  animation: ap-guard 10s ease-in-out infinite alternate;
}
.scn-apollonides-banished .guard-left { left: 35%; }
.scn-apollonides-banished .guard-right { right: 35%; animation-delay: -2s; }
.scn-apollonides-banished .apollonides-exit {
  position: absolute; bottom: 37%; left: 42%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  animation: ap-exit 6s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-apollonides-banished .torch-left,
.scn-apollonides-banished .torch-right {
  position: absolute; bottom: 60%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #ffaa44 0%, #cc6622 60%, #331100 100%);
  border-radius: 50% 50% 0 0;
  animation: ap-torch 2s ease-in-out infinite alternate;
  box-shadow: 0 0 20px #ffaa44, 0 0 40px rgba(255,170,68,0.3);
}
.scn-apollonides-banished .torch-left { left: 30%; }
.scn-apollonides-banished .torch-right { right: 30%; animation-delay: -1s; }
.scn-apollonides-banished .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, #050000 100%);
  animation: ap-shadow 20s ease-in-out infinite;
}
@keyframes ap-doorway { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes ap-guard { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ap-exit { 0%,100% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(15px) rotate(3deg); } }
@keyframes ap-torch { 0% { transform: scaleY(1) rotate(-5deg); } 50% { transform: scaleY(1.2) rotate(0deg); } 100% { transform: scaleY(1) rotate(5deg); } }
@keyframes ap-shadow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-seuthes-signals-attack { 
  background: linear-gradient(180deg, #4a6a8a 0%, #7a9ab0 40%, #c0d0e0 70%, #e0e8f0 100%), radial-gradient(ellipse at 60% 80%, rgba(255,220,150,.15) 0%, transparent 70%);
  background-blend-mode: overlay, normal;
}
.scn-seuthes-signals-attack .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a7a9a 0%, #8aacc0 60%, transparent 100%); animation: se-sky 20s ease-in-out infinite alternate; }
.scn-seuthes-signals-attack .mountain-bg { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: se-mtn 15s ease-in-out infinite alternate; }
.scn-seuthes-signals-attack .plain { position:absolute; bottom:10%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%); border-radius: 20% 20% 0 0; }
.scn-seuthes-signals-attack .cavalry { position:absolute; bottom:18%; left:20%; width:30px; height:22px; background: linear-gradient(135deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 40% 30% 20% 20% / 60% 50% 40% 40%; transform: rotate(10deg); animation: se-cav 8s ease-in-out infinite; }
.scn-seuthes-signals-attack .peltast { position:absolute; bottom:16%; left:45%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: se-pelt 6s ease-in-out infinite; }
.scn-seuthes-signals-attack .dust { position:absolute; bottom:18%; left:15%; width:80px; height:10px; background: rgba(200,180,140,.2); border-radius: 50%; filter: blur(4px); animation: se-dust 4s ease-in-out infinite; }
.scn-seuthes-signals-attack .spear { position:absolute; bottom:24%; left:22%; width:2px; height:20px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a1a 100%); transform: rotate(15deg); animation: se-spear 2s ease-in-out infinite alternate; }
@keyframes se-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes se-mtn { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes se-cav { 0% { transform: translateX(0) rotate(10deg) scale(1) } 25% { transform: translateX(5px) rotate(12deg) scale(1.02) } 50% { transform: translateX(10px) rotate(8deg) scale(1) } 75% { transform: translateX(15px) rotate(11deg) scale(1.01) } 100% { transform: translateX(20px) rotate(10deg) scale(1) } }
@keyframes se-pelt { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(8px) rotate(2deg) } 66% { transform: translateX(16px) rotate(-1deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes se-dust { 0% { opacity:.1; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(1.5) } 100% { opacity:.1; transform: scaleX(1) } }
@keyframes se-spear { 0% { transform: rotate(10deg) translateY(0) } 100% { transform: rotate(20deg) translateY(-2px) } }

.scn-capture-of-villages {
  background: linear-gradient(180deg, #5a7a6a 0%, #8aaa8a 30%, #c0d0a0 60%, #e0e8c0 100%), radial-gradient(ellipse at 70% 60%, rgba(255,200,100,.1) 0%, transparent 60%);
}
.scn-capture-of-villages .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8aaccc 0%, #b0d0e0 50%, transparent 100%); animation: cv-sky 25s ease-in-out infinite alternate; }
.scn-capture-of-villages .village-bg { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%); border-radius: 10% 30% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.3); }
.scn-capture-of-villages .hut-left { position:absolute; bottom:35%; left:15%; width:40px; height:30px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 5% 5%; animation: cv-hut 12s ease-in-out infinite alternate; }
.scn-capture-of-villages .hut-right { position:absolute; bottom:33%; right:20%; width:50px; height:35px; background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%); border-radius: 8% 8% 4% 4%; animation: cv-hut 12s ease-in-out infinite alternate-reverse; }
.scn-capture-of-villages .soldier-run { position:absolute; bottom:28%; left:30%; width:16px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: cv-run 4s ease-in-out infinite; }
.scn-capture-of-villages .soldier-stop { position:absolute; bottom:27%; left:55%; width:14px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; animation: cv-stop 3s ease-in-out infinite alternate; }
.scn-capture-of-villages .smoke { position:absolute; top:18%; left:40%; width:30px; height:20px; background: rgba(180,160,140,.2); border-radius: 50%; filter: blur(5px); animation: cv-smoke 10s ease-in-out infinite; }
@keyframes cv-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cv-hut { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes cv-run { 0% { transform: translateX(0) rotate(-3deg) } 33% { transform: translateX(10px) rotate(2deg) } 66% { transform: translateX(20px) rotate(-1deg) } 100% { transform: translateX(30px) rotate(0deg) } }
@keyframes cv-stop { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-1px) scale(1.03) } }
@keyframes cv-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.2 } 50% { transform: translateY(-10px) translateX(5px) scale(1.4); opacity:.4 } 100% { transform: translateY(-20px) translateX(-5px) scale(1.8); opacity:0 } }

.scn-xenophon-secures-heights {
  background: linear-gradient(180deg, #3a4a5a 0%, #5a7a8a 40%, #8aacb0 70%, #b0c8d0 100%), radial-gradient(ellipse at 50% 30%, rgba(200,230,240,.15) 0%, transparent 70%);
}
.scn-xenophon-secures-heights .cliff-bg { position:absolute; bottom:20%; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 60% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-xenophon-secures-heights .cliff-mid { position:absolute; bottom:30%; left:10%; right:20%; height:40%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-xenophon-secures-heights .cliff-fore { position:absolute; bottom:25%; left:25%; right:15%; height:35%; background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%); border-radius: 40% 60% 0 0 / 20% 40% 0 0; }
.scn-xenophon-secures-heights .soldier { position:absolute; bottom:28%; left:38%; width:18px; height:34px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xh-soldier 6s ease-in-out infinite; }
.scn-xenophon-secures-heights .shield { position:absolute; bottom:30%; left:35%; width:12px; height:18px; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-10deg); animation: xh-shield 3s ease-in-out infinite alternate; }
.scn-xenophon-secures-heights .spear { position:absolute; bottom:34%; left:40%; width:2px; height:26px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%); transform: rotate(20deg); animation: xh-spear 2s ease-in-out infinite alternate; }
.scn-xenophon-secures-heights .sky-glow { position:absolute; top:5%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse, rgba(255,220,150,.08) 0%, transparent 70%); animation: xh-glow 15s ease-in-out infinite alternate; }
@keyframes xh-soldier { 0% { transform: translateY(0) rotate(-1deg) } 33% { transform: translateY(-3px) rotate(1deg) } 66% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes xh-shield { 0% { transform: rotate(-15deg) translateX(0) } 100% { transform: rotate(5deg) translateX(2px) } }
@keyframes xh-spear { 0% { transform: rotate(15deg) translateY(0) } 100% { transform: rotate(25deg) translateY(-2px) } }
@keyframes xh-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } 100% { opacity:.4; transform: scale(1.1) } }

.scn-seuthes-burns-villages {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #2a2a4a 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 40%, rgba(200,80,30,.2) 0%, rgba(200,80,30,0) 70%);
}
.scn-seuthes-burns-villages .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a2a 0%, #2a2a4a 60%, transparent 100%); animation: sb-night 30s ease-in-out infinite alternate; }
.scn-seuthes-burns-villages .hut-burning { position:absolute; bottom:25%; left:50%; width:60px; height:50px; background: linear-gradient(180deg, #8a3a2a 0%, #5a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 40px 10px #c8553d, inset 0 0 20px #c8553d; animation: sb-hut 4s ease-in-out infinite alternate; transform: translateX(-50%); }
.scn-seuthes-burns-villages .fire-glow { position:absolute; bottom:25%; left:45%; width:80px; height:60px; background: radial-gradient(circle, rgba(200,80,30,.5) 0%, rgba(200,80,30,.2) 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: sb-fire 3s ease-in-out infinite; }
.scn-seuthes-burns-villages .ember { position:absolute; bottom:45%; left:48%; width:4px; height:4px; background: #d87840; border-radius: 50%; box-shadow: 0 0 6px #d87840; animation: sb-ember 1.5s ease-in-out infinite; }
.scn-seuthes-burns-villages .soldier-silhouette { position:absolute; bottom:18%; left:30%; width:20px; height:40px; background: #0a0a0a; border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; animation: sb-soldier 8s ease-in-out infinite; }
.scn-seuthes-burns-villages .smoke-cloud { position:absolute; top:12%; left:35%; width:100px; height:40px; background: rgba(20,15,10,.3); border-radius: 50%; filter: blur(10px); animation: sb-smoke 20s linear infinite; }
.scn-seuthes-burns-villages .dawn-edge { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, #3a4a5a 40%, #6a8a9a 100%); }
@keyframes sb-night { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sb-hut { 0% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow:0 0 30px 8px #c8553d } 50% { transform: translateX(-50%) scale(1.05) rotate(1deg); box-shadow:0 0 50px 15px #c8553d } 100% { transform: translateX(-50%) scale(1) rotate(-1deg); box-shadow:0 0 35px 10px #c8553d } }
@keyframes sb-fire { 0% { transform: translateY(0) scale(1); opacity:.6 } 50% { transform: translateY(-5px) scale(1.2); opacity:1 } 100% { transform: translateY(2px) scale(1.1); opacity:.7 } }
@keyframes sb-ember { 0% { transform: translate(0,0); opacity:.8 } 25% { transform: translate(5px,-12px); opacity:.6 } 50% { transform: translate(-3px,-25px); opacity:.4 } 75% { transform: translate(8px,-40px); opacity:.2 } 100% { transform: translate(0,-50px); opacity:0 } }
@keyframes sb-soldier { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(2deg) } 100% { transform: translateX(20px) rotate(-1deg) } }
@keyframes sb-smoke { 0% { transform: translateX(-20px) translateY(0) scale(1); opacity:.3 } 50% { transform: translateX(30px) translateY(-15px) scale(1.5); opacity:.5 } 100% { transform: translateX(80px) translateY(-30px) scale(2); opacity:0 } }

/* Scene: xenophon-counters-threat */
.scn-xenophon-counters-threat {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 60%, #0a0a14 100%),
    radial-gradient(ellipse at 30% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-xenophon-counters-threat .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #141428 0%, #0a0a1a 100%); animation: xct-pulse 8s ease-in-out infinite; }
.scn-xenophon-counters-threat .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 100%); border-radius: 20% 20% 0 0; }
.scn-xenophon-counters-threat .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #0e0e1a 0%, #1a1a2e 100%); clip-path: polygon(0% 0%, 100% 10%, 100% 90%, 0% 100%); }
.scn-xenophon-counters-threat .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(270deg, #0e0e1a 0%, #1a1a2e 100%); clip-path: polygon(0% 10%, 100% 0%, 100% 100%, 0% 90%); }
.scn-xenophon-counters-threat .figure-xenophon { position:absolute; bottom:22%; left:38%; width:30px; height:70px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xct-fig 4s ease-in-out infinite alternate; }
.scn-xenophon-counters-threat .figure-threat { position:absolute; bottom:22%; right:28%; width:30px; height:68px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xct-threat 5s ease-in-out infinite; }
.scn-xenophon-counters-threat .spear { position:absolute; bottom:30%; right:32%; width:4px; height:50px; background: linear-gradient(180deg, #666 0%, #333 100%); transform: rotate(-20deg); animation: xct-spear 3s ease-in-out infinite alternate; }
.scn-xenophon-counters-threat .lantern { position:absolute; bottom:40%; left:30%; width:14px; height:20px; background: radial-gradient(circle, #b87878 0%, #5e1a1d 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #5e1a1d, 0 0 40px 12px rgba(94,26,29,.4); animation: xct-lantern 2s ease-in-out infinite alternate; }
.scn-xenophon-counters-threat .shadow-glow { position:absolute; bottom:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(180,120,120,.2) 0%, transparent 70%); pointer-events:none; }
@keyframes xct-pulse { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes xct-fig { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes xct-threat { 0%,100% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-1deg) } }
@keyframes xct-spear { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } }
@keyframes xct-lantern { 0%,100% { opacity:.6; box-shadow: 0 0 15px 4px #5e1a1d, 0 0 30px 8px rgba(94,26,29,.3) } 50% { opacity:1; box-shadow: 0 0 25px 8px #b87878, 0 0 50px 16px rgba(184,120,120,.5) } }

/* Scene: sinopean-response */
.scn-sinopean-response {
  background: 
    linear-gradient(180deg, #2c2c3a 0%, #1e1e2a 50%, #141420 100%),
    radial-gradient(ellipse at 70% 50%, #3a3a4e 0%, transparent 60%);
}
.scn-sinopean-response .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #1e1e2c 0%, #141428 100%); animation: sr-room 12s ease-in-out infinite alternate; }
.scn-sinopean-response .table { position:absolute; bottom:20%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-sinopean-response .ambassador-a { position:absolute; bottom:25%; left:30%; width:28px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-fig-a 6s ease-in-out infinite; }
.scn-sinopean-response .ambassador-b { position:absolute; bottom:25%; right:30%; width:28px; height:55px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-fig-b 7s ease-in-out infinite; }
.scn-sinopean-response .scroll { position:absolute; bottom:30%; left:42%; width:12px; height:24px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(10deg); animation: sr-scroll 5s ease-in-out infinite alternate; }
.scn-sinopean-response .candle { position:absolute; bottom:35%; left:55%; width:6px; height:18px; background: linear-gradient(180deg, #b8a878 0%, #8a7a5a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 8px 2px #d8c898; animation: sr-candle 4s ease-in-out infinite; }
.scn-sinopean-response .glow-soft { position:absolute; bottom:15%; left:30%; right:30%; height:35%; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,140,.15) 0%, transparent 70%); pointer-events:none; }
@keyframes sr-room { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes sr-fig-a { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes sr-fig-b { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes sr-scroll { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } }
@keyframes sr-candle { 0%,100% { opacity:.7; box-shadow: 0 0 8px 2px #d8c898 } 50% { opacity:1; box-shadow: 0 0 16px 6px #f0d8a8 } }

/* Scene: gifts-and-entertainment */
.scn-gifts-and-entertainment {
  background: 
    linear-gradient(180deg, #3a1a0a 0%, #2a0e00 40%, #1a0a00 100%),
    radial-gradient(ellipse at 30% 40%, #5a2a10 0%, transparent 80%);
}
.scn-gifts-and-entertainment .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #2a0e00 0%, #1a0800 100%); animation: ge-glow 6s ease-in-out infinite alternate; }
.scn-gifts-and-entertainment .hearth { position:absolute; bottom:10%; left:5%; width:40%; height:30%; background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 50%, #3a1000 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5), 0 0 40px 10px #c8553d; animation: ge-fire 2s ease-in-out infinite; }
.scn-gifts-and-entertainment .table-gifts { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:40%; height:10%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1000 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-gifts-and-entertainment .goblet { position:absolute; bottom:22%; left:55%; width:10px; height:16px; background: linear-gradient(180deg, #b8a070 0%, #7a6030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ge-goblet 8s ease-in-out infinite; }
.scn-gifts-and-entertainment .figure-host { position:absolute; bottom:18%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ge-host 5s ease-in-out infinite; }
.scn-gifts-and-entertainment .figure-guest { position:absolute; bottom:18%; right:35%; width:30px; height:60px; background: linear-gradient(180deg, #5a2a1a 0%, #2a0e00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ge-guest 6s ease-in-out infinite; }
.scn-gifts-and-entertainment .fire-glow { position:absolute; bottom:5%; left:0; right:0; height:50%; background: radial-gradient(ellipse at 20% 100%, rgba(200,85,61,.3) 0%, transparent 70%); pointer-events:none; }
.scn-gifts-and-entertainment .smoke { position:absolute; top:15%; left:10%; width:40px; height:30px; background: rgba(200,180,160,.08); border-radius: 50%; filter: blur(10px); animation: ge-smoke 12s linear infinite; }
@keyframes ge-glow { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ge-fire { 0%,100% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-3px) } }
@keyframes ge-goblet { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }
@keyframes ge-host { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes ge-guest { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes ge-smoke { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-20px) scale(1.3); opacity:.1 } 100% { transform: translateY(-40px) scale(1.6); opacity:0 } }

/* Scene: assembly-consult-sinopeans */
.scn-assembly-consult-sinopeans {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #c8e8ff 40%, #ffffff 100%),
    radial-gradient(ellipse at 50% 30%, #e0f0ff 0%, transparent 80%);
}
.scn-assembly-consult-sinopeans .bg-sunlit { position:absolute; inset:0; background: linear-gradient(135deg, #b0d8f0 0%, #d0e8ff 100%); animation: acs-sky 20s ease-in-out infinite alternate; }
.scn-assembly-consult-sinopeans .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #b8a060 0%, #d8c880 100%); }
.scn-assembly-consult-sinopeans .platform { position:absolute; bottom:20%; left:40%; right:40%; height:8%; background: linear-gradient(180deg, #7a6a3a 0%, #5a4a22 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.2); }
.scn-assembly-consult-sinopeans .speaker { position:absolute; bottom:26%; left:45%; width:25px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: acs-speak 4s ease-in-out infinite; }
.scn-assembly-consult-sinopeans .soldiers-left { position:absolute; bottom:22%; left:10%; width:18px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: acs-sold-l 8s ease-in-out infinite; }
.scn-assembly-consult-sinopeans .soldiers-right { position:absolute; bottom:22%; right:10%; width:18px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: acs-sold-r 9s ease-in-out infinite; }
.scn-assembly-consult-sinopeans .sun-rays { position:absolute; top:0; left:30%; right:30%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 60%); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); animation: acs-rays 15s ease-in-out infinite alternate; }
.scn-assembly-consult-sinopeans .shadow-hard { position:absolute; bottom:0; left:40%; right:40%; height:25%; background: linear-gradient(0deg, rgba(0,0,0,.3) 0%, transparent 100%); pointer-events:none; }
@keyframes acs-sky { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes acs-speak { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes acs-sold-l { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes acs-sold-r { 0%,100% { transform: translateY(0) } 50% { transform: translateY(1px) } }
@keyframes acs-rays { 0%,100% { opacity:.2 } 50% { opacity:.4 } }

.scn-dinner-with-seuthes { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a12 40%, #6a3a1a 70%, #3a1a0a 100%), radial-gradient(ellipse at 50% 70%, #7a4a2a 0%, transparent 60%); }
.scn-dinner-with-seuthes .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2010 0%, #5a2a12 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-dinner-with-seuthes .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a2a12 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.7); }
.scn-dinner-with-seuthes .fire { position:absolute; bottom:35%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #d05a1a 40%, #7a2a0a 70%, transparent 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 60px 30px #d05a1a, 0 0 120px 60px rgba(200,80,20,.4); animation: ds-fire 1.5s ease-in-out infinite alternate; }
.scn-dinner-with-seuthes .table { position:absolute; bottom:28%; left:50%; width:120px; height:8px; transform:translateX(-50%); background: linear-gradient(90deg, #5a3018, #7a4020, #5a3018); border-radius: 4px; box-shadow: 0 -4px 12px rgba(200,80,20,.3); }
.scn-dinner-with-seuthes .figure-left { position:absolute; bottom:22%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-figureL 6s ease-in-out infinite; }
.scn-dinner-with-seuthes .figure-right { position:absolute; bottom:22%; right:38%; width:20px; height:40px; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-figureR 6s ease-in-out infinite 3s; }
.scn-dinner-with-seuthes .door { position:absolute; bottom:20%; left:15%; width:30px; height:60px; background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5), 2px 0 4px rgba(0,0,0,.4); }
.scn-dinner-with-seuthes .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); pointer-events: none; }
@keyframes ds-fire { 0% { transform: translateX(-50%) scaleY(1); opacity:.9; } 50% { transform: translateX(-50%) scaleY(1.08); opacity:1; } 100% { transform: translateX(-50%) scaleY(.95); opacity:.85; } }
@keyframes ds-figureL { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } }
@keyframes ds-figureR { 0%,100% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }

.scn-heraclides-solicits-gifts { background: linear-gradient(180deg, #1a0a00 0%, #3a1a08 50%, #5a2a0a 100%), radial-gradient(ellipse at 60% 80%, #6a3a1a 0%, transparent 70%); }
.scn-heraclides-solicits-gifts .bg-tent { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1000 0%, #4a1a08 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-heraclides-solicits-gifts .bg-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a1a08 0%, #1a0a00 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-heraclides-solicits-gifts .fire-small { position:absolute; bottom:30%; left:30%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 80%, #ff9040 0%, #b84a12 40%, #5a1a00 70%, transparent 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 20px #b84a12, 0 0 80px 40px rgba(180,60,10,.3); animation: hs-fire 1.2s ease-in-out infinite alternate; }
.scn-heraclides-solicits-gifts .heraclides { position:absolute; bottom:20%; left:40%; width:22px; height:44px; background: linear-gradient(180deg, #3a1a10 0%, #1a0800 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-figure1 3s ease-in-out infinite; }
.scn-heraclides-solicits-gifts .seated { position:absolute; bottom:22%; right:35%; width:20px; height:36px; background: linear-gradient(180deg, #4a1a08 0%, #2a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-figure2 4s ease-in-out infinite 1s; }
.scn-heraclides-solicits-gifts .shadow-stark { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%); pointer-events: none; animation: hs-shadow 2s ease-in-out infinite alternate; }
.scn-heraclides-solicits-gifts .gleam { position:absolute; bottom:25%; left:42%; width:8px; height:8px; background: radial-gradient(circle, #ffc080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 12px 4px #ffc080; animation: hs-gleam 1s ease-in-out infinite alternate; }
@keyframes hs-fire { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.12) translateX(2px); } 100% { transform: scaleY(.9) translateX(-2px); } }
@keyframes hs-figure1 { 0%,100% { transform: translateX(0) rotate(-3deg); } 30% { transform: translateX(4px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes hs-figure2 { 0%,100% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-3px) rotate(-2deg); } 60% { transform: translateX(1px) rotate(0deg); } }
@keyframes hs-shadow { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }
@keyframes hs-gleam { 0% { opacity:.3; } 50% { opacity:1; } 100% { opacity:.5; } }

.scn-heraclides-to-timasion { background: linear-gradient(180deg, #1a0a00 0%, #2a1000 40%, #4a1a08 80%, #1a0a00 100%), radial-gradient(ellipse at 40% 70%, #5a2a0a 0%, transparent 60%); }
.scn-heraclides-to-timasion .bg-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a0800 0%, #3a1000 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; }
.scn-heraclides-to-timasion .bg-floor-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1000 0%, #0a0000 100%); box-shadow: inset 0 15px 25px rgba(0,0,0,.7); }
.scn-heraclides-to-timasion .lamp { position:absolute; bottom:40%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 70%, #ffa050 0%, #c85a1a 40%, #6a2000 70%, transparent 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 15px #c85a1a, 0 0 60px 30px rgba(180,60,10,.3); animation: ht-lamp 2s ease-in-out infinite alternate; }
.scn-heraclides-to-timasion .whisperer { position:absolute; bottom:22%; left:35%; width:24px; height:48px; background: linear-gradient(180deg, #3a1a10 0%, #1a0800 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-whisper 2.5s ease-in-out infinite; }
.scn-heraclides-to-timasion .listener { position:absolute; bottom:22%; right:35%; width:22px; height:44px; background: linear-gradient(180deg, #2a1008 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-listen 3s ease-in-out infinite 1s; }
.scn-heraclides-to-timasion .shadow-close { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.85) 100%); pointer-events: none; }
.scn-heraclides-to-timasion .glow-edge { position:absolute; bottom:38%; left:48%; width:20px; height:6px; background: linear-gradient(90deg, transparent, #ffb060, transparent); border-radius:50%; filter: blur(4px); animation: ht-edge 2s ease-in-out infinite alternate; }
@keyframes ht-lamp { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1); } 100% { transform: translateX(-50%) scaleY(.95); } }
@keyframes ht-whisper { 0%,100% { transform: translateX(0) rotate(-4deg); } 30% { transform: translateX(6px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ht-listen { 0%,100% { transform: translateX(0) rotate(3deg); } 30% { transform: translateX(-4px) rotate(-2deg); } 60% { transform: translateX(1px) rotate(1deg); } }
@keyframes ht-edge { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.5; } }

.scn-xenophon-embarrassed { background: linear-gradient(180deg, #1a0800 0%, #2a1000 30%, #3a1a08 60%, #1a0800 100%), radial-gradient(ellipse at 50% 80%, #4a2a0a 0%, transparent 70%); }
.scn-xenophon-embarrassed .bg-chamber { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a0800 0%, #3a1008 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-xenophon-embarrassed .bg-floor-cool { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1008 0%, #0a0000 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.8); }
.scn-xenophon-embarrassed .brazier { position:absolute; bottom:35%; left:50%; width:36px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #c85a1a 40%, #6a2000 70%, transparent 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 50px 25px #c85a1a, 0 0 100px 50px rgba(180,60,10,.3); animation: xe-brazier 2.5s ease-in-out infinite alternate; }
.scn-xenophon-embarrassed .xenophon { position:absolute; bottom:20%; left:50%; width:26px; height:52px; transform:translateX(-50%); background: linear-gradient(180deg, #4a1a08 0%, #2a0800 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xe-figure 3s ease-in-out infinite; }
.scn-xenophon-embarrassed .shadow-heavy { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.9) 100%); pointer-events: none; }
.scn-xenophon-embarrassed .dilemma-glint { position:absolute; bottom:25%; left:50%; width:6px; height:6px; margin-left: -3px; background: radial-gradient(circle, #ffd090 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 10px 3px #ffd090; animation: xe-glint 1.8s ease-in-out infinite alternate; }
.scn-xenophon-embarrassed .dust-motes { position:absolute; top:20%; left:30%; width:2px; height:2px; background:#ffd090; border-radius:50%; box-shadow: 20px 30px 0 #ffd080, 40px 10px 0 #ffc070, 80px 50px 0 #ffb060, 120px 20px 0 #ffc080; filter: blur(1px); animation: xe-dust 12s linear infinite; }
@keyframes xe-brazier { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(.95); } }
@keyframes xe-figure { 0%,100% { transform: translateX(-50%) rotate(0) scaleY(1); } 30% { transform: translateX(-50%) rotate(-3deg) scaleY(1.02); } 60% { transform: translateX(-50%) rotate(2deg) scaleY(.98); } }
@keyframes xe-glint { 0% { opacity:.2; } 50% { opacity:1; } 100% { opacity:.4; } }
@keyframes xe-dust { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-60px) scale(1.5); opacity:.2; } 100% { transform: translateY(-120px) scale(2); opacity:0; } }

/* burn-tents-and-superfluous */
.scn-burn-tents-and-superfluous {
  background: linear-gradient(180deg, #4a6078 0%, #7a8a70 40%, #9a8a60 70%, #b09860 100%), radial-gradient(ellipse at 50% 80%, #d0a050 0%, transparent 60%);
}
.scn-burn-tents-and-superfluous .dawn-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a5070 0%, #709080 40%, #a09870 80%, #c0a060 100%);
  animation: bt-sky 15s ease-in-out infinite alternate;
}
.scn-burn-tents-and-superfluous .horizon-line {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 2%;
  background: linear-gradient(90deg, transparent 0%, #a08040 30%, #b0a050 60%, transparent 100%);
  opacity: 0.6;
}
.scn-burn-tents-and-superfluous .bonfire {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #e08030 0%, #c05020 30%, #803010 60%, transparent 80%),
              radial-gradient(ellipse at 50% 60%, #f09040 0%, #d06020 50%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: bt-fire 2s ease-in-out infinite alternate;
}
.scn-burn-tents-and-superfluous .tent {
  position: absolute; bottom: 20%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #b09870 0%, #806040 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
}
.scn-burn-tents-and-superfluous .tent-a {
  left: 28%;
  animation: bt-toss 6s ease-in-out infinite;
}
.scn-burn-tents-and-superfluous .tent-b {
  left: 15%;
  animation: bt-toss 6s ease-in-out 2s infinite;
}
.scn-burn-tents-and-superfluous .figure {
  position: absolute; bottom: 18%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
}
.scn-burn-tents-and-superfluous .thrower {
  left: 42%;
  animation: bt-throw 3s ease-in-out infinite;
}
.scn-burn-tents-and-superfluous .onlooker {
  right: 20%;
  animation: bt-watch 5s ease-in-out infinite alternate;
}
.scn-burn-tents-and-superfluous .glow-layer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #f0a050 0%, transparent 50%);
  opacity: 0.15;
  animation: bt-glow 4s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes bt-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bt-fire { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05) scaleX(0.95); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes bt-toss { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-10deg) translateY(-20px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(-10px); } }
@keyframes bt-throw { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(10px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes bt-watch { 0% { transform: rotate(0deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(5deg); } }
@keyframes bt-glow { 0% { opacity: 0.1; } 50% { opacity: 0.2; } 100% { opacity: 0.15; } }

/* defeat-loses-own-goods */
.scn-defeat-loses-own-goods {
  background: linear-gradient(180deg, #3a4a5a 0%, #5a6a5a 30%, #7a7a5a 60%, #8a7a4a 100%), radial-gradient(ellipse at 50% 70%, #a08050 0%, transparent 50%);
}
.scn-defeat-loses-own-goods .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #4a5a4a 40%, #7a7a5a 70%, #a09050 100%);
  animation: dl-sky 12s ease-in-out infinite alternate;
}
.scn-defeat-loses-own-goods .battlefield {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 30%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-defeat-loses-own-goods .defeated-figure {
  position: absolute; bottom: 18%; left: 45%;
  width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: dl-fallen 4s ease-in-out infinite alternate;
}
.scn-defeat-loses-own-goods .scattered-goods {
  position: absolute; bottom: 10%;
  border-radius: 10%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
}
.scn-defeat-loses-own-goods .pile {
  left: 20%; width: 40px; height: 30px;
  animation: dl-pile 8s linear infinite;
}
.scn-defeat-loses-own-goods .sword {
  left: 35%; width: 8px; height: 40px; transform: rotate(-30deg);
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 2px;
  animation: dl-sword 6s ease-in-out infinite alternate;
}
.scn-defeat-loses-own-goods .helmet {
  left: 55%; width: 30px; height: 24px;
  border-radius: 50% 50% 10% 10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  animation: dl-helmet 5s ease-in-out infinite;
}
.scn-defeat-loses-own-goods .shadow-blade {
  position: absolute; bottom: 22%; left: 30%; 
  width: 4px; height: 60px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  transform: rotate(40deg);
  border-radius: 2px;
  animation: dl-blade 3s ease-in-out infinite alternate;
}
@keyframes dl-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dl-fallen { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(20deg) translateX(-5px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes dl-pile { 0% { transform: scale(1); } 50% { transform: scale(1.02, 0.98); } 100% { transform: scale(1); } }
@keyframes dl-sword { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-35deg); } }
@keyframes dl-helmet { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes dl-blade { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; } }

/* obedience-to-commanders */
.scn-obedience-to-commanders {
  background: linear-gradient(180deg, #4a5a6a 0%, #6a7a5a 40%, #8a8a5a 70%, #9a8a4a 100%), radial-gradient(ellipse at 50% 60%, #c0a050 0%, transparent 50%);
}
.scn-obedience-to-commanders .dawn-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #5a6a4a 40%, #7a7a4a 70%, #9a8a4a 100%);
  animation: ob-sky 14s ease-in-out infinite alternate;
}
.scn-obedience-to-commanders .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 20% 20% 0 0;
}
.scn-obedience-to-commanders .officer {
  position: absolute; bottom: 22%; left: 50%;
  width: 28px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ob-officer 2s ease-in-out infinite alternate;
}
.scn-obedience-to-commanders .soldier {
  position: absolute; bottom: 22%;
  width: 22px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ob-soldier 3s ease-in-out infinite;
}
.scn-obedience-to-commanders .soldier-a { left: 30%; animation-delay: 0s; }
.scn-obedience-to-commanders .soldier-b { left: 45%; animation-delay: 0.2s; }
.scn-obedience-to-commanders .soldier-c { left: 60%; animation-delay: 0.4s; }
.scn-obedience-to-commanders .spear {
  position: absolute; bottom: 28%; left: 42%;
  width: 4px; height: 80px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: ob-spear 4s ease-in-out infinite alternate;
}
@keyframes ob-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ob-officer { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ob-soldier { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ob-spear { 0% { transform: rotate(5deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(6deg); } }

/* time-to-act */
.scn-time-to-act {
  background: linear-gradient(180deg, #4a5a6a 0%, #6a7a5a 40%, #8a8a5a 70%, #9a8a4a 100%), radial-gradient(ellipse at 50% 70%, #b09050 0%, transparent 60%);
}
.scn-time-to-act .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #5a6a4a 40%, #7a7a4a 70%, #9a8a4a 100%);
  animation: ta-sky 10s ease-in-out infinite alternate;
}
.scn-time-to-act .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-time-to-act .leader {
  position: absolute; bottom: 22%; left: 52%;
  width: 30px; height: 72px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ta-leader 1.5s ease-in-out infinite alternate;
}
.scn-time-to-act .warrior {
  position: absolute; bottom: 22%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ta-warrior 2s ease-in-out infinite alternate;
}
.scn-time-to-act .warrior-a { left: 30%; animation-delay: 0s; }
.scn-time-to-act .warrior-b { left: 42%; animation-delay: 0.15s; }
.scn-time-to-act .warrior-c { left: 63%; animation-delay: 0.3s; }
.scn-time-to-act .weapon {
  position: absolute; bottom: 26%; left: 48%;
  width: 6px; height: 90px;
  background: linear-gradient(180deg, #a08860 0%, #806040 100%);
  border-radius: 3px;
  transform: rotate(10deg);
  animation: ta-weapon 3s ease-in-out infinite alternate;
}
.scn-time-to-act .shield {
  position: absolute; bottom: 22%; left: 58%;
  width: 30px; height: 36px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: ta-shield 4s ease-in-out infinite;
}
@keyframes ta-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ta-leader { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ta-warrior { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ta-weapon { 0% { transform: rotate(10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(12deg); } }
@keyframes ta-shield { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }

/* scene seuthes-makes-his-proposal */
.scn-seuthes-makes-his-proposal {
  background: linear-gradient(180deg, #8ecae6 0%, #ffb703 100%), linear-gradient(135deg, #f4a261 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-seuthes-makes-his-proposal .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #caf0f8 0%, #8ecae6 100%); animation: smh-sky 12s ease-in-out infinite alternate; }
.scn-seuthes-makes-his-proposal .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffcc02 0%, #ffb703 50%, #ff9e00 100%); border-radius:50%; box-shadow: 0 0 80px 30px #ffb703; animation: smh-sun 10s ease-in-out infinite; }
.scn-seuthes-makes-his-proposal .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #e9c46a 0%, #d4a373 50%, #bc6c25 100%); border-radius: 20% 0 0 0 / 20% 0 0 0; }
.scn-seuthes-makes-his-proposal .hills { position:absolute; bottom:45%; left:0; right:0; height:15%; background: linear-gradient(180deg, #606c38 0%, #283618 100%); border-radius: 50% 40% 0 0 / 100% 80% 0 0; animation: smh-hills 20s ease-in-out infinite alternate; }
.scn-seuthes-makes-his-proposal .speaker { position:absolute; bottom:25%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #eddcd2 0%, #a68a6b 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smh-speak 6s ease-in-out infinite; }
.scn-seuthes-makes-his-proposal .audience { position:absolute; bottom:25%; right:10%; width:100px; height:50px; background: repeating-linear-gradient(90deg, #8c7853 0px, #8c7853 8px, #5c4a32 8px, #5c4a32 10px); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; transform-origin: bottom center; animation: smh-audience 8s ease-in-out infinite alternate; }
.scn-seuthes-makes-his-proposal .spear-speaker { position:absolute; bottom:35%; left:25%; width:4px; height:50px; background: linear-gradient(180deg, #8b5a2b 0%, #5c3a1e 100%); transform: rotate(15deg); animation: smh-spear-shake 4s ease-in-out infinite; }
.scn-seuthes-makes-his-proposal .spear-audience { position:absolute; bottom:35%; right:18%; width:4px; height:40px; background: linear-gradient(180deg, #8b5a2b 0%, #5c3a1e 100%); transform: rotate(-10deg); animation: smh-spear-shake 4s ease-in-out infinite 2s; }
@keyframes smh-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes smh-sun { 0% { transform: scale(0.95) rotate(0deg); box-shadow: 0 0 60px 20px #ffb703 } 50% { transform: scale(1.05) rotate(5deg); box-shadow: 0 0 100px 40px #ffcc02 } 100% { transform: scale(1) rotate(10deg); box-shadow: 0 0 80px 30px #ffb703 } }
@keyframes smh-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes smh-speak { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes smh-audience { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-5px) scaleY(1.02) } 100% { transform: translateX(2px) scaleY(0.98) } }
@keyframes smh-spear-shake { 0% { transform: rotate(15deg) translateY(0) } 25% { transform: rotate(18deg) translateY(-2px) } 50% { transform: rotate(12deg) translateY(1px) } 100% { transform: rotate(15deg) translateY(0) } }

/* scene seuthes-explains-tactics */
.scn-seuthes-explains-tactics {
  background: linear-gradient(180deg, #a2d2ff 0%, #fdffb8 50%), radial-gradient(ellipse at 80% 20%, #ffb703 0%, transparent 60%);
}
.scn-seuthes-explains-tactics .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #bde0fe 0%, #a2d2ff 100%); animation: set-sky 15s ease-in-out infinite alternate; }
.scn-seuthes-explains-tactics .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d4a373 0%, #bc6c25 100%); border-radius: 60% 0 0 0 / 30% 0 0 0; }
.scn-seuthes-explains-tactics .path { position:absolute; bottom:35%; left:10%; right:10%; height:5%; background: linear-gradient(90deg, #c2a77a 0%, #e0c99b 50%, #c2a77a 100%); border-radius: 50%; filter: blur(2px); animation: set-path 25s linear infinite; }
.scn-seuthes-explains-tactics .map { position:absolute; bottom:40%; right:15%; width:70px; height:50px; background: linear-gradient(135deg, #f4d03f, #e59866); border-radius: 10% 30% 10% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: rotate(15deg); animation: set-map 10s ease-in-out infinite alternate; }
.scn-seuthes-explains-tactics .speaker { position:absolute; bottom:30%; left:25%; width:28px; height:58px; background: linear-gradient(180deg, #eddcd2 0%, #a68a6b 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: set-speak 5s ease-in-out infinite; }
.scn-seuthes-explains-tactics .listener { position:absolute; bottom:30%; right:20%; width:24px; height:50px; background: linear-gradient(180deg, #8c7853 0%, #5c4a32 100%); border-radius: 40% 40% 30% 30% / 55% 55% 40% 40%; animation: set-listen 7s ease-in-out infinite alternate; }
.scn-seuthes-explains-tactics .pointing-hand { position:absolute; bottom:45%; left:32%; width:8px; height:12px; background: linear-gradient(180deg,#eddcd2, #c19a6b); border-radius: 50% 50% 20% 20%; transform: rotate(-20deg); animation: set-hand-p 3s ease-in-out infinite; }
.scn-seuthes-explains-tactics .dotted-line { position:absolute; bottom:45%; left:32%; right:15%; height:2px; background: repeating-linear-gradient(90deg, #5c3a1e 0px, #5c3a1e 4px, transparent 4px, transparent 8px); transform: rotate(-5deg); animation: set-dotted 20s linear infinite; }
@keyframes set-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes set-path { 0% { background-position:0 0 } 100% { background-position:200px 0 } }
@keyframes set-map { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(18deg) scale(1.03) } 100% { transform: rotate(12deg) scale(0.97) } }
@keyframes set-speak { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(4px) rotate(2deg) } 60% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes set-listen { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes set-hand-p { 0% { transform: rotate(-20deg) translate(0,0) } 50% { transform: rotate(-15deg) translate(3px,-2px) } 100% { transform: rotate(-25deg) translate(0,0) } }
@keyframes set-dotted { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.6 } }

/* scene army-approves */
.scn-army-approves {
  background: linear-gradient(180deg, #caf0f8 0%, #ffb703 50%, #fdffb8 100%), radial-gradient(ellipse at 50% 100%, #ffb703 0%, transparent 70%);
}
.scn-army-approves .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #bde0fe 0%, #a2d2ff 100%); animation: ar-ap-sky 18s ease-in-out infinite alternate; }
.scn-army-approves .platform { position:absolute; bottom:20%; left:40%; width:120px; height:20px; background: linear-gradient(0deg, #8b5a2b, #5c3a1e); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 6px rgba(0,0,0,0.2); }
.scn-army-approves .crowd { position:absolute; bottom:20%; left:5%; right:5%; height:40%; background: repeating-linear-gradient(90deg, #8c7853 0px, #8c7853 6px, #5c4a32 6px, #5c4a32 8px); border-radius: 30% 30% 0 0; animation: ar-ap-crowd 12s ease-in-out infinite alternate; }
.scn-army-approves .raised-hand-group { position:absolute; bottom:45%; left:20%; right:20%; height:10%; background: repeating-linear-gradient(90deg, #eddcd2 0px, #eddcd2 3px, transparent 3px, transparent 6px); background-size: 6px 100%; animation: ar-ap-hands 4s ease-in-out infinite; }
.scn-army-approves .banner { position:absolute; bottom:30%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 0 0 20% 20%; transform: skewX(-5deg); animation: ar-ap-banner 8s ease-in-out infinite alternate; }
.scn-army-approves .army-sign { position:absolute; bottom:35%; left:48%; width:12px; height:20px; background: linear-gradient(180deg, #ffb703, #b07d00); border-radius: 50%; box-shadow: 0 0 6px #ffb703; animation: ar-ap-sign 5s ease-in-out infinite; }
.scn-army-approves .dust { position:absolute; bottom:0; left:0; right:0; height:10%; background: radial-gradient(ellipse at 30% 0%, rgba(255,255,200,0.3) 0%, transparent 70%); filter: blur(8px); animation: ar-ap-dust 20s linear infinite; }
.scn-army-approves .armor-gleam { position:absolute; top:30%; left:10%; width:4px; height:4px; background: #fff; border-radius:50%; box-shadow: 0 0 6px 2px #fff; animation: ar-ap-gleam 3s ease-in-out infinite alternate; }
@keyframes ar-ap-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ar-ap-crowd { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ar-ap-hands { 0% { transform: translateY(0) } 25% { transform: translateY(-4px) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ar-ap-banner { 0% { transform: skewX(-5deg) rotate(0) } 50% { transform: skewX(-5deg) rotate(3deg) } 100% { transform: skewX(-5deg) rotate(-3deg) } }
@keyframes ar-ap-sign { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.9) } }
@keyframes ar-ap-dust { 0% { opacity:0.3; transform: translateX(-20px) } 50% { opacity:0.6; transform: translateX(0) } 100% { opacity:0.3; transform: translateX(20px) } }
@keyframes ar-ap-gleam { 0% { opacity:0 } 100% { opacity:1 } }

/* scene vote-to-join-seuthes */
.scn-vote-to-join-seuthes {
  background: linear-gradient(180deg, #a2d2ff 0%, #fdffb8 40%, #ffb703 100%), radial-gradient(ellipse at 30% 80%, #ffb703 0%, transparent 60%);
}
.scn-vote-to-join-seuthes .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #bde0fe 0%, #a2d2ff 100%); animation: vtj-sky 20s ease-in-out infinite alternate; }
.scn-vote-to-join-seuthes .rostrum { position:absolute; bottom:20%; left:50%; width:100px; height:25px; margin-left:-50px; background: linear-gradient(0deg, #8b5a2b 0%, #5c3a1e 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -2px 4px rgba(0,0,0,0.3); }
.scn-vote-to-join-seuthes .voter-row { position:absolute; bottom:25%; left:10%; right:10%; height:35%; background: repeating-linear-gradient(90deg, #8c7853 0px, #8c7853 8px, #5c4a32 8px, #5c4a32 10px); border-radius: 30% 30% 0 0; animation: vtj-row 15s ease-in-out infinite alternate; }
.scn-vote-to-join-seuthes .raised-hand { position:absolute; bottom:45%; left:15%; right:15%; height:8%; background: repeating-linear-gradient(90deg, #eddcd2 0px, #eddcd2 3px, transparent 3px, transparent 7px); background-size: 7px 100%; animation: vtj-hand 3s ease-in-out infinite; }
.scn-vote-to-join-seuthes .scroll { position:absolute; bottom:30%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #f4d03f, #e59866); border-radius: 10% 10% 50% 50%; transform: rotate(10deg); animation: vtj-scroll 6s ease-in-out infinite alternate; }
.scn-vote-to-join-seuthes .cubit-rod { position:absolute; bottom:28%; left:48%; width:4px; height:30px; background: linear-gradient(180deg, #5c3a1e, #2c1a0e); transform: rotate(5deg); animation: vtj-rod 4s ease-in-out infinite; }
.scn-vote-to-join-seuthes .ground-line { position:absolute; bottom:15%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #bc6c25 20%, #bc6c25 80%, transparent 100%); }
.scn-vote-to-join-seuthes .voter-shadow { position:absolute; bottom:25%; left:10%; right:10%; height:5%; background: rgba(0,0,0,0.1); filter: blur(6px); animation: vtj-shadow 18s ease-in-out infinite alternate; }
@keyframes vtj-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes vtj-row { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes vtj-hand { 0% { transform: translateY(0) } 25% { transform: translateY(-5px) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vtj-scroll { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(12deg) scale(1.02) } 100% { transform: rotate(8deg) scale(0.98) } }
@keyframes vtj-rod { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes vtj-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

/* ----- ariaeus-answer-comes ----- */
.scn-ariaeus-answer-comes {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 70%);
}
.scn-ariaeus-answer-comes .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: aac-wall 12s ease-in-out infinite alternate;
}
.scn-ariaeus-answer-comes .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2e2e1a 0%, #1e1e10 100%);
  animation: aac-floor 14s ease-in-out infinite alternate;
}
.scn-ariaeus-answer-comes .table {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: aac-table 6s ease-in-out infinite;
}
.scn-ariaeus-answer-comes .lamp {
  position: absolute; bottom: 43%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8b870 0%, #a07030 70%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,0.4);
  animation: aac-lamp 4s ease-in-out infinite alternate;
}
.scn-ariaeus-answer-comes .figure-a {
  position: absolute; bottom: 24%; left: 36%; 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: aac-figA 5s ease-in-out infinite;
}
.scn-ariaeus-answer-comes .figure-b {
  position: absolute; bottom: 24%; left: 60%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aac-figB 5s ease-in-out infinite 1s;
}
.scn-ariaeus-answer-comes .scroll {
  position: absolute; bottom: 27%; left: 60%; width: 8px; height: 12px;
  background: #d4b878;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: aac-scroll 3s ease-in-out infinite alternate;
}
@keyframes aac-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes aac-floor { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes aac-table { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes aac-lamp { 0% { box-shadow: 0 0 15px 6px #b08040, 0 0 30px 12px rgba(176,128,64,0.3); opacity:0.85 } 50% { box-shadow: 0 0 30px 12px #e8b870, 0 0 50px 20px rgba(232,184,112,0.5); opacity:1 } 100% { box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,0.35); opacity:0.9 } }
@keyframes aac-figA { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes aac-figB { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes aac-scroll { 0% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(-4px) scaleY(0.9) } }

/* ----- clearchus-keeps-secret ----- */
.scn-clearchus-keeps-secret {
  background: 
    linear-gradient(180deg, #14142a 0%, #22223a 50%, #0e0e1e 100%),
    radial-gradient(ellipse at 30% 70%, #2a2a3e 0%, transparent 60%);
}
.scn-clearchus-keeps-secret .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a30 0%, #12122a 100%);
  animation: cks-wall 10s ease-in-out infinite alternate;
}
.scn-clearchus-keeps-secret .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  animation: cks-floor 15s ease-in-out infinite alternate;
}
.scn-clearchus-keeps-secret .lamp {
  position: absolute; bottom: 50%; left: 25%; width: 14px; height: 22px;
  background: radial-gradient(circle, #d4a050 0%, #905020 70%);
  border-radius: 6px 6px 3px 3px;
  box-shadow: 0 0 24px 10px #a06030, 0 0 48px 20px rgba(160,96,48,0.3);
  animation: cks-lamp 4s ease-in-out infinite alternate;
}
.scn-clearchus-keeps-secret .figure-c {
  position: absolute; bottom: 18%; left: 28%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cks-figC 6s ease-in-out infinite;
}
.scn-clearchus-keeps-secret .figure-d {
  position: absolute; bottom: 18%; left: 60%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cks-figD 7s ease-in-out infinite 0.5s;
}
.scn-clearchus-keeps-secret .shadow-e {
  position: absolute; bottom: 14%; left: 35%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: cks-shadow 8s ease-in-out infinite alternate;
}
@keyframes cks-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cks-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cks-lamp { 0% { box-shadow: 0 0 18px 6px #a06030, 0 0 36px 14px rgba(160,96,48,0.25); opacity:0.9 } 50% { box-shadow: 0 0 30px 12px #d4a050, 0 0 60px 24px rgba(212,160,80,0.45); opacity:1 } 100% { box-shadow: 0 0 20px 8px #a06030, 0 0 42px 16px rgba(160,96,48,0.3); opacity:0.85 } }
@keyframes cks-figC { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cks-figD { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cks-shadow { 0% { transform: scaleX(1) opacity:0.5 } 50% { transform: scaleX(1.2) opacity:0.6 } 100% { transform: scaleX(0.9) opacity:0.4 } }

/* ----- clearchus-sacrifices-unsuccessful ----- */
.scn-clearchus-sacrifices-unsuccessful {
  background: 
    linear-gradient(180deg, #1a1a20 0%, #2a1a10 40%, #0e0e0e 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-clearchus-sacrifices-unsuccessful .bg-altar {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  animation: csu-bgaltar 12s ease-in-out infinite alternate;
}
.scn-clearchus-sacrifices-unsuccessful .altar-stone {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: csu-altar 8s ease-in-out infinite;
}
.scn-clearchus-sacrifices-unsuccessful .flame {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #e08030 0%, #a04010 60%, transparent 100%);
  filter: blur(2px);
  box-shadow: 0 0 30px 15px #e08030, 0 0 60px 30px rgba(224,128,48,0.3);
  animation: csu-flame 1.5s ease-in-out infinite alternate;
}
.scn-clearchus-sacrifices-unsuccessful .priest {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csu-priest 5s ease-in-out infinite;
}
.scn-clearchus-sacrifices-unsuccessful .smoke {
  position: absolute; bottom: 54%; left: 48%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,160,140,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: csu-smoke 10s ease-in-out infinite alternate;
}
@keyframes csu-bgaltar { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes csu-altar { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes csu-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.3) } 100% { transform: translateX(-50%) scaleY(0.9) } }
@keyframes csu-priest { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes csu-smoke { 0% { transform: translateY(0) scale(0.9); opacity:0.4 } 50% { transform: translateY(-20px) scale(1.2); opacity:0.6 } 100% { transform: translateY(-40px) scale(1); opacity:0.2 } }

/* ----- orders-for-night-march ----- */
.scn-orders-for-night-march {
  background: 
    linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 30%, #4a3a5e 60%, #6a5a4e 100%),
    radial-gradient(ellipse at 80% 30%, #5a4a6e 0%, transparent 60%);
}
.scn-orders-for-night-march .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #6a5a4e 40%, #8a7a5e 70%, #5a4a3e 100%);
  animation: onm-sky 20s ease-in-out infinite alternate;
}
.scn-orders-for-night-march .ground-dusk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  animation: onm-ground 15s ease-in-out infinite alternate;
}
.scn-orders-for-night-march .bugler {
  position: absolute; bottom: 34%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: onm-bugler 4s ease-in-out infinite;
}
.scn-orders-for-night-march .soldier-1 {
  position: absolute; bottom: 34%; left: 50%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: onm-sold1 5s ease-in-out infinite 0.3s;
}
.scn-orders-for-night-march .soldier-2 {
  position: absolute; bottom: 34%; left: 65%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: onm-sold2 6s ease-in-out infinite 0.7s;
}
.scn-orders-for-night-march .baggage-animal {
  position: absolute; bottom: 32%; left: 40%; width: 40px; height: 22px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: onm-animal 8s ease-in-out infinite 1s;
}
.scn-orders-for-night-march .river {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(2px);
  animation: onm-river 12s ease-in-out infinite alternate;
}
@keyframes onm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes onm-ground { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes onm-bugler { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes onm-sold1 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes onm-sold2 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes onm-animal { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(2px) scaleX(1.05) } 100% { transform: translateX(-2px) scaleX(0.95) } }
@keyframes onm-river { 0% { background-position: 0% 50% } 50% { background-position: 10% 50% } 100% { background-position: -5% 50% } }

/* king-would-help-if-we-settle */
.scn-king-would-help-if-we-settle { background: linear-gradient(180deg, #f4d7a0 0%, #eac48a 30%, #d9a066 60%, #b8804a 100%), radial-gradient(ellipse at 50% 80%, #f0c060 0%, transparent 60%); }
.scn-king-would-help-if-we-settle .sky-dawn { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fce7c8 0%, #f5d6a0 40%, #e0b878 100%); }
.scn-king-would-help-if-we-settle .tent-roof { position:absolute; top:5%; left:15%; width:70%; height:40%; background: linear-gradient(135deg, #c8a070 0%, #a08050 50%, #806040 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); }
.scn-king-would-help-if-we-settle .tent-wall { position:absolute; top:35%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #b09060 0%, #906848 100%); border-radius: 0 0 20% 20%; }
.scn-king-would-help-if-we-settle .king-silt { position:absolute; bottom:25%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kwh-king 6s ease-in-out infinite; }
.scn-king-would-help-if-we-settle .guide-silt { position:absolute; bottom:25%; left:50%; width:16px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kwh-guide 5s ease-in-out infinite 1s; }
.scn-king-would-help-if-we-settle .sun-rays { position:absolute; top:8%; left:30%; width:100px; height:100px; background: radial-gradient(circle, #ffe080 0%, #f0c040 40%, transparent 70%); border-radius:50%; opacity:0.6; animation: kwh-sunrays 12s ease-in-out infinite alternate; }
.scn-king-would-help-if-we-settle .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a08050 0%, #806030 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
@keyframes kwh-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kwh-guide { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes kwh-sunrays { 0% { opacity:0.4; transform: scale(0.95); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.5; transform: scale(0.98); } }

/* lotus-eaters-warning */
.scn-lotus-eaters-warning { background: linear-gradient(180deg, #ffeac0 0%, #f5d6a0 30%, #d9a066 60%, #b8804a 100%), radial-gradient(ellipse at 50% 100%, #f0d080 0%, transparent 50%); }
.scn-lotus-eaters-warning .sky-dawn-lew { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffe8b0 0%, #f5d6a0 40%, #e0b878 100%); }
.scn-lotus-eaters-warning .hill-lew { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b080 0%, #a09060 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; }
.scn-lotus-eaters-warning .lotus-eater { position:absolute; bottom:25%; left:20%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lew-eater1 8s ease-in-out infinite; }
.scn-lotus-eaters-warning .lotus-eater-2 { position:absolute; bottom:22%; left:45%; width:28px; height:18px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lew-eater2 7s ease-in-out infinite 1.5s; }
.scn-lotus-eaters-warning .med-woman { position:absolute; bottom:30%; right:25%; width:22px; height:55px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lew-woman1 10s ease-in-out infinite; }
.scn-lotus-eaters-warning .med-woman-2 { position:absolute; bottom:28%; right:12%; width:20px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lew-woman2 9s ease-in-out infinite 2s; }
.scn-lotus-eaters-warning .lotus-flower { position:absolute; bottom:20%; left:30%; width:12px; height:12px; background: radial-gradient(circle, #f0c080 0%, #d0a060 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 10px 4px rgba(240,192,128,0.5); animation: lew-lotus 4s ease-in-out infinite; }
.scn-lotus-eaters-warning .sun-lew { position:absolute; top:5%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #f0c040 50%, transparent 80%); border-radius:50%; opacity:0.8; animation: lew-sun 20s linear infinite; }
@keyframes lew-eater1 { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } }
@keyframes lew-eater2 { 0%,100% { transform: rotate(-5deg) translateY(2px); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes lew-woman1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes lew-woman2 { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes lew-lotus { 0%,100% { transform: translateY(0) rotate(0deg); opacity:0.8; } 50% { transform: translateY(-6px) rotate(10deg); opacity:1; } }
@keyframes lew-sun { 0% { transform: translateX(0); } 100% { transform: translateX(40vw); } }

/* urge-to-return-to-hellas */
.scn-urge-to-return-to-hellas { background: linear-gradient(180deg, #ffdbb0 0%, #f0c088 30%, #c89050 60%, #a07040 100%), radial-gradient(ellipse at 50% 90%, #f0c060 0%, transparent 50%); }
.scn-urge-to-return-to-hellas .sky-urh { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe8c0 0%, #f5d6a0 40%, #e0b878 100%); }
.scn-urge-to-return-to-hellas .sea-urh { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a9aa0 0%, #5a7a80 50%, #3a5a60 100%); border-radius:0 0 30% 70%; }
.scn-urge-to-return-to-hellas .ship-hull { position:absolute; bottom:25%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:0 0 50% 50%; transform-origin: bottom center; animation: urh-hull 8s ease-in-out infinite; }
.scn-urge-to-return-to-hellas .ship-sail { position:absolute; bottom:35%; left:45%; width:8px; height:80px; background: linear-gradient(180deg, #d0b080 0%, #b09060 100%); border-radius:4px; transform: skewX(-10deg); transform-origin: bottom; animation: urh-sail 5s ease-in-out infinite alternate; }
.scn-urge-to-return-to-hellas .figure-looking { position:absolute; bottom:18%; left:20%; width:16px; height:45px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: urh-figure 4s ease-in-out infinite; }
.scn-urge-to-return-to-hellas .sun-urh { position:absolute; top:8%; left:10%; width:70px; height:70px; background: radial-gradient(circle, #ffe080 0%, #f0c040 50%, transparent 80%); border-radius:50%; opacity:0.7; animation: urh-sun 15s ease-in-out infinite alternate; }
.scn-urge-to-return-to-hellas .cloud-urh { position:absolute; top:12%; right:20%; width:90px; height:20px; background: linear-gradient(180deg, rgba(255,220,180,0.6) 0%, rgba(255,200,150,0.2) 100%); border-radius:50%; filter: blur(5px); animation: urh-cloud 40s linear infinite; }
@keyframes urh-hull { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } }
@keyframes urh-sail { 0% { transform: skewX(-10deg) scaleY(1); } 100% { transform: skewX(5deg) scaleY(0.95); } }
@keyframes urh-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes urh-sun { 0% { opacity:0.5; transform: scale(0.95); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes urh-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-150vw); } }

/* question-of-march-and-fight */
.scn-question-of-march-and-fight { background: linear-gradient(180deg, #f0d8b0 0%, #e0c090 30%, #c8a070 60%, #a08050 100%), radial-gradient(ellipse at 50% 90%, #e0b060 0%, transparent 60%); }
.scn-question-of-march-and-fight .sky-qmf { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fce7c8 0%, #f5d6a0 40%, #e0b878 100%); }
.scn-question-of-march-and-fight .ground-qmf { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c8b080 0%, #a09060 100%); border-radius: 40% 60% 0 0 / 60% 80% 0 0; }
.scn-question-of-march-and-fight .wagon-left { position:absolute; bottom:15%; left:10%; width:80px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: qmf-wagon1 7s ease-in-out infinite; }
.scn-question-of-march-and-fight .wagon-right { position:absolute; bottom:12%; right:15%; width:70px; height:45px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: qmf-wagon2 9s ease-in-out infinite 2s; }
.scn-question-of-march-and-fight .fire-qmf { position:absolute; bottom:20%; left:45%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 60%, #f0c040 0%, #d08030 50%, #a05020 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 20px 8px rgba(240,192,64,0.6); animation: qmf-fire 3s ease-in-out infinite; }
.scn-question-of-march-and-fight .soldier-silt { position:absolute; bottom:22%; left:30%; width:18px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qmf-soldier 5s ease-in-out infinite; }
.scn-question-of-march-and-fight .smoke-qmf { position:absolute; bottom:35%; left:44%; width:40px; height:30px; background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 70%); filter: blur(6px); border-radius:50%; animation: qmf-smoke 6s ease-in-out infinite; }
@keyframes qmf-wagon1 { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes qmf-wagon2 { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes qmf-fire { 0% { transform: scale(0.9) translateY(0); opacity:0.8; } 50% { transform: scale(1.1) translateY(-4px); opacity:1; } 100% { transform: scale(0.95) translateY(0); opacity:0.85; } }
@keyframes qmf-soldier { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes qmf-smoke { 0% { transform: scale(1) translateY(0); opacity:0.3; } 50% { transform: scale(1.3) translateY(-10px); opacity:0.6; } 100% { transform: scale(1) translateY(0); opacity:0.3; } }

.scn-xenophon-swears-innocence {
  background:
    linear-gradient(180deg, #2a2a50 0%, #4a4a6a 30%, #8a7a5a 70%, #c0a050 100%),
    radial-gradient(ellipse at 50% 100%, #c0a050 0%, transparent 70%);
}
.scn-xenophon-swears-innocence .dawn-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a3a60 0%, #b09050 70%, transparent 100%);
  animation: xs-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-swears-innocence .sun-horizon {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #b08030 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #b08030, 0 0 80px 40px rgba(180,120,40,0.3);
  animation: xs-sun 6s ease-in-out infinite alternate;
}
.scn-xenophon-swears-innocence .vow-gesture {
  position: absolute; bottom: 30%; left: 45%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xs-hand 4s ease-in-out infinite;
}
.scn-xenophon-swears-innocence .vow-gesture::before {
  content: ''; position: absolute; top: -18px; left: -6px; width: 26px; height: 22px;
  background: #1a1a30; border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
}
.scn-xenophon-swears-innocence .foreground-hill {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a4a3a 0%, #1a1a0a 100%);
  border-radius: 60% 40% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-xenophon-swears-innocence .cloud-drifter {
  position: absolute; top: 18%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(90deg, rgba(255,200,150,0.4) 0%, rgba(255,200,150,0.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: xs-cloud 40s linear infinite;
}
.scn-xenophon-swears-innocence .dark-stone {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #2a2a1a 0%, #0a0a05 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: xs-stone 12s ease-in-out infinite;
}
@keyframes xs-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xs-sun { 0% { transform: translateX(-50%) scale(0.95); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes xs-hand { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes xs-cloud { 0% { transform: translateX(-120px); } 100% { transform: translateX(120vw); } }
@keyframes xs-stone { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

.scn-xenophon-confesses-poverty {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #3a2a2a 40%, #7a5a3a 80%, #8a6a3a 100%),
    radial-gradient(ellipse at 30% 100%, #7a5a3a 0%, transparent 60%);
}
.scn-xenophon-confesses-poverty .pre-dawn-glow {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a50 0%, #9a7a4a 60%, transparent 100%);
  animation: xp-glow 15s ease-in-out infinite alternate;
}
.scn-xenophon-confesses-poverty .empty-hands {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: xp-hands 5s ease-in-out infinite;
}
.scn-xenophon-confesses-poverty .empty-hands::before,
.scn-xenophon-confesses-poverty .empty-hands::after {
  content: ''; position: absolute; top: -10px; width: 16px; height: 24px;
  background: #1a1a2a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
}
.scn-xenophon-confesses-poverty .empty-hands::before { left: -20px; transform: rotate(10deg); }
.scn-xenophon-confesses-poverty .empty-hands::after { right: -20px; transform: rotate(-10deg); }
.scn-xenophon-confesses-poverty .broken-pillar {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: xp-pillar 8s ease-in-out infinite alternate;
}
.scn-xenophon-confesses-poverty .dust-cloud {
  position: absolute; bottom: 20%; right: 30%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,150,100,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: xp-dust 12s ease-in-out infinite alternate;
}
.scn-xenophon-confesses-poverty .distance-mist {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(90deg, rgba(200,180,150,0.2) 0%, transparent 50%, rgba(200,180,150,0.15) 100%);
  filter: blur(8px);
  animation: xp-mist 25s linear infinite;
}
.scn-xenophon-confesses-poverty .ground-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
}
@keyframes xp-glow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes xp-hands { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.95) translateY(-3px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes xp-pillar { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-5px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes xp-dust { 0% { opacity: 0.2; transform: scale(1); } 100% { opacity: 0.5; transform: scale(1.3) translateX(10px); } }
@keyframes xp-mist { 0% { transform: translateX(-20px); } 100% { transform: translateX(40px); } }

.scn-xenophon-on-deceit {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 40%, #4a3a3a 80%, #6a4a3a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a3a 0%, transparent 70%);
}
.scn-xenophon-on-deceit .twilight-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #6a4a3a 80%, transparent 100%);
  animation: xd-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-on-deceit .hooded-figure {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: xd-figure 6s ease-in-out infinite;
}
.scn-xenophon-on-deceit .hooded-figure::before {
  content: ''; position: absolute; top: -20px; left: -5px; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, transparent 70%);
  border-radius: 50% 50% 40% 40%;
}
.scn-xenophon-on-deceit .mask-shadow {
  position: absolute; bottom: 35%; left: 55%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: xd-mask 4s ease-in-out infinite alternate;
}
.scn-xenophon-on-deceit .cracked-mirror {
  position: absolute; bottom: 28%; left: 42%; width: 50px; height: 70px;
  background: linear-gradient(135deg, rgba(180,160,140,0.3) 0%, rgba(100,80,60,0.1) 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 20% 30%, 50% 40%, 30% 70%, 70% 60%);
  animation: xd-mirror 8s ease-in-out infinite;
}
.scn-xenophon-on-deceit .particle-drift {
  position: absolute; top: 20%; left: 20%; width: 8px; height: 8px;
  background: rgba(200,180,120,0.4);
  border-radius: 50%;
  box-shadow: 30px 40px 0 rgba(200,180,120,0.3), 60px 10px 0 rgba(200,180,120,0.2);
  animation: xd-particle 15s linear infinite;
}
.scn-xenophon-on-deceit .edge-frame {
  position: absolute; inset: 0;
  border: 4px solid rgba(60,40,30,0.4);
  border-image: linear-gradient(180deg, transparent, #4a3a2a, transparent) 1;
  pointer-events: none;
  animation: xd-frame 10s ease-in-out infinite alternate;
}
@keyframes xd-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes xd-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes xd-mask { 0% { transform: rotate(10deg) scale(1); } 100% { transform: rotate(5deg) scale(0.95); } }
@keyframes xd-mirror { 0%,100% { opacity: 0.3; } 50% { opacity: 0.7; } }
@keyframes xd-particle { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 100% { transform: translateY(-60px) scale(0.5); opacity: 0; } }
@keyframes xd-frame { 0% { border-width: 4px; } 100% { border-width: 2px; } }

.scn-xenophon-recalls-difficulties {
  background:
    linear-gradient(180deg, #1a1a30 0%, #3a2a2a 30%, #5a3a2a 60%, #7a5a3a 100%),
    radial-gradient(ellipse at 60% 80%, #5a3a2a 0%, transparent 60%);
}
.scn-xenophon-recalls-difficulties .dawn-backdrop {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #8a6a3a 70%, transparent 100%);
  animation: xr-backdrop 20s ease-in-out infinite alternate;
}
.scn-xenophon-recalls-difficulties .step-stones {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(90deg, transparent 0%, #3a2a1a 20%, #5a4a3a 40%, #3a2a1a 60%, transparent 80%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.4);
  animation: xr-steps 12s ease-in-out infinite alternate;
}
.scn-xenophon-recalls-difficulties .broken-bridge {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 10px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 50%, #4a3a2a 100%);
  border-radius: 4px;
  transform: rotate(3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: xr-bridge 8s ease-in-out infinite;
}
.scn-xenophon-recalls-difficulties .human-figure {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: xr-figure 4s ease-in-out infinite;
}
.scn-xenophon-recalls-difficulties .trailing-shadow {
  position: absolute; bottom: 28%; left: 45%; width: 60px; height: 20px;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: xr-shadow 4s ease-in-out infinite;
}
.scn-xenophon-recalls-difficulties .dust-mote {
  position: absolute; top: 30%; left: 20%; width: 6px; height: 6px;
  background: rgba(200,180,120,0.5);
  border-radius: 50%;
  box-shadow: 20px 30px 0 rgba(200,180,120,0.3), 40px 0 0 rgba(200,180,120,0.2), 60px 20px 0 rgba(200,180,120,0.1);
  animation: xr-mote 10s linear infinite;
}
.scn-xenophon-recalls-difficulties .far-mountain {
  position: absolute; bottom: 40%; left: 10%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: xr-mountain 18s ease-in-out infinite alternate;
}
@keyframes xr-backdrop { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes xr-steps { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.1); } }
@keyframes xr-bridge { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes xr-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes xr-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(1); } }
@keyframes xr-mote { 0% { transform: translateY(0) rotate(0deg); opacity: 0.5; } 100% { transform: translateY(-40px) rotate(180deg); opacity: 0; } }
@keyframes xr-mountain { 0% { transform: translateY(0); } 100% { transform: translateY(-5px); } }

.scn-army-desires-single-general {
  background: linear-gradient(180deg, #5b6b70 0%, #3a4a4f 50%, #2a3a3f 100%),
              radial-gradient(ellipse at 50% 100%, #4a5a5f 0%, transparent 70%);
}
.scn-army-desires-single-general .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7a8a8f 0%, #5a6a6f 100%);
  animation: adsg-sky 12s ease-in-out infinite alternate;
}
.scn-army-desires-single-general .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  animation: adsg-ground 18s ease-in-out infinite alternate;
}
.scn-army-desires-single-general .tent {
  position: absolute; bottom: 30%; width: 70px; height: 60px;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
}
.scn-army-desires-single-general .tent-l {
  left: 20%; animation: adsg-tent 9s ease-in-out infinite;
}
.scn-army-desires-single-general .tent-r {
  right: 20%; animation: adsg-tent 11s ease-in-out infinite reverse;
}
.scn-army-desires-single-general .flag {
  position: absolute; bottom: 60%; left: 48%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 80% 0 80%;
  transform-origin: bottom center;
  animation: adsg-flag 4s ease-in-out infinite;
}
.scn-army-desires-single-general .campfire {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c08040 0%, #a06020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.4);
  animation: adsg-fire 2s ease-in-out infinite alternate;
}
.scn-army-desires-single-general .general {
  position: absolute; bottom: 25%; left: 48%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: adsg-general 5s ease-in-out infinite;
}
@keyframes adsg-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes adsg-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes adsg-tent { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes adsg-flag { 0%, 100% { transform: rotate(-3deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(5deg); } }
@keyframes adsg-fire { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }
@keyframes adsg-general { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } }

.scn-officers-press-xenophon {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 60%);
}
.scn-officers-press-xenophon .walls {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 20% 80% 0 0 / 10% 90% 0 0;
  animation: opx-walls 15s ease-in-out infinite alternate;
}
.scn-officers-press-xenophon .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 0 0 30% 70% / 0 0 20% 80%;
}
.scn-officers-press-xenophon .table {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 8px;
  background: linear-gradient(90deg, #4a4a3a, #5a5a4a, #4a4a3a);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.scn-officers-press-xenophon .lamp {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #c08040 0%, #a06020 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(192,128,64,0.4), 0 0 80px 30px rgba(192,128,64,0.15);
  animation: opx-lamp 3s ease-in-out infinite alternate;
}
.scn-officers-press-xenophon .xenophon {
  position: absolute; bottom: 14%; left: 40%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: opx-xen 6s ease-in-out infinite;
}
.scn-officers-press-xenophon .officer {
  position: absolute; bottom: 14%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-officers-press-xenophon .o1 {
  left: 54%; animation: opx-o1 7s ease-in-out infinite;
}
.scn-officers-press-xenophon .o2 {
  left: 64%; animation: opx-o2 8s ease-in-out infinite alternate;
}
.scn-officers-press-xenophon .shadow {
  position: absolute; bottom: 0; left: 30%; width: 100px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: opx-shadow 6s ease-in-out infinite;
}
@keyframes opx-walls { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes opx-lamp { 0%, 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 10px rgba(192,128,64,0.3); } 50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 50px 20px rgba(192,128,64,0.6); } }
@keyframes opx-xen { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-2deg); } }
@keyframes opx-o1 { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(3deg); } }
@keyframes opx-o2 { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-3deg); } }
@keyframes opx-shadow { 0%, 100% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } }

.scn-xenophon-debates-acceptance {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #151520 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a3a 0%, transparent 60%);
}
.scn-xenophon-debates-acceptance .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a 30%, #151520 70%);
  animation: xda-bg 20s ease-in-out infinite alternate;
}
.scn-xenophon-debates-acceptance .light-cone {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 200px;
  background: radial-gradient(ellipse at 50% 100%, rgba(192,128,64,0.3) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: xda-light 4s ease-in-out infinite alternate;
}
.scn-xenophon-debates-acceptance .desk {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 6px;
  background: linear-gradient(90deg, #3a3a2a, #4a4a3a, #3a3a2a);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.7);
}
.scn-xenophon-debates-acceptance .figure {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xda-fig 5s ease-in-out infinite;
}
.scn-xenophon-debates-acceptance .chair {
  position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%) translateY(-5px);
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-xenophon-debates-acceptance .shadow-figure {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 50px; height: 10px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: xda-shadow 5s ease-in-out infinite alternate;
}
@keyframes xda-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes xda-light { 0%, 100% { opacity: 0.4; transform: translateX(-50%) scaleY(1); } 50% { opacity: 0.7; transform: translateX(-50%) scaleY(1.1); } }
@keyframes xda-fig { 0%, 100% { transform: translateX(-50%) rotate(0); } 30% { transform: translateX(-48%) rotate(2deg); } 70% { transform: translateX(-52%) rotate(-2deg); } }
@keyframes xda-shadow { 0%, 100% { transform: translateX(-50%) scaleX(1); opacity: 0.4; } 50% { transform: translateX(-50%) scaleX(1.2); opacity: 0.6; } }

.scn-xenophon-sacrifices-to-zeus {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #1a0a1a 100%),
              radial-gradient(ellipse at 50% 60%, #3a1a2a 0%, transparent 60%);
}
.scn-xenophon-sacrifices-to-zeus .bg-temple {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0a0a1a 10%, #1a1a2a 50%, #0a0a1a 90%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: xsz-bg 20s ease-in-out infinite alternate;
}
.scn-xenophon-sacrifices-to-zeus .altar {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.5), 0 4px 12px rgba(0,0,0,0.4);
}
.scn-xenophon-sacrifices-to-zeus .flame {
  position: absolute; bottom: 42%; width: 12px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #c06020 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: xsz-flame 1.5s ease-in-out infinite alternate;
}
.scn-xenophon-sacrifices-to-zeus .flame1 {
  left: 46%; animation-duration: 1.5s;
}
.scn-xenophon-sacrifices-to-zeus .flame2 {
  left: 54%; animation-duration: 2s; animation-delay: 0.5s;
}
.scn-xenophon-sacrifices-to-zeus .smoke {
  position: absolute; bottom: 60%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,160,140,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: xsz-smoke 10s ease-out infinite;
}
.scn-xenophon-sacrifices-to-zeus .priest {
  position: absolute; bottom: 22%; left: 42%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xsz-priest 6s ease-in-out infinite;
}
.scn-xenophon-sacrifices-to-zeus .victim {
  position: absolute; bottom: 20%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: xsz-victim 8s ease-in-out infinite alternate;
}
.scn-xenophon-sacrifices-to-zeus .v1 {
  left: 48%; animation-delay: 0s;
}
.scn-xenophon-sacrifices-to-zeus .v2 {
  left: 54%; animation-delay: 2s;
}
@keyframes xsz-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes xsz-flame { 0%, 100% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.3) translateY(-4px); opacity: 1; } }
@keyframes xsz-smoke { 0% { transform: translateX(-50%) scaleY(0); opacity: 0; } 30% { opacity: 0.4; } 100% { transform: translateX(-50%) scaleY(1.5) translateY(-40px); opacity: 0; } }
@keyframes xsz-priest { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(3deg); } }
@keyframes xsz-victim { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } }

/* now-fight-for-salvation */
.scn-now-fight-for-salvation { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a2a 30%, #8a6a3a 60%, #d0a060 100%), radial-gradient(ellipse at 70% 30%, #d0a060 0%, transparent 60%); }
.scn-now-fight-for-salvation .nffs-sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a6a3a 0%, #d0a060 50%, #f0d080 100%); animation: nffs-sky 12s ease-in-out infinite; }
.scn-now-fight-for-salvation .nffs-sun    { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #f0d080 0%, #d0a060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px #d0a060; animation: nffs-sun 6s ease-in-out infinite alternate; }
.scn-now-fight-for-salvation .nffs-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; animation: nffs-ground 4s ease-in-out infinite; }
.scn-now-fight-for-salvation .nffs-banner { position:absolute; bottom:30%; left:30%; width:4px; height:80px; background: #4a3a2a; border-radius:2px; }
.scn-now-fight-for-salvation .nffs-banner::after { content:''; position:absolute; top:0; left:-6px; width:24px; height:16px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:4px; animation: nffs-flag 3s ease-in-out infinite; }
.scn-now-fight-for-salvation .nffs-figure { position:absolute; bottom:30%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nffs-figure 5s ease-in-out infinite; }
.scn-now-fight-for-salvation .nffs-shield { position:absolute; bottom:28%; left:33%; width:16px; height:20px; background: radial-gradient(circle at 50% 40%, #5e1a1d 0%, #3a0a0a 100%); border-radius:40% 40% 30% 30%; box-shadow: 0 0 4px #1a0a00; animation: nffs-shield 5s ease-in-out infinite; }
.scn-now-fight-for-salvation .nffs-spear  { position:absolute; bottom:30%; left:38%; width:2px; height:60px; background: #8a7a6a; border-radius:1px; transform-origin: bottom center; animation: nffs-spear 1.5s ease-in-out infinite; }
@keyframes nffs-sky    { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nffs-sun    { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(1.1) translateY(-4px) } 100% { transform: scale(1) translateY(2px) } }
@keyframes nffs-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nffs-flag   { 0% { transform: skewX(0) } 50% { transform: skewX(-8deg) } 100% { transform: skewX(0) } }
@keyframes nffs-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nffs-shield { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nffs-spear  { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }

/* no-fear-of-deserters */
.scn-no-fear-of-deserters { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a2a 30%, #8a6a3a 60%, #d0a060 100%), radial-gradient(ellipse at 50% 40%, #d0a060 0%, transparent 70%); }
.scn-no-fear-of-deserters .nfod-sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a5a3a 0%, #c0a060 50%, #e0c080 100%); animation: nfod-sky 14s ease-in-out infinite; }
.scn-no-fear-of-deserters .nfod-sun    { position:absolute; top:20%; left:30%; width:35px; height:35px; background: radial-gradient(circle, #e0c080 0%, #c0a060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 15px #c0a060; animation: nfod-sun 7s ease-in-out infinite alternate; }
.scn-no-fear-of-deserters .nfod-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:30% 30% 0 0 / 15% 15% 0 0; animation: nfod-ground 5s ease-in-out infinite; }
.scn-no-fear-of-deserters .nfod-soldier1 { position:absolute; bottom:28%; left:28%; width:18px; height:48px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nfod-soldier1 4s ease-in-out infinite; }
.scn-no-fear-of-deserters .nfod-soldier2 { position:absolute; bottom:29%; left:40%; width:18px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nfod-soldier2 4s ease-in-out infinite 0.5s; }
.scn-no-fear-of-deserters .nfod-standard { position:absolute; bottom:32%; left:50%; width:3px; height:70px; background: #5a4a3a; border-radius:1px; }
.scn-no-fear-of-deserters .nfod-standard::after { content:''; position:absolute; top:0; left:-4px; width:20px; height:14px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:3px; animation: nfod-flag 3.5s ease-in-out infinite; }
.scn-no-fear-of-deserters .nfod-spear  { position:absolute; bottom:28%; left:32%; width:2px; height:55px; background: #8a7a6a; border-radius:1px; transform-origin: bottom center; animation: nfod-spear 2s ease-in-out infinite; }
@keyframes nfod-sky    { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nfod-sun    { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(1.15) translateY(-3px) } 100% { transform: scale(1) translateY(2px) } }
@keyframes nfod-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes nfod-flag   { 0% { transform: skewX(0) } 50% { transform: skewX(-10deg) } 100% { transform: skewX(0) } }
@keyframes nfod-soldier1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nfod-soldier2 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nfod-spear  { 0% { transform: rotate(0) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(0) } }

/* cavalry-vs-infantry */
.scn-cavalry-vs-infantry { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 30%, #7a5a3a 60%, #c0a060 100%), radial-gradient(ellipse at 60% 35%, #c0a060 0%, transparent 70%); }
.scn-cavalry-vs-infantry .cvi-sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a4a2a 0%, #b09050 50%, #d0b070 100%); animation: cvi-sky 10s ease-in-out infinite; }
.scn-cavalry-vs-infantry .cvi-sun    { position:absolute; top:18%; left:65%; width:30px; height:30px; background: radial-gradient(circle, #d0b070 0%, #b09050 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 25px 12px #b09050; animation: cvi-sun 5s ease-in-out infinite alternate; }
.scn-cavalry-vs-infantry .cvi-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 0 0 / 20% 20% 0 0; animation: cvi-ground 6s ease-in-out infinite; }
.scn-cavalry-vs-infantry .cvi-horse1 { position:absolute; bottom:30%; left:20%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 40% 40% 20% 20%; transform-origin: bottom center; animation: cvi-horse1 3.5s ease-in-out infinite; }
.scn-cavalry-vs-infantry .cvi-horse2 { position:absolute; bottom:28%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 40% 40% 20% 20%; transform-origin: bottom center; animation: cvi-horse2 3.5s ease-in-out infinite 0.7s; }
.scn-cavalry-vs-infantry .cvi-infantry1 { position:absolute; bottom:28%; right:25%; width:16px; height:45px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvi-infantry1 4s ease-in-out infinite; }
.scn-cavalry-vs-infantry .cvi-infantry2 { position:absolute; bottom:29%; right:38%; width:16px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvi-infantry2 4s ease-in-out infinite 0.4s; }
.scn-cavalry-vs-infantry .cvi-spear  { position:absolute; bottom:30%; right:32%; width:2px; height:55px; background: #8a7a6a; border-radius:1px; transform-origin: bottom center; animation: cvi-spear 1.8s ease-in-out infinite; }
@keyframes cvi-sky    { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cvi-sun    { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(1.1) translateY(-3px) } 100% { transform: scale(1) translateY(2px) } }
@keyframes cvi-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cvi-horse1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(-3deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvi-horse2 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-5px) rotate(3deg) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvi-infantry1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvi-infantry2 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvi-spear  { 0% { transform: rotate(0) } 50% { transform: rotate(4deg) } 100% { transform: rotate(0) } }

/* infantry-superiority */
.scn-infantry-superiority { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a2a 30%, #8a6a3a 60%, #d0a060 100%), radial-gradient(ellipse at 50% 30%, #d0a060 0%, transparent 70%); }
.scn-infantry-superiority .is-sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7a5a3a 0%, #c0a060 50%, #e0c080 100%); animation: is-sky 12s ease-in-out infinite; }
.scn-infantry-superiority .is-sun    { position:absolute; top:12%; left:25%; width:45px; height:45px; background: radial-gradient(circle, #e0c080 0%, #c0a060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 25px #c0a060; animation: is-sun 8s ease-in-out infinite alternate; }
.scn-infantry-superiority .is-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:30% 30% 0 0 / 15% 15% 0 0; animation: is-ground 5s ease-in-out infinite; }
.scn-infantry-superiority .is-soldier { position:absolute; bottom:28%; left:40%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: is-soldier 4.5s ease-in-out infinite; }
.scn-infantry-superiority .is-spear  { position:absolute; bottom:28%; left:44%; width:3px; height:65px; background: #8a7a6a; border-radius:1px; transform-origin: bottom center; animation: is-spear 2s ease-in-out infinite; }
.scn-infantry-superiority .is-shield { position:absolute; bottom:26%; left:37%; width:18px; height:22px; background: radial-gradient(circle at 50% 40%, #5e1a1d 0%, #3a0a0a 100%); border-radius:40% 40% 30% 30%; box-shadow: 0 0 4px #1a0a00; animation: is-shield 4.5s ease-in-out infinite; }
.scn-infantry-superiority .is-cloak  { position:absolute; bottom:32%; left:38%; width:28px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: is-cloak 5s ease-in-out infinite; }
@keyframes is-sky    { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes is-sun    { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(1.1) translateY(-5px) } 100% { transform: scale(1) translateY(2px) } }
@keyframes is-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes is-soldier { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes is-spear  { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes is-shield { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes is-cloak  { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.05) } 100% { transform: rotate(0) scaleY(1) } }

.scn-cyrus-friendship-loyalty {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0f05 100%),
              radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
}
.scn-cyrus-friendship-loyalty .wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a2015 100%); }
.scn-cyrus-friendship-loyalty .hearth-glow { position:absolute; bottom:10%; left:35%; width:120px; height:80px; background: radial-gradient(ellipse at 50% 100%, #d87530 0%, #a05020 40%, transparent 70%); animation: cyrfl-glow 4s ease-in-out infinite alternate; }
.scn-cyrus-friendship-loyalty .hearth-stone { position:absolute; bottom:9%; left:32%; width:140px; height:10px; background: linear-gradient(180deg, #5a3a2a, #3a2a1a); border-radius: 10px; }
.scn-cyrus-friendship-loyalty .table { position:absolute; bottom:22%; left:40%; width:100px; height:8px; background: linear-gradient(90deg, #6a4a3a, #4a3020); border-radius: 4px; transform: perspective(200px) rotateX(20deg); }
.scn-cyrus-friendship-loyalty .figure-cyrus { position:absolute; bottom:20%; left:43%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cyrfl-fig 6s ease-in-out infinite; }
.scn-cyrus-friendship-loyalty .figure-friend { position:absolute; bottom:20%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cyrfl-fig 6s ease-in-out infinite 0.3s; }
.scn-cyrus-friendship-loyalty .cup { position:absolute; bottom:28%; left:48%; width:12px; height:16px; background: linear-gradient(180deg, #8a6a4a, #5a4030); border-radius: 0 0 30% 30%; transform: perspective(100px) rotateX(30deg); }
.scn-cyrus-friendship-loyalty .flame-flicker { position:absolute; bottom:15%; left:40%; width:12px; height:20px; background: radial-gradient(ellipse at 50% 100%, #f0a050 0%, #d07020 60%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: cyrfl-flame 1.5s ease-in-out infinite alternate; }
@keyframes cyrfl-glow { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes cyrfl-fig { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes cyrfl-flame { 0% { transform: scale(1) translateY(0); opacity: 0.9; } 50% { transform: scale(1.2) translateY(-2px); opacity: 1; } 100% { transform: scale(0.9) translateY(1px); opacity: 0.8; } }

.scn-cyrus-prayer-reciprocity {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f05 50%, #0a0500 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 80%);
}
.scn-cyrus-prayer-reciprocity .alcove { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-cyrus-prayer-reciprocity .altar-block { position:absolute; bottom:25%; left:50%; width:80px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a2a, #3a2a10); border-radius: 5% 5% 30% 30%; box-shadow: 0 -4px 20px rgba(200,150,80,0.3); }
.scn-cyrus-prayer-reciprocity .figure-kneel { position:absolute; bottom:20%; left:50%; width:24px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cyrpr-kneel 5s ease-in-out infinite alternate; }
.scn-cyrus-prayer-reciprocity .hands-clasp { position:absolute; bottom:32%; left:50%; width:14px; height:10px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border-radius: 40% 40% 20% 20%; animation: cyrpr-hands 3s ease-in-out infinite; }
.scn-cyrus-prayer-reciprocity .incense-smoke { position:absolute; bottom:55%; left:50%; width:10px; height:80px; background: linear-gradient(180deg, rgba(200,180,160,0.4) 0%, transparent 80%); filter: blur(4px); transform: translateX(-50%); animation: cyrpr-smoke 7s ease-in-out infinite; }
.scn-cyrus-prayer-reciprocity .light-beam { position:absolute; top:0; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%); animation: cyrpr-beam 8s ease-in-out infinite; }
.scn-cyrus-prayer-reciprocity .offering { position:absolute; bottom:28%; left:50%; width:30px; height:10px; transform: translateX(-50%); background: radial-gradient(ellipse, #c08050, #7a5020); border-radius: 50%; }
@keyframes cyrpr-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes cyrpr-hands { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } }
@keyframes cyrpr-smoke { 0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity: 0.6; } 50% { transform: translateX(-50%) scaleY(1.3) translateY(-10px); opacity: 0.3; } 100% { transform: translateX(-50%) scaleY(0.8) translateY(5px); opacity: 0.8; } }
@keyframes cyrpr-beam { 0%,100% { opacity: 0.2; } 50% { opacity: 0.5; } }

.scn-cyrus-justice {
  background: linear-gradient(180deg, #0a0a0f 0%, #1a1510 40%, #0f0a05 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a10 0%, transparent 90%);
}
.scn-cyrus-justice .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0f0a05, #050300); }
.scn-cyrus-justice .torch-light { position:absolute; top:10%; left:20%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, #d07030 0%, #a04010 50%, transparent 80%); filter: blur(8px); animation: cyrju-torch 3s ease-in-out infinite alternate; }
.scn-cyrus-justice .torch-flame { position:absolute; top:6%; left:22%; width:14px; height:24px; background: radial-gradient(ellipse at 50% 100%, #f08040, #c05020 60%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: cyrju-flame 1.5s ease-in-out infinite alternate; }
.scn-cyrus-justice .chain-hang { position:absolute; top:18%; left:75%; width:4px; height:60px; background: linear-gradient(180deg, #6a5a4a, #3a2a1a); transform-origin: top center; animation: cyrju-chain 6s ease-in-out infinite; }
.scn-cyrus-justice .figure-maimed-hand { position:absolute; bottom:15%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #2a1a10 0%, #0f0a05 100%); border-radius: 50% 50% 40% 40%; animation: cyrju-fig 8s ease-in-out infinite; }
.scn-cyrus-justice .figure-maimed-hand::before { content:''; position:absolute; top:60%; left:10%; width:20px; height:4px; background: #1a0f05; border-radius: 2px; transform: rotate(20deg); } /* stump */
.scn-cyrus-justice .figure-maimed-foot { position:absolute; bottom:10%; left:60%; width:26px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 50% 50% 40% 40%; animation: cyrju-fig 8s ease-in-out infinite 0.4s; }
.scn-cyrus-justice .figure-maimed-foot::after { content:''; position:absolute; bottom:5%; left:10%; width:18px; height:4px; background: #1a0f05; border-radius: 2px; transform: rotate(-15deg); } /* stump */
.scn-cyrus-justice .shadow-stain { position:absolute; bottom:5%; left:25%; width:50%; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%); filter: blur(6px); }
.scn-cyrus-justice .puddle { position:absolute; bottom:3%; left:45%; width:40px; height:10px; background: radial-gradient(ellipse, #2a1a1a, transparent); border-radius: 50%; filter: blur(2px); }
@keyframes cyrju-torch { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.1) translateX(2px); opacity: 1; } 100% { transform: scale(0.9) translateX(-2px); opacity: 0.6; } }
@keyframes cyrju-flame { 0% { transform: scaleY(0.8); opacity: 0.9; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.7); opacity: 0.8; } }
@keyframes cyrju-chain { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 75% { transform: rotate(-3deg); } }
@keyframes cyrju-fig { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-3px); opacity: 1; } 100% { transform: translateY(2px); opacity: 0.7; } }

.scn-cyrus-honours-brave {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 30%, #1a0f05 70%),
              radial-gradient(ellipse at 50% 40%, #4a3020 0%, transparent 90%);
}
.scn-cyrus-honours-brave .hall-wall { position:absolute; inset:0; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-cyrus-honours-brave .dais { position:absolute; bottom:10%; left:20%; right:20%; height:50px; background: linear-gradient(180deg, #6a5a4a, #4a3a2a); border-radius: 10% 10% 0 0; transform: perspective(300px) rotateX(15deg); }
.scn-cyrus-honours-brave .throne { position:absolute; bottom:28%; left:50%; width:50px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #8a6a4a, #5a4030); border-radius: 20% 20% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-cyrus-honours-brave .figure-cyrus { position:absolute; bottom:24%; left:47%; width:20px; height:50px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: cyrhb-cyrus 5s ease-in-out infinite; }
.scn-cyrus-honours-brave .figure-soldier { position:absolute; bottom:20%; left:60%; width:22px; height:46px; background: linear-gradient(180deg, #4a3a2a, #2a1a10); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: cyrhb-soldier 4s ease-in-out infinite; }
.scn-cyrus-honours-brave .reward-crown { position:absolute; bottom:32%; left:58%; width:16px; height:12px; background: radial-gradient(ellipse, #c8a060, #8a6030); border-radius: 50% 50% 10% 10%; transform: translateX(-50%); animation: cyrhb-crown 3s ease-in-out infinite; }
.scn-cyrus-honours-brave .torch-pair { position:absolute; bottom:55%; left:15%; width:20px; height:40px; background: linear-gradient(180deg, #6a4a2a, #3a2010); border-radius: 5px; box-shadow: 0 0 20px #d07030; }
.scn-cyrus-honours-brave .torch-pair::after { content:''; position:absolute; top:-10px; left:5px; width:10px; height:15px; background: radial-gradient(ellipse at 50% 100%, #f08040, #c05020); border-radius: 50%; filter: blur(2px); }
.scn-cyrus-honours-brave .banner-drape { position:absolute; top:10%; left:38%; width:24%; height:20%; background: linear-gradient(180deg, #8a5a3a, #5a3a20); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); animation: cyrhb-banner 12s ease-in-out infinite alternate; }
@keyframes cyrhb-cyrus { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(-2px) translateY(-2px) rotate(1deg); } }
@keyframes cyrhb-soldier { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(-2deg); } }
@keyframes cyrhb-crown { 0%,100% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-3px) scale(1.1); } }
@keyframes cyrhb-banner { 0% { transform: scaleX(1); opacity: 0.8; } 50% { transform: scaleX(1.05); opacity: 1; } 100% { transform: scaleX(0.95); opacity: 0.7; } }

.scn-xenophon-warns-of-anarchy {
  background:
    linear-gradient(180deg, #3a3c4e 0%, #2a2c3a 40%, #1e202c 100%),
    radial-gradient(ellipse at 50% 80%, #3a3c4e 0%, transparent 60%);
}
.scn-xenophon-warns-of-anarchy .overcast-sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4c60 0%, #2e3040 100%);
  animation: xwa-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-anarchy .mob-bg {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60%;
  background: linear-gradient(0deg, #1a1c24 0%, #2a2c3a 50%, transparent 100%);
}
.scn-xenophon-warns-of-anarchy .figure {
  position: absolute;
  bottom: 20%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #2e303e 0%, #14161c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-xenophon-warns-of-anarchy .fig-accuser {
  left: 30%;
  animation: xwa-accuse 4s ease-in-out infinite;
}
.scn-xenophon-warns-of-anarchy .fig-target {
  left: 55%;
  height: 48px; width: 28px;
  animation: xwa-flinch 3.5s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-anarchy .fig-bystander {
  left: 15%;
  height: 52px; width: 32px;
  opacity: 0.6;
  animation: xwa-stand 6s ease-in-out infinite;
}
.scn-xenophon-warns-of-anarchy .arm {
  position: absolute;
  bottom: 47%;
  left: 35%;
  width: 4px; height: 28px;
  background: #2e303e;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: xwa-arm 0.8s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-anarchy .shadow-void {
  position: absolute;
  bottom: 10%; left: 40%;
  width: 80px; height: 6px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: xwa-shadow-pulse 5s ease-in-out infinite;
}
.scn-xenophon-warns-of-anarchy .dust {
  position: absolute;
  bottom: 20%; left: 20%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(80,80,100,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: xwa-dust 12s linear infinite;
}
@keyframes xwa-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.5 } }
@keyframes xwa-accuse { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xwa-flinch { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes xwa-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes xwa-arm { 0% { transform: rotate(-20deg); } 100% { transform: rotate(20deg); } }
@keyframes xwa-shadow-pulse { 0%,100% { transform: scaleX(1) translateX(0); opacity: 0.3; } 50% { transform: scaleX(1.3) translateX(5px); opacity: 0.6; } }
@keyframes xwa-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.2; } 50% { transform: translate(20px,-10px) scale(1.5); opacity: 0; } 100% { transform: translate(40px,0) scale(1); opacity: 0.2; } }

.scn-xenophon-points-out-consequences {
  background:
    linear-gradient(180deg, #4a5c6c 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 30%, #5a6c7c 0%, transparent 70%);
}
.scn-xenophon-points-out-consequences .sky-gray {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7c8c 0%, #4a5c6c 100%);
  animation: xpc-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-points-out-consequences .sea {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(0deg, #2a3a4a 0%, #3a4a5a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: xpc-sea 10s ease-in-out infinite alternate;
}
.scn-xenophon-points-out-consequences .dock {
  position: absolute;
  bottom: 32%; left: 10%; width: 70%; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 2px;
}
.scn-xenophon-points-out-consequences .fleeing {
  position: absolute;
  bottom: 34%; left: 15%;
  width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: xpc-flee 6s ease-in-out infinite;
}
.scn-xenophon-points-out-consequences .ship-hull {
  position: absolute;
  bottom: 42%; right: 10%;
  width: 80px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  animation: xpc-ship 15s linear infinite;
}
.scn-xenophon-points-out-consequences .ship-sail {
  position: absolute;
  bottom: 62%; right: 18%;
  width: 4px; height: 36px;
  background: #2a2a3a;
  border-radius: 2px;
  animation: xpc-sail 15s linear infinite;
}
.scn-xenophon-points-out-consequences .ship-sail::before {
  content: '';
  position: absolute;
  top: -2px; left: -12px;
  width: 28px; height: 22px;
  background: linear-gradient(135deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(15deg);
  animation: xpc-billow 3s ease-in-out infinite alternate;
}
.scn-xenophon-points-out-consequences .ripple {
  position: absolute;
  bottom: 30%; width: 20px; height: 6px;
  background: rgba(100,120,140,0.3);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-xenophon-points-out-consequences .ripple-a {
  left: 40%;
  animation: xpc-ripple 4s ease-in-out infinite;
}
.scn-xenophon-points-out-consequences .ripple-b {
  left: 60%;
  animation: xpc-ripple 4s ease-in-out infinite 2s;
}
@keyframes xpc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes xpc-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes xpc-flee { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes xpc-ship { 0% { transform: translateX(0); } 100% { transform: translateX(-120px); } }
@keyframes xpc-sail { 0% { transform: translateX(0); } 100% { transform: translateX(-120px); } }
@keyframes xpc-billow { 0% { transform: rotate(10deg) scaleX(0.9); } 100% { transform: rotate(20deg) scaleX(1.1); } }
@keyframes xpc-ripple { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.6); opacity:0; } 100% { transform: scaleX(1); opacity:0.3; } }

.scn-xenophon-urges-reform {
  background:
    linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 40%, #1a2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #4a5a4a 0%, transparent 60%);
}
.scn-xenophon-urges-reform .sky-dreary {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  animation: xur-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-urges-reform .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(0deg, #0a1a0a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-xenophon-urges-reform .mound {
  position: absolute;
  bottom: 10%;
  width: 60px; height: 20px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-xenophon-urges-reform .mound-left {
  left: 20%;
  animation: xur-mound 20s ease-in-out infinite;
}
.scn-xenophon-urges-reform .mound-right {
  right: 20%;
  animation: xur-mound 20s ease-in-out infinite 10s;
}
.scn-xenophon-urges-reform .mourner {
  position: absolute;
  bottom: 22%; left: 45%;
  width: 28px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xur-bow 8s ease-in-out infinite;
}
.scn-xenophon-urges-reform .tree-trunk {
  position: absolute;
  bottom: 30%; left: 15%;
  width: 8px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
}
.scn-xenophon-urges-reform .tree-crown {
  position: absolute;
  bottom: 70%; left: 10%;
  width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, #1a2a1a 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: xur-tree 25s ease-in-out infinite alternate;
}
@keyframes xur-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes xur-mound { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes xur-bow { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(2px) rotate(20deg); } 60% { transform: translateY(0) rotate(0deg); } 80% { transform: translateY(-1px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes xur-tree { 0% { transform: scale(1) translateX(0); opacity:0.6; } 50% { transform: scale(1.05) translateX(3px); opacity:0.8; } 100% { transform: scale(1) translateX(0); opacity:0.6; } }

.scn-xenophon-rhetorical-questions-2 {
  background:
    linear-gradient(180deg, #1a1c2e 0%, #0e0f1a 50%, #05050a 100%),
    radial-gradient(ellipse at 50% 60%, #1a1c2e 0%, transparent 70%);
}
.scn-xenophon-rhetorical-questions-2 .bg-dark {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a2c3e 0%, transparent 100%);
  animation: xrq-fade 8s ease-in-out infinite alternate;
}
.scn-xenophon-rhetorical-questions-2 .figure {
  position: absolute;
  bottom: 20%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1c1c2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-xenophon-rhetorical-questions-2 .duelist-a {
  left: 30%;
  animation: xrq-lunge 3s ease-in-out infinite alternate;
}
.scn-xenophon-rhetorical-questions-2 .duelist-b {
  right: 30%;
  animation: xrq-lunge 3s ease-in-out infinite alternate-reverse;
}
.scn-xenophon-rhetorical-questions-2 .knife {
  position: absolute;
  bottom: 60%;
  width: 3px; height: 24px;
  background: linear-gradient(180deg, #8a9aaa 0%, #4a5a6a 100%);
  border-radius: 1px 1px 3px 3px;
}
.scn-xenophon-rhetorical-questions-2 .knife-a {
  left: 34%;
  transform-origin: bottom center;
  animation: xrq-thrust 1.2s ease-in-out infinite alternate;
}
.scn-xenophon-rhetorical-questions-2 .knife-b {
  right: 34%;
  transform-origin: bottom center;
  animation: xrq-thrust 1.2s ease-in-out infinite alternate 0.6s;
}
.scn-xenophon-rhetorical-questions-2 .flash {
  position: absolute;
  top: 45%; left: 46%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(180,200,220,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: xrq-flash 2s ease-in-out infinite;
}
.scn-xenophon-rhetorical-questions-2 .ground-shadow {
  position: absolute;
  bottom: 0; left: 20%; right: 20%;
  height: 4px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: xrq-ground 4s ease-in-out infinite alternate;
}
@keyframes xrq-fade { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes xrq-lunge { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(8px) translateY(-2px) rotate(5deg); } 100% { transform: translateX(-3px) translateY(0) rotate(-2deg); } }
@keyframes xrq-thrust { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-5px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes xrq-flash { 0% { opacity:0; transform: scale(1); } 30% { opacity:0.6; transform: scale(2); } 60% { opacity:0; transform: scale(1.5); } 100% { opacity:0; transform: scale(1); } }
@keyframes xrq-ground { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); } }

.scn-favourable-sacrifice-at-last {
  background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 20%, #ffdead 0%, transparent 70%);
}
.scn-favourable-sacrifice-at-last .sc-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #ffebcd 100%);
  animation: sc-skyfade 30s ease-in-out infinite alternate;
}
.scn-favourable-sacrifice-at-last .sc-sun {
  position: absolute; top: 10%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff4b0 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  animation: sc-sunpulse 8s ease-in-out infinite;
}
.scn-favourable-sacrifice-at-last .sc-altar {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0795a 0%, #7a5c3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-favourable-sacrifice-at-last .sc-flame {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #ff4500 60%, transparent 100%);
  border-radius: 50%;
  animation: sc-flameflicker 2s ease-in-out infinite alternate;
}
.scn-favourable-sacrifice-at-last .sc-figure {
  position: absolute; bottom: 24%; left: 43%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figurebreath 6s ease-in-out infinite;
}
.scn-favourable-sacrifice-at-last .sc-eagle {
  position: absolute; top: 15%; left: 30%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 100%, 30% 0%, 50% 40%, 70% 0%, 100% 100%);
  animation: sc-eaglefly 20s linear infinite;
}
.scn-favourable-sacrifice-at-last .sc-horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #c2a67a 0%, transparent 100%);
}
@keyframes sc-skyfade { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sc-sunpulse { 0% { transform: scale(1); box-shadow: 0 0 20px #ffd700; } 50% { transform: scale(1.1); box-shadow: 0 0 40px #ffeb3b; } 100% { transform: scale(0.95); box-shadow: 0 0 15px #ffc107; } }
@keyframes sc-flameflicker { 0% { opacity: 0.7; transform: translateX(-50%) scaleY(0.9); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scaleY(1); } }
@keyframes sc-figurebreath { 0% { transform: translateY(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sc-eaglefly { 0% { transform: translateX(-80px) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(120vw) rotate(-1deg); } }

.scn-all-march-out {
  background: linear-gradient(180deg, #e0e8f0 0%, #c8d0d8 30%, #b0a090 100%), radial-gradient(ellipse at 50% 100%, #a09070 0%, transparent 80%);
}
.scn-all-march-out .mo-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8e4ec 0%, transparent 100%);
  animation: mo-skyshade 15s ease-in-out infinite alternate;
}
.scn-all-march-out .mo-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9a8b7a 0%, #6b5b4a 100%);
}
.scn-all-march-out .mo-tent {
  position: absolute; bottom: 28%; left: 15%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-all-march-out .mo-column {
  position: absolute; bottom: 20%; left: 55%; width: 120px; height: 30px;
  background: repeating-linear-gradient(90deg, #3a3a3a 0px, #3a3a3a 4px, #6a6a6a 4px, #6a6a6a 8px);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  animation: mo-columnmove 8s ease-in-out infinite alternate;
}
.scn-all-march-out .mo-figure {
  position: absolute; bottom: 22%; left: 10%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mo-figurestand 4s ease-in-out infinite;
}
.scn-all-march-out .mo-dust {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: mo-dustdrift 10s ease-in-out infinite alternate;
}
.scn-all-march-out .mo-shadow {
  position: absolute; bottom: 23%; left: 8%; width: 20px; height: 6px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  animation: mo-shadowshift 4s ease-in-out infinite;
}
@keyframes mo-skyshade { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mo-columnmove { 0% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes mo-figurestand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mo-dustdrift { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.2); } 100% { transform: translateX(-5px) scaleY(0.8); } }
@keyframes mo-shadowshift { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }

.scn-burying-more-dead {
  background: linear-gradient(180deg, #6b7b8c 0%, #8a9aad 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 0%, #aabcce 0%, transparent 70%);
}
.scn-burying-more-dead .bu-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #7a8b9e 0%, #b0c4d8 100%);
  animation: bu-skydim 20s ease-in-out infinite alternate;
}
.scn-burying-more-dead .bu-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6b5b4a 0%, #3a2a1a 100%);
}
.scn-burying-more-dead .bu-grave {
  position: absolute; bottom: 20%; left: 30%; width: 25px; height: 15px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: bu-gravesink 12s ease-in-out infinite alternate;
}
.scn-burying-more-dead .bu-digger {
  position: absolute; bottom: 18%; left: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: bu-dig 6s ease-in-out infinite;
}
.scn-burying-more-dead .bu-body {
  position: absolute; bottom: 10%; left: 20%; width: 24px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 20% 20%;
  transform: rotate(20deg);
  opacity: 0.6;
  animation: bu-bodyfade 30s ease-in-out infinite;
}
.scn-burying-more-dead .bu-marker {
  position: absolute; bottom: 25%; left: 32%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
}
.scn-burying-more-dead .bu-light {
  position: absolute; top: 25%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,250,220,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: bu-lightwobble 15s ease-in-out infinite alternate;
}
@keyframes bu-skydim { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bu-gravesink { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.9); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes bu-dig { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-5deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bu-bodyfade { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes bu-lightwobble { 0% { transform: translate(-5px, -2px); } 50% { transform: translate(5px, 2px); } 100% { transform: translate(-3px, 1px); } }

.scn-encountering-the-enemy {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 40%, #a08060 100%), radial-gradient(ellipse at 50% 30%, #ffebc0 0%, transparent 60%);
}
.scn-encountering-the-enemy .en-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8dbb0 0%, #f5e6c0 100%);
  animation: en-skyheat 10s ease-in-out infinite alternate;
}
.scn-encountering-the-enemy .en-hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a8a6a 0%, #6b5b3a 100%);
  clip-path: polygon(0% 100%, 10% 60%, 25% 80%, 40% 50%, 60% 70%, 80% 40%, 100% 60%, 100% 100%);
  animation: en-hillswave 12s ease-in-out infinite alternate;
}
.scn-encountering-the-enemy .en-enemy {
  position: absolute; bottom: 35%; left: 60%; width: 40px; height: 36px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  clip-path: polygon(0% 100%, 20% 20%, 40% 0%, 60% 0%, 80% 20%, 100% 100%);
  animation: en-enemysway 5s ease-in-out infinite;
}
.scn-encountering-the-enemy .en-soldier {
  position: absolute; bottom: 20%; left: 25%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: en-soldierstep 4s ease-in-out infinite;
}
.scn-encountering-the-enemy .en-spear {
  position: absolute; bottom: 25%; left: 28%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: en-speartremble 2s ease-in-out infinite;
}
.scn-encountering-the-enemy .en-dust {
  position: absolute; bottom: 18%; left: 20%; width: 60px; height: 16px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.5) 0%, transparent 80%);
  filter: blur(5px);
  animation: en-dustswirl 8s ease-in-out infinite alternate;
}
.scn-encountering-the-enemy .en-sun {
  position: absolute; top: 12%; left: 40%; width: 28px; height: 28px;
  background: radial-gradient(circle, #fff4c0 0%, #ffd700 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,215,0,0.4);
  animation: en-sunpulse 6s ease-in-out infinite;
}
@keyframes en-skyheat { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes en-hillswave { 0% { transform: translateY(-2px); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes en-enemysway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes en-soldierstep { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(3deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes en-speartremble { 0% { transform: rotate(14deg); } 50% { transform: rotate(16deg); } 100% { transform: rotate(14deg); } }
@keyframes en-dustswirl { 0% { transform: scaleY(0.8) translateX(0); } 50% { transform: scaleY(1.2) translateX(5px); } 100% { transform: scaleY(0.9) translateX(-3px); } }
@keyframes en-sunpulse { 0% { transform: scale(1); box-shadow: 0 0 20px 5px rgba(255,215,0,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 35px 10px rgba(255,215,0,0.5); } 100% { transform: scale(1); box-shadow: 0 0 25px 8px rgba(255,215,0,0.4); } }

/* hecatonymus-concludes-sea-route (calm, dim-interior) */
.scn-hecatonymus-concludes-sea-route {
  background: linear-gradient(160deg, #2a1e14 0%, #3a2a1c 40%, #4a3a28 100%), radial-gradient(ellipse at 30% 80%, #4a3a28 0%, transparent 60%);
}
.scn-hecatonymus-concludes-sea-route .room { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); }
.scn-hecatonymus-concludes-sea-route .map-table { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a4a38 0%, #3a2a1c 100%); border-radius: 4% / 30%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-hecatonymus-concludes-sea-route .map { position:absolute; bottom:23%; left:25%; width:50%; height:6%; background: linear-gradient(135deg, #b8a88a 0%, #d8c8aa 40%, #b8a88a 100%); border-radius: 2%; box-shadow: inset 0 0 8px rgba(0,0,0,.3); animation: csr-map 12s ease-in-out infinite alternate; }
.scn-hecatonymus-concludes-sea-route .lamp { position:absolute; bottom:32%; left:45%; width:4%; height:6%; background: linear-gradient(180deg, #c8a868 0%, #a08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px #c8a868; }
.scn-hecatonymus-concludes-sea-route .lamp-glow { position:absolute; bottom:30%; left:44%; width:12%; height:12%; background: radial-gradient(circle, rgba(200,168,104,0.4) 0%, transparent 70%); border-radius: 50%; animation: csr-glow 4s ease-in-out infinite alternate; }
.scn-hecatonymus-concludes-sea-route .shadow-figure { position:absolute; bottom:22%; left:35%; width:8%; height:15%; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: csr-figure 6s ease-in-out infinite alternate; }
.scn-hecatonymus-concludes-sea-route .window { position:absolute; top:15%; right:15%; width:20%; height:30%; background: #1a2a3a; border: 4px solid #3a2a1c; border-radius: 4% 4% 8% 8%; overflow: hidden; }
.scn-hecatonymus-concludes-sea-route .sea-view { position:absolute; top:15%; right:15%; width:20%; height:30%; background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%); border-radius: 4% 4% 8% 8%; opacity: 0.6; animation: csr-sea 10s ease-in-out infinite alternate; }
@keyframes csr-map { 0% { transform: scale(1) rotate(-1deg); } 50% { transform: scale(1.02) rotate(0deg); } 100% { transform: scale(0.98) rotate(1deg); } }
@keyframes csr-glow { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes csr-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(-2px) rotate(2deg); } }
@keyframes csr-sea { 0% { background-position: 0 0; } 50% { background-position: 0 10%; } 100% { background-position: 0 5%; } }

/* suspicion-of-hecatonymus (tense, dim-interior) */
.scn-suspicion-of-hecatonymus {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 50%, #1c1410 100%), radial-gradient(ellipse at 50% 40%, #2a201a 0%, transparent 70%);
}
.scn-suspicion-of-hecatonymus .room-dark { position:absolute; inset:0; background: linear-gradient(160deg, #1a1410 0%, #0e0a08 100%); }
.scn-suspicion-of-hecatonymus .table { position:absolute; bottom:25%; left:20%; width:60%; height:5%; background: linear-gradient(180deg, #3a2a1c 0%, #1a120a 100%); border-radius: 6% / 40%; box-shadow: 0 6px 14px rgba(0,0,0,.7); }
.scn-suspicion-of-hecatonymus .candle { position:absolute; bottom:35%; left:48%; width:3%; height:6%; background: linear-gradient(180deg, #e8d8b8 0%, #c8b088 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 8px #e8d8b8; }
.scn-suspicion-of-hecatonymus .candle-flame { position:absolute; bottom:40%; left:48.5%; width:2%; height:3%; background: radial-gradient(circle, #ffd080 0%, #ff9040 40%, transparent 70%); border-radius: 50%; animation: sh-flame 0.6s ease-in-out infinite alternate; }
.scn-suspicion-of-hecatonymus .figure-left { position:absolute; bottom:22%; left:25%; width:10%; height:18%; background: linear-gradient(180deg, #2a1e14 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sh-lean-left 3s ease-in-out infinite alternate; }
.scn-suspicion-of-hecatonymus .figure-right { position:absolute; bottom:22%; right:25%; width:10%; height:18%; background: linear-gradient(180deg, #1c140e 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sh-lean-right 3s ease-in-out infinite alternate; animation-delay: 0.5s; }
.scn-suspicion-of-hecatonymus .shadow { position:absolute; bottom:18%; left:30%; right:30%; height:8%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: sh-shadow 4s ease-in-out infinite alternate; }
@keyframes sh-flame { 0% { transform: scale(0.8) translateY(0); opacity: 0.9; } 50% { transform: scale(1.1) translateY(-2px); opacity: 1; } 100% { transform: scale(0.9) translateY(1px); opacity: 0.8; } }
@keyframes sh-lean-left { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes sh-lean-right { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes sh-shadow { 0% { opacity: 0.5; transform: scaleX(0.8); } 50% { opacity: 1; transform: scaleX(1.1); } 100% { opacity: 0.6; transform: scaleX(0.9); } }

/* xenophon-demands-ships (tense, sunlit) */
.scn-xenophon-demands-ships {
  background: linear-gradient(180deg, #6a8aaa 0%, #4a7a9a 40%, #3a5a7a 100%), radial-gradient(ellipse at 70% 20%, #8ab0d0 0%, transparent 60%);
}
.scn-xenophon-demands-ships .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8ab0d0 0%, #6a8aaa 100%); }
.scn-xenophon-demands-ships .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 100%); animation: xds-sea 8s ease-in-out infinite alternate; }
.scn-xenophon-demands-ships .ships { position:absolute; bottom:15%; left:10%; width:20%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: xds-ship-bob 5s ease-in-out infinite; }
.scn-xenophon-demands-ships .ship-sail { position:absolute; bottom:22%; left:12%; width:10%; height:18%; background: linear-gradient(135deg, #d8c8b8 0%, #b8a898 100%); clip-path: polygon(0 100%, 50% 0, 100% 100%); animation: xds-sail 6s ease-in-out infinite alternate; }
.scn-xenophon-demands-ships .figure-xenophon { position:absolute; bottom:30%; left:45%; width:8%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: xds-xenophon 4s ease-in-out infinite alternate; }
.scn-xenophon-demands-ships .figure-sinopean { position:absolute; bottom:30%; right:40%; width:8%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: xds-sinopean 4s ease-in-out infinite alternate; animation-delay: 0.3s; }
.scn-xenophon-demands-ships .sun { position:absolute; top:10%; right:15%; width:10%; height:10%; background: radial-gradient(circle, #fff0d0 0%, #ffd080 40%, transparent 70%); border-radius: 50%; animation: xds-sun 12s ease-in-out infinite alternate; }
@keyframes xds-sea { 0% { background-position: 0 0; } 50% { background-position: 0 10%; } 100% { background-position: 0 5%; } }
@keyframes xds-ship-bob { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes xds-sail { 0% { transform: skewX(-2deg); } 50% { transform: skewX(4deg); } 100% { transform: skewX(-2deg); } }
@keyframes xds-xenophon { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes xds-sinopean { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes xds-sun { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; } }

/* xenophon-colony-idea (tense, overcast) */
.scn-xenophon-colony-idea {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 60%);
}
.scn-xenophon-colony-idea .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); animation: xci-sky 15s ease-in-out infinite alternate; }
.scn-xenophon-colony-idea .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); }
.scn-xenophon-colony-idea .tents { position:absolute; bottom:30%; left:10%; width:15%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; clip-path: polygon(0 100%, 20% 0, 80% 0, 100% 100%); animation: xci-tent 7s ease-in-out infinite alternate; }
.scn-xenophon-colony-idea .army-figures { position:absolute; bottom:28%; left:30%; right:10%; height:15%; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 8px, transparent 8px, transparent 16px); animation: xci-march 8s linear infinite; }
.scn-xenophon-colony-idea .xenophon-figure { position:absolute; bottom:30%; left:55%; width:8%; height:18%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: xci-xenophon 5s ease-in-out infinite alternate; }
.scn-xenophon-colony-idea .thought-glow { position:absolute; top:25%; left:55%; width:10%; height:10%; background: radial-gradient(circle, rgba(220,220,200,0.3) 0%, transparent 70%); border-radius: 50%; animation: xci-thought 4s ease-in-out infinite alternate; }
.scn-xenophon-colony-idea .banner { position:absolute; bottom:35%; left:20%; width:4%; height:10%; background: #5a4a3a; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); animation: xci-banner 3s ease-in-out infinite alternate; }
@keyframes xci-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xci-tent { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-2px) skewX(1deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes xci-march { 0% { background-position: 0 0; } 100% { background-position: -32px 0; } }
@keyframes xci-xenophon { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(-2px) rotate(2deg); } }
@keyframes xci-thought { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes xci-banner { 0% { transform: rotate(-3deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* scene 1: army-ordered-out */
.scn-army-ordered-out {
  background:
    linear-gradient(180deg, #8ecae6 0%, #ffb703 100%),
    radial-gradient(ellipse at 50% 80%, #fff8e7 0%, transparent 60%);
}
.scn-army-ordered-out .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #6ba3d6 0%, #ffdc8a 100%);
  animation: aoo-sky 12s ease-in-out infinite alternate;
}
.scn-army-ordered-out .sun {
  position:absolute; top:8%; right:15%; width:40px; height:40px;
  background: radial-gradient(circle, #ffe066 0%, #ffb703 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 60px 30px #ffb703;
  animation: aoo-sun 8s ease-in-out infinite alternate;
}
.scn-army-ordered-out .wall {
  position:absolute; bottom:20%; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #4a3e2f 0%, #6b5a3e 50%, #8a7a5a 100%);
  border-radius: 10% 10% 0 0/20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-army-ordered-out .gate {
  position:absolute; bottom:20%; left:50%; width:80px; height:90px;
  transform:translateX(-50%);
  background: #3a2e1f;
  border-radius: 40% 40% 0 0/60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6), 0 0 0 3px #2a1e0f;
}
.scn-army-ordered-out .soldier {
  position:absolute; bottom:20%; width:16px; height:40px;
  background: linear-gradient(180deg, #2a2020 30%, #1a1010 70%);
  border-radius: 50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-army-ordered-out .soldier-1 {
  left:30%; animation: aoo-walk 3s ease-in-out infinite;
}
.scn-army-ordered-out .soldier-2 {
  left:40%; animation: aoo-walk 3s ease-in-out infinite 0.5s;
}
.scn-army-ordered-out .soldier-3 {
  left:50%; animation: aoo-walk 3s ease-in-out infinite 1s;
}
.scn-army-ordered-out .spear {
  position:absolute; bottom:20%; width:2px; height:42px;
  background: linear-gradient(#8a7a5a 80%, #c0a86a 100%);
  transform-origin: bottom center;
}
.scn-army-ordered-out .spear-1 { left:30%; margin-left:7px; animation: aoo-spear 3s ease-in-out infinite; }
.scn-army-ordered-out .spear-2 { left:40%; margin-left:7px; animation: aoo-spear 3s ease-in-out infinite 0.5s; }
.scn-army-ordered-out .dust {
  position:absolute; bottom:10%; left:20%; right:20%; height:8%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,170,120,0.5) 0%, transparent 100%);
  filter: blur(3px);
  animation: aoo-dust 6s ease-in-out infinite alternate;
}
@keyframes aoo-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes aoo-sun { 0%{transform:scale(0.9); opacity:0.7} 50%{transform:scale(1.1); opacity:1} 100%{transform:scale(0.95); opacity:0.8} }
@keyframes aoo-walk {
  0%{ transform: translateX(0) rotate(-2deg) translateY(0) }
  25%{ transform: translateX(8px) rotate(2deg) translateY(-1px) }
  50%{ transform: translateX(16px) rotate(-2deg) translateY(0) }
  75%{ transform: translateX(24px) rotate(2deg) translateY(-1px) }
  100%{ transform: translateX(32px) rotate(0) translateY(0) }
}
@keyframes aoo-spear {
  0%{ transform: rotate(-2deg) translateY(0); }
  50%{ transform: rotate(2deg) translateY(-2px); }
  100%{ transform: rotate(0) translateY(0); }
}
@keyframes aoo-dust { 0%{opacity:0.3; transform:scaleY(0.8)} 100%{opacity:0.6; transform:scaleY(1.2)} }

/* scene 2: anaxibius-addresses-generals */
.scn-anaxibius-addresses-generals {
  background:
    linear-gradient(180deg, #b8c6db 0%, #f5d76e 100%),
    radial-gradient(ellipse at 50% 0%, #fff7d4 0%, transparent 70%);
}
.scn-anaxibius-addresses-generals .tent {
  position:absolute; top:5%; left:10%; width:30%; height:25%;
  background: linear-gradient(135deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 0 0 50% 50%/0 0 30% 30%;
  box-shadow: inset 0 -8px 15px rgba(0,0,0,0.4);
}
.scn-anaxibius-addresses-generals .podium {
  position:absolute; bottom:30%; left:50%; width:60px; height:15px;
  transform:translateX(-50%);
  background: linear-gradient(0deg, #4a3a2a, #6a5a3a);
  border-radius: 5px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-anaxibius-addresses-generals .general {
  position:absolute; bottom:30%; width:18px; height:42px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 70%);
  border-radius: 50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-anaxibius-addresses-generals .general-1 { left:30%; animation: ag-turn 6s ease-in-out infinite; }
.scn-anaxibius-addresses-generals .general-2 { left:35%; animation: ag-turn 6s ease-in-out infinite 1s; }
.scn-anaxibius-addresses-generals .general-3 { left:40%; animation: ag-turn 6s ease-in-out infinite 2s; }
.scn-anaxibius-addresses-generals .general-4 { left:45%; animation: ag-turn 6s ease-in-out infinite 3s; }
.scn-anaxibius-addresses-generals .banner {
  position:absolute; bottom:55%; left:55%; width:8px; height:35px;
  background: #4a3a2a;
}
.scn-anaxibius-addresses-generals .banner::after {
  content:''; position:absolute; top:-10px; left:-6px; width:20px; height:14px;
  background: #c8553d;  /* desaturated red */
  border-radius: 0 0 10px 10px;
  animation: ag-flag 3s ease-in-out infinite;
}
.scn-anaxibius-addresses-generals .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #5a4a3a, #8a7a5a);
  border-radius: 30% 30% 0 0/50% 50% 0 0;
}
@keyframes ag-turn {
  0%{ transform: rotate(0) translateY(0); }
  50%{ transform: rotate(3deg) translateY(-2px); }
  100%{ transform: rotate(0) translateY(0); }
}
@keyframes ag-flag {
  0%{ transform: rotate(-5deg); }
  50%{ transform: rotate(10deg); }
  100%{ transform: rotate(-5deg); }
}

/* scene 3: soldiers-rush-gates */
.scn-soldiers-rush-gates {
  background:
    linear-gradient(180deg, #a8c8e8 0%, #e8c870 100%),
    radial-gradient(ellipse at 50% 0%, #fffce0 0%, transparent 70%);
}
.scn-soldiers-rush-gates .wall {
  position:absolute; bottom:25%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a4a3a, #2a1a0a);
  border-radius: 20% 20% 0 0/30% 30% 0 0;
}
.scn-soldiers-rush-gates .gate {
  position:absolute; bottom:25%; left:50%; width:70px; height:90px;
  transform:translateX(-50%);
  background: #2a1a0a;
  border-radius: 30% 30% 0 0/40% 40% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.7);
}
.scn-soldiers-rush-gates .gate-open {
  opacity:0;
  animation: srg-gate-open 2s linear infinite;
}
.scn-soldiers-rush-gates .gate-closing {
  opacity:1;
  animation: srg-gate-close 2s linear infinite;
}
.scn-soldiers-rush-gates .runner {
  position:absolute; bottom:27%; width:16px; height:38px;
  background: linear-gradient(180deg, #2a2020, #1a1010);
  border-radius: 50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-soldiers-rush-gates .runner-1 { left:20%; animation: srg-run 2s ease-in-out infinite; }
.scn-soldiers-rush-gates .runner-2 { left:30%; animation: srg-run 2s ease-in-out infinite 0.3s; }
.scn-soldiers-rush-gates .runner-3 { left:40%; animation: srg-run 2s ease-in-out infinite 0.6s; }
.scn-soldiers-rush-gates .spear {
  position:absolute; bottom:30%; left:55%; width:2px; height:40px;
  background: #8a7a5a;
  transform: rotate(20deg);
  animation: srg-spear 0.8s ease-in-out infinite alternate;
}
.scn-soldiers-rush-gates .dust-srg {
  position:absolute; bottom:15%; left:15%; right:15%; height:10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,170,120,0.6), transparent);
  filter: blur(4px);
  animation: srg-dust 1.5s ease-in-out infinite alternate;
}
@keyframes srg-gate-open { 0%{opacity:1} 50%{opacity:0} 100%{opacity:0} }
@keyframes srg-gate-close { 0%{opacity:0} 50%{opacity:1} 100%{opacity:1} }
@keyframes srg-run {
  0%{ transform: translateX(0) rotate(-3deg) translateY(0); }
  25%{ transform: translateX(15px) rotate(3deg) translateY(-2px); }
  50%{ transform: translateX(30px) rotate(-3deg) translateY(0); }
  75%{ transform: translateX(45px) rotate(3deg) translateY(-2px); }
  100%{ transform: translateX(60px) rotate(0) translateY(0); }
}
@keyframes srg-spear {
  0%{ transform: rotate(15deg) translateX(-2px); }
  100%{ transform: rotate(25deg) translateX(2px); }
}
@keyframes srg-dust { 0%{opacity:0.2; transform:scaleY(0.5)} 100%{opacity:0.8; transform:scaleY(1.5)} }

/* scene 4: panicked-flight */
.scn-panicked-flight {
  background:
    linear-gradient(180deg, #9ab8d4 0%, #f0d080 100%),
    radial-gradient(ellipse at 50% 80%, #ffeaa7 0%, transparent 60%);
}
.scn-panicked-flight .wall {
  position:absolute; bottom:20%; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #4a3e2f, #6b5a3e);
  border-radius: 10% 10% 0 0/20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-panicked-flight .gate {
  position:absolute; bottom:20%; left:50%; width:80px; height:90px;
  transform:translateX(-50%);
  background: #3a2e1f;
  border-radius: 40% 40% 0 0/60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6), 0 0 0 3px #2a1e0f;
  z-index:2;
}
.scn-panicked-flight .crowd {
  position:absolute; bottom:18%; width:100px; height:50px;
  background: radial-gradient(ellipse at 50% 100%, #1a1010 0%, transparent 100%);
  filter: blur(2px);
  z-index:1;
}
.scn-panicked-flight .crowd-front {
  left:35%; bottom:18%;
  animation: pf-surge 1.2s ease-in-out infinite;
}
.scn-panicked-flight .crowd-mid {
  left:40%; bottom:20%; width:80px; height:40px;
  animation: pf-surge 1.2s ease-in-out infinite 0.4s;
}
.scn-panicked-flight .crowd-back {
  left:45%; bottom:22%; width:60px; height:30px;
  animation: pf-surge 1.2s ease-in-out infinite 0.8s;
}
.scn-panicked-flight .xenophon {
  position:absolute; bottom:22%; left:45%; width:14px; height:36px;
  background: linear-gradient(180deg, #3a2a1a, #1a1008);
  border-radius: 50% 50% 40% 40%/60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-xeno 2s ease-in-out infinite;
  z-index:3;
}
.scn-panicked-flight .dust-pf {
  position:absolute; bottom:10%; left:20%; right:20%; height:10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,150,100,0.5) 0%, transparent 100%);
  filter: blur(5px);
  animation: pf-dust 0.8s ease-in-out infinite alternate;
}
@keyframes pf-surge {
  0%{ transform: scaleX(0.9) translateY(0); opacity:0.7; }
  50%{ transform: scaleX(1.1) translateY(-4px); opacity:1; }
  100%{ transform: scaleX(0.95) translateY(0); opacity:0.7; }
}
@keyframes pf-xeno {
  0%{ transform: translateX(0) rotate(-5deg); }
  25%{ transform: translateX(5px) rotate(5deg) translateY(-3px); }
  50%{ transform: translateX(-5px) rotate(-5deg) translateY(0); }
  75%{ transform: translateX(10px) rotate(5deg) translateY(-2px); }
  100%{ transform: translateX(0) rotate(0); }
}
@keyframes pf-dust { 0%{opacity:0.3; transform:scaleY(0.6)} 100%{opacity:0.7; transform:scaleY(1.4)} }

/* campaign-resumes */
.scn-campaign-resumes { background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 40%, #3a4a5a 100%), radial-gradient(ellipse at 50% 30%, #8a9aaa 0%, transparent 80%); }
.scn-campaign-resumes .sky  { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%); animation: cr-sky 12s ease-in-out infinite alternate; }
.scn-campaign-resumes .sea  { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); animation: cr-sea 8s ease-in-out infinite alternate; }
.scn-campaign-resumes .coast { position:absolute; bottom:30%; left:0; right:0; height:5%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 0 0 30% 30%; }
.scn-campaign-resumes .army  { position:absolute; bottom:30%; width:6px; height:20px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-campaign-resumes .figure-a { left:42%; animation: cr-march-a 4s ease-in-out infinite; }
.scn-campaign-resumes .figure-b { left:48%; animation: cr-march-b 4.2s ease-in-out infinite 0.5s; }
.scn-campaign-resumes .figure-c { left:54%; animation: cr-march-c 4.5s ease-in-out infinite 1s; }
.scn-campaign-resumes .distant-city { position:absolute; bottom:50%; right:15%; width:40px; height:25px; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); filter: blur(2px); opacity:.6; }
.scn-campaign-resumes .cloud-a { position:absolute; top:12%; left:20%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter: blur(8px); animation: cr-drift-a 40s linear infinite; }
.scn-campaign-resumes .cloud-b { position:absolute; top:8%; right:10%; width:70px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: cr-drift-b 35s linear infinite reverse; }
@keyframes cr-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cr-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes cr-march-a { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(0) } 50% { transform: translateX(8px) translateY(0) rotate(1deg) } 75% { transform: translateX(12px) translateY(1px) rotate(0) } 100% { transform: translateX(16px) translateY(0) rotate(-1deg) } }
@keyframes cr-march-b { 0% { transform: translateX(0) translateY(0) rotate(0) } 33% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(10px) translateY(0) rotate(-1deg) } 100% { transform: translateX(15px) translateY(0) rotate(0) } }
@keyframes cr-march-c { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(6px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(12px) translateY(0) rotate(1deg) } }
@keyframes cr-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes cr-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* thracian-wreckers */
.scn-thracian-wreckers { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 70%); }
.scn-thracian-wreckers .sky  { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: tw-sky 15s ease-in-out infinite alternate; }
.scn-thracian-wreckers .sea  { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: tw-sea 10s ease-in-out infinite alternate; }
.scn-thracian-wreckers .cliff { position:absolute; bottom:30%; left:10%; width:20%; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); }
.scn-thracian-wreckers .pillar { position:absolute; bottom:30%; width:8px; height:40px; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 6px rgba(0,0,0,.5); }
.scn-thracian-wreckers .pillar-a { left:25%; animation: tw-pillar 6s ease-in-out infinite; }
.scn-thracian-wreckers .pillar-b { left:35%; height:35px; animation: tw-pillar 6.5s ease-in-out infinite 1s; }
.scn-thracian-wreckers .wreck { position:absolute; bottom:35%; left:55%; width:40px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 0 0 40% 40%; transform: rotate(-15deg); box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: tw-wreck 4s ease-in-out infinite; }
.scn-thracian-wreckers .wrecker { position:absolute; bottom:30%; width:16px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-thracian-wreckers .figure-a { left:15%; animation: tw-lurk 5s ease-in-out infinite; }
.scn-thracian-wreckers .figure-b { left:45%; animation: tw-lurk 5.5s ease-in-out infinite 1.5s; }
@keyframes tw-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes tw-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes tw-pillar { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tw-wreck { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-13deg) translateY(2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes tw-lurk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }

/* reduce-district */
.scn-reduce-district { background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 50%, #4a5a3a 100%), radial-gradient(ellipse at 50% 0%, #9aaa8a 0%, transparent 60%); }
.scn-reduce-district .sky  { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #9aaa8a 0%, #7a8a6a 100%); animation: rd-sky 14s ease-in-out infinite alternate; }
.scn-reduce-district .hills { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.2); animation: rd-hills 20s ease-in-out infinite alternate; }
.scn-reduce-district .plains { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #6a7a5a 0%, #5a6a4a 100%); }
.scn-reduce-district .army  { position:absolute; bottom:25%; width:6px; height:22px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-reduce-district .figure-a { left:35%; animation: rd-march 5s ease-in-out infinite; }
.scn-reduce-district .figure-b { left:45%; animation: rd-march 5.3s ease-in-out infinite 0.6s; }
.scn-reduce-district .standard { position:absolute; bottom:30%; left:55%; width:4px; height:30px; background: #2a3a1a; border-radius:0; box-shadow: inset 0 0 2px #4a5a3a; animation: rd-standard 7s ease-in-out infinite; }
.scn-reduce-district .cloud-a { position:absolute; top:15%; left:10%; width:120px; height:22px; background: linear-gradient(180deg, rgba(255,255,255,.35) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(10px); animation: rd-drift-a 45s linear infinite; }
.scn-reduce-district .cloud-b { position:absolute; top:20%; right:5%; width:80px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: rd-drift-b 50s linear infinite reverse; }
@keyframes rd-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rd-hills { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes rd-march { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 33% { transform: translateX(5px) translateY(-1px) rotate(0) } 66% { transform: translateX(10px) translateY(0) rotate(1deg) } 100% { transform: translateX(15px) translateY(0) rotate(-1deg) } }
@keyframes rd-standard { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rd-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes rd-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* camp-above-selybria */
.scn-camp-above-selybria { background: linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 40%, #3a1a1a 100%), radial-gradient(ellipse at 50% 80%, #6a3a3a 0%, transparent 70%); }
.scn-camp-above-selybria .sky  { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); animation: cs-sky 12s ease-in-out infinite alternate; }
.scn-camp-above-selybria .ground { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-camp-above-selybria .tent { position:absolute; bottom:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; }
.scn-camp-above-selybria .tent-a { left:20%; width:50px; height:30px; transform: perspective(60px) rotateX(5deg); animation: cs-tent 8s ease-in-out infinite; }
.scn-camp-above-selybria .tent-b { right:25%; width:40px; height:24px; transform: perspective(50px) rotateX(-3deg); animation: cs-tent 8.5s ease-in-out infinite 1s; }
.scn-camp-above-selybria .fire { position:absolute; bottom:30%; left:50%; width:16px; height:24px; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 30px 10px #ff8040, 0 0 60px 20px rgba(255,128,64,.3); animation: cs-fire 2s ease-in-out infinite alternate; }
.scn-camp-above-selybria .figure { position:absolute; bottom:30%; width:14px; height:26px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-camp-above-selybria .figure-a { left:35%; animation: cs-sit 4s ease-in-out infinite; }
.scn-camp-above-selybria .figure-b { left:55%; animation: cs-sit 4.5s ease-in-out infinite 0.5s; }
.scn-camp-above-selybria .figure-c { right:15%; bottom:28%; height:22px; animation: cs-pace 3s ease-in-out infinite; }
@keyframes cs-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes cs-tent { 0% { transform: perspective(60px) rotateX(5deg) translateY(0) } 50% { transform: perspective(60px) rotateX(4deg) translateY(-1px) } 100% { transform: perspective(60px) rotateX(5deg) translateY(0) } }
@keyframes cs-fire { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(.95); opacity:.7 } }
@keyframes cs-sit { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes cs-pace { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(-2deg) } 50% { transform: translateX(10px) rotate(0) } 75% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-prisoner-explains {
  background:
    linear-gradient(180deg, #1e1a14 0%, #2c241c 40%, #3c3026 80%, #4a3d30 100%),
    radial-gradient(ellipse at 50% 100%, #3c3026 0%, transparent 60%);
}
.scn-prisoner-explains .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #3a2e24 0%, #1e1a14 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-prisoner-explains .wall {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 25%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1610 80%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-prisoner-explains .window {
  position: absolute;
  top: 18%;
  left: 60%;
  width: 50px;
  height: 60px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(80,60,40,0.8);
  animation: pe-window 8s ease-in-out infinite alternate;
}
.scn-prisoner-explains .figure {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #2a221a 0%, #100e0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: pe-figure 5s ease-in-out infinite;
}
.scn-prisoner-explains .lamp {
  position: absolute;
  bottom: 35%;
  left: 25%;
  width: 10px;
  height: 16px;
  background: radial-gradient(circle, #c08040 0%, #4a3020 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.5);
  animation: pe-lamp 4s ease-in-out infinite alternate;
}
.scn-prisoner-explains .shadow {
  position: absolute;
  bottom: 28%;
  left: 32%;
  width: 50px;
  height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: pe-shadow 5s ease-in-out infinite;
}
@keyframes pe-window {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes pe-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes pe-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(192,128,64,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px rgba(192,128,64,0.7); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(192,128,64,0.5); opacity: 0.9; }
}
@keyframes pe-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-deputation-to-cleander {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a28 50%, #0e0e18 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a4e 0%, transparent 70%);
}
.scn-deputation-to-cleander .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a14 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-deputation-to-cleander .table {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.5);
}
.scn-deputation-to-cleander .cleander {
  position: absolute;
  bottom: 32%;
  left: 55%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dc-cleander 6s ease-in-out infinite;
}
.scn-deputation-to-cleander .deputy-a {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #101018 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dc-deputy 4s ease-in-out infinite alternate;
}
.scn-deputation-to-cleander .deputy-b {
  position: absolute;
  bottom: 25%;
  left: 32%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, #2a2a3e 0%, #10101a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dc-deputy 4s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-deputation-to-cleander .torch {
  position: absolute;
  bottom: 55%;
  left: 45%;
  width: 6px;
  height: 20px;
  background: linear-gradient(180deg, #c06030 0%, #4a2010 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  animation: dc-torch 2s ease-in-out infinite alternate;
}
.scn-deputation-to-cleander .torch-glow {
  position: absolute;
  bottom: 55%;
  left: 45%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, rgba(192,96,48,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dc-torch-glow 3s ease-in-out infinite alternate;
}
@keyframes dc-cleander {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes dc-deputy {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes dc-torch {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes dc-torch-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-xenophon-begs-for-men {
  background:
    linear-gradient(180deg, #1e1a1e 0%, #2a2428 50%, #1a1618 100%),
    radial-gradient(ellipse at 50% 100%, #3a2e32 0%, transparent 60%);
}
.scn-xenophon-begs-for-men .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a2424 0%, #141010 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-xenophon-begs-for-men .wall-left {
  position: absolute;
  top: 0;
  left: 0;
  width: 40%;
  bottom: 20%;
  background: linear-gradient(180deg, #2a2020 0%, #181010 100%);
  box-shadow: inset -20px 0 40px rgba(0,0,0,0.6);
}
.scn-xenophon-begs-for-men .cleander-seat {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 45px;
  height: 65px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 35% 35%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: xbm-cleander 8s ease-in-out infinite;
}
.scn-xenophon-begs-for-men .xenophon-kneel {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #2a2222 0%, #100a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: xbm-xenophon 4s ease-in-out infinite;
}
.scn-xenophon-begs-for-men .torch {
  position: absolute;
  bottom: 50%;
  left: 48%;
  width: 8px;
  height: 24px;
  background: linear-gradient(180deg, #d08040 0%, #4a2010 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  animation: xbm-torch 2s ease-in-out infinite alternate;
}
.scn-xenophon-begs-for-men .light-shape {
  position: absolute;
  bottom: 35%;
  left: 40%;
  width: 120px;
  height: 80px;
  background: radial-gradient(ellipse at 50% 0%, rgba(208,128,64,0.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: xbm-light 5s ease-in-out infinite alternate;
}
@keyframes xbm-cleander {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes xbm-xenophon {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes xbm-torch {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes xbm-light {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-cleander-releases-men {
  background:
    linear-gradient(180deg, #2c2418 0%, #3c2c20 40%, #4a3828 100%),
    radial-gradient(ellipse at 50% 30%, #6a5040 0%, transparent 70%);
}
.scn-cleander-releases-men .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #3a2c20 0%, #1e1810 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
}
.scn-cleander-releases-men .pillars {
  position: absolute;
  top: 0;
  left: 20%;
  right: 20%;
  bottom: 20%;
  background: repeating-linear-gradient(
    90deg,
    transparent 0px,
    transparent 30px,
    #4a3a2a 30px,
    #4a3a2a 34px,
    transparent 34px,
    transparent 70px,
    #4a3a2a 70px,
    #4a3a2a 74px,
    transparent 74px,
    transparent 110px,
    #4a3a2a 110px,
    #4a3a2a 114px,
    transparent 114px
  );
  opacity: 0.3;
  animation: crm-pillars 12s linear infinite;
}
.scn-cleander-releases-men .cleander {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 40px;
  height: 65px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: crm-cleander 5s ease-in-out infinite;
}
.scn-cleander-releases-men .freed-a {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: crm-freed 7s ease-in-out infinite;
}
.scn-cleander-releases-men .freed-b {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: crm-freed 7s ease-in-out infinite alternate;
  animation-delay: -3.5s;
}
.scn-cleander-releases-men .hearth {
  position: absolute;
  bottom: 18%;
  left: 70%;
  width: 40px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #d08040 0%, #4a2010 70%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(208,128,64,0.4);
  animation: crm-hearth 4s ease-in-out infinite alternate;
}
.scn-cleander-releases-men .warm-glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(208,128,64,0.15) 0%, transparent 60%);
  pointer-events: none;
  animation: crm-glow 6s ease-in-out infinite alternate;
}
@keyframes crm-pillars {
  0% { transform: translateX(0); }
  100% { transform: translateX(-20px); }
}
@keyframes crm-cleander {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes crm-freed {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes crm-hearth {
  0% { box-shadow: 0 0 20px 5px rgba(208,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 20px rgba(208,128,64,0.6); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(208,128,64,0.4); opacity: 0.9; }
}
@keyframes crm-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

.scn-clearchus-on-oaths { background: linear-gradient(180deg, #1a1520 0%, #2c1a28 40%, #1a0c10 100%), radial-gradient(ellipse at 50% 30%, #3a2a2e 0%, transparent 60%); }
.scn-clearchus-on-oaths .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e24 0%, #1a0c10 100%); }
.scn-clearchus-on-oaths .table { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a3028 0%, #2a1a14 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); }
.scn-clearchus-on-oaths .lamp { position:absolute; bottom:34%; left:45%; width:20px; height:30px; background: radial-gradient(circle at 50% 100%, #d09050 0%, #a06030 60%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 12px rgba(200,120,60,.5); animation: cl1-lamp 2s ease-in-out infinite alternate; }
.scn-clearchus-on-oaths .figure-left { position:absolute; bottom:24%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a18 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: cl1-figure-l 5s ease-in-out infinite; }
.scn-clearchus-on-oaths .figure-right { position:absolute; bottom:24%; right:30%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a18 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-8deg); animation: cl1-figure-r 5s ease-in-out infinite; }
.scn-clearchus-on-oaths .shadow-left { position:absolute; bottom:24%; left:28%; width:30px; height:50px; background: rgba(0,0,0,.4); filter: blur(8px); transform: rotate(5deg); animation: cl1-shadow-l 5s ease-in-out infinite; }
.scn-clearchus-on-oaths .shadow-right { position:absolute; bottom:24%; right:28%; width:30px; height:50px; background: rgba(0,0,0,.4); filter: blur(8px); transform: rotate(-8deg); animation: cl1-shadow-r 5s ease-in-out infinite; }
.scn-clearchus-on-oaths .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 45% 35%, rgba(200,120,60,.15) 0%, transparent 70%); animation: cl1-glow 4s ease-in-out infinite alternate; }
@keyframes cl1-lamp { 0% { box-shadow: 0 0 30px 8px rgba(200,120,60,.5); opacity:.9; } 50% { box-shadow: 0 0 50px 16px rgba(200,120,60,.7); opacity:1; } 100% { box-shadow: 0 0 40px 12px rgba(200,120,60,.5); opacity:.85; } }
@keyframes cl1-figure-l { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes cl1-figure-r { 0% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cl1-shadow-l { 0% { opacity:.3; transform: rotate(3deg) translateX(0); } 50% { opacity:.5; transform: rotate(7deg) translateX(2px); } 100% { opacity:.3; transform: rotate(1deg) translateX(0); } }
@keyframes cl1-shadow-r { 0% { opacity:.3; transform: rotate(-6deg) translateX(0); } 50% { opacity:.5; transform: rotate(-10deg) translateX(-2px); } 100% { opacity:.3; transform: rotate(-2deg) translateX(0); } }
@keyframes cl1-glow { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }

.scn-clearchus-importance-of-tissaphernes { background: linear-gradient(180deg, #1f1a2a 0%, #2a2030 50%, #100a18 100%), radial-gradient(ellipse at 50% 40%, #3a2a3e 0%, transparent 50%); }
.scn-clearchus-importance-of-tissaphernes .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2230 0%, #120a18 100%); }
.scn-clearchus-importance-of-tissaphernes .desk { position:absolute; bottom:18%; left:15%; right:15%; height:14%; background: linear-gradient(180deg, #4a3038 0%, #2a1820 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 -6px 16px rgba(0,0,0,.5); }
.scn-clearchus-importance-of-tissaphernes .scroll { position:absolute; bottom:22%; left:35%; width:50px; height:8px; background: linear-gradient(90deg, #b09060 0%, #d0b080 50%, #a08050 100%); border-radius: 20% 20% 20% 20% / 80% 80% 80% 80%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: cl2-scroll 7s ease-in-out infinite alternate; }
.scn-clearchus-importance-of-tissaphernes .lamp { position:absolute; bottom:34%; left:50%; width:18px; height:26px; background: radial-gradient(circle at 50% 100%, #e0a050 0%, #b07030 60%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 36px 10px rgba(220,140,60,.5); animation: cl2-lamp 2.5s ease-in-out infinite alternate; }
.scn-clearchus-importance-of-tissaphernes .figure-seated { position:absolute; bottom:22%; left:30%; width:30px; height:44px; background: linear-gradient(180deg, #2a1e24 0%, #0a0508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: cl2-seated 6s ease-in-out infinite; }
.scn-clearchus-importance-of-tissaphernes .figure-standing { position:absolute; bottom:22%; right:25%; width:22px; height:52px; background: linear-gradient(180deg, #2a1e24 0%, #0a0508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-4deg); animation: cl2-standing 5s ease-in-out infinite; }
.scn-clearchus-importance-of-tissaphernes .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 35%, rgba(220,140,60,.1) 0%, transparent 70%); animation: cl2-glow 3s ease-in-out infinite alternate; }
.scn-clearchus-importance-of-tissaphernes .dust { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-radial-gradient(circle at 30% 20%, rgba(255,200,150,.03) 2px, transparent 4px); background-size: 20px 20px; filter: blur(2px); animation: cl2-dust 15s linear infinite; }
@keyframes cl2-scroll { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.02); } 100% { transform: rotate(-8deg) scaleX(0.98); } }
@keyframes cl2-lamp { 0% { box-shadow: 0 0 30px 8px rgba(220,140,60,.5); opacity:.9; } 50% { box-shadow: 0 0 50px 16px rgba(220,140,60,.7); opacity:1; } 100% { box-shadow: 0 0 40px 12px rgba(220,140,60,.5); opacity:.85; } }
@keyframes cl2-seated { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cl2-standing { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes cl2-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes cl2-dust { 0% { transform: translate(0, 0); } 100% { transform: translate(20px, 20px); } }

.scn-clearchus-cyrus-tissaphernes-power { background: linear-gradient(180deg, #1a1525 0%, #2a2035 40%, #0a0510 100%), radial-gradient(ellipse at 50% 40%, #3a2a3a 0%, transparent 60%); }
.scn-clearchus-cyrus-tissaphernes-power .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2030 0%, #100a18 100%); }
.scn-clearchus-cyrus-tissaphernes-power .dais { position:absolute; bottom:15%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #4a3038 0%, #2a1820 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.6); }
.scn-clearchus-cyrus-tissaphernes-power .throne { position:absolute; bottom:22%; left:38%; width:50px; height:60px; background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: cl3-throne 8s ease-in-out infinite; }
.scn-clearchus-cyrus-tissaphernes-power .diadem { position:absolute; bottom:42%; left:48%; width:16px; height:8px; background: radial-gradient(circle, #d0a050 0%, #b08040 60%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(200,140,60,.7); animation: cl3-diadem 3s ease-in-out infinite alternate; }
.scn-clearchus-cyrus-tissaphernes-power .figure-kneeling { position:absolute; bottom:18%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #2a1a20 0%, #0a0508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.8); animation: cl3-kneel 6s ease-in-out infinite; }
.scn-clearchus-cyrus-tissaphernes-power .figure-standing { position:absolute; bottom:18%; right:28%; width:20px; height:48px; background: linear-gradient(180deg, #2a1a20 0%, #0a0508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: cl3-stand 5s ease-in-out infinite; }
.scn-clearchus-cyrus-tissaphernes-power .shadow-arch { position:absolute; top:0; left:20%; right:20%; height:50%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%); filter: blur(10px); animation: cl3-shadow 7s ease-in-out infinite alternate; }
@keyframes cl3-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cl3-diadem { 0% { box-shadow: 0 0 20px 4px rgba(200,140,60,.5); opacity:.8; } 50% { box-shadow: 0 0 40px 12px rgba(200,140,60,.9); opacity:1; } 100% { box-shadow: 0 0 30px 8px rgba(200,140,60,.6); opacity:.85; } }
@keyframes cl3-kneel { 0% { transform: scale(0.8) rotate(0deg); } 50% { transform: scale(0.82) rotate(2deg); } 100% { transform: scale(0.78) rotate(-1deg); } }
@keyframes cl3-stand { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes cl3-shadow { 0% { opacity:.2; } 50% { opacity:.4; } 100% { opacity:.3; } }

.scn-clearchus-offers-help-mysians-pisidians { background: linear-gradient(180deg, #1c1820 0%, #2a2030 50%, #0e080e 100%), radial-gradient(ellipse at 50% 30%, #3a2a3e 0%, transparent 60%); }
.scn-clearchus-offers-help-mysians-pisidians .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2028 0%, #100a10 100%); }
.scn-clearchus-offers-help-mysians-pisidians .war-table { position:absolute; bottom:16%; left:10%; right:10%; height:16%; background: linear-gradient(180deg, #4a3038 0%, #2a1820 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.5); }
.scn-clearchus-offers-help-mysians-pisidians .map { position:absolute; bottom:20%; left:30%; right:30%; height:10%; background: linear-gradient(135deg, #b09060 0%, #d0b080 50%, #a08050 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: cl4-map 12s ease-in-out infinite alternate; }
.scn-clearchus-offers-help-mysians-pisidians .figure-pointing { position:absolute; bottom:20%; left:28%; width:24px; height:50px; background: linear-gradient(180deg, #2a1e24 0%, #0a0508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: cl4-point 4s ease-in-out infinite; }
.scn-clearchus-offers-help-mysians-pisidians .figure-listening { position:absolute; bottom:20%; right:32%; width:24px; height:46px; background: linear-gradient(180deg, #2a1e24 0%, #0a0508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: cl4-listen 6s ease-in-out infinite; }
.scn-clearchus-offers-help-mysians-pisidians .lamp { position:absolute; bottom:36%; left:48%; width:18px; height:26px; background: radial-gradient(circle at 50% 100%, #d09050 0%, #a06030 60%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 36px 10px rgba(200,120,60,.5); animation: cl4-lamp 2s ease-in-out infinite alternate; }
.scn-clearchus-offers-help-mysians-pisidians .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 48% 35%, rgba(200,120,60,.1) 0%, transparent 70%); animation: cl4-glow 3.5s ease-in-out infinite alternate; }
.scn-clearchus-offers-help-mysians-pisidians .dagger { position:absolute; bottom:22%; left:42%; width:4px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(30deg); box-shadow: 0 0 4px rgba(0,0,0,.3); animation: cl4-dagger 5s ease-in-out infinite; }
@keyframes cl4-map { 0% { transform: rotate(2deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.03); } 100% { transform: rotate(4deg) scaleX(0.97); } }
@keyframes cl4-point { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(6deg) translateY(0); } }
@keyframes cl4-listen { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cl4-lamp { 0% { box-shadow: 0 0 30px 8px rgba(200,120,60,.5); opacity:.9; } 50% { box-shadow: 0 0 50px 16px rgba(200,120,60,.7); opacity:1; } 100% { box-shadow: 0 0 40px 12px rgba(200,120,60,.5); opacity:.85; } }
@keyframes cl4-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes cl4-dagger { 0% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(35deg) translateX(2px); } 100% { transform: rotate(28deg) translateX(0); } }

.scn-pharnabazus-cavalry-attack { background: linear-gradient(180deg, #4a525a 0%, #3a4048 40%, #2a2e36 70%, #1e2228 100%), radial-gradient(ellipse at 30% 40%, #5a626a 0%, transparent 60%); }
.scn-pharnabazus-cavalry-attack .sky-overcast { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #6a727a 0%, #4a525a 50%, #3a4048 100%); animation: phn-sky 14s ease-in-out infinite alternate; }
.scn-pharnabazus-cavalry-attack .ground-mud { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a3228 0%, #2a221a 40%, #1e1812 100%); border-radius: 30% 20% 0 0 / 60% 40% 0 0; animation: phn-ground 8s ease-in-out infinite alternate; }
.scn-pharnabazus-cavalry-attack .cavalry-horse { position:absolute; bottom:28%; left:25%; width:80px; height:45px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1e12 60%, #1a120a 100%); border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%; transform:rotate(-5deg); animation: phn-horse 1.2s ease-in-out infinite; }
.scn-pharnabazus-cavalry-attack .cavalry-rider { position:absolute; bottom:42%; left:28%; width:22px; height:28px; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(10deg); animation: phn-rider 1.2s ease-in-out infinite; }
.scn-pharnabazus-cavalry-attack .spear { position:absolute; bottom:48%; left:32%; width:40px; height:3px; background: linear-gradient(90deg, #6a5240 0%, #8a7060 50%, #a08870 100%); border-radius: 2px; transform-origin: left center; transform:rotate(55deg); animation: phn-spear 1.6s ease-in-out infinite; }
.scn-pharnabazus-cavalry-attack .dust-cloud { position:absolute; border-radius: 50%; background: linear-gradient(180deg, rgba(120,110,100,0.4) 0%, rgba(80,70,60,0.1) 100%); filter: blur(8px); }
.scn-pharnabazus-cavalry-attack .d1 { bottom:22%; left:15%; width:70px; height:30px; animation: phn-dust-a 4s ease-in-out infinite; }
.scn-pharnabazus-cavalry-attack .d2 { bottom:18%; left:45%; width:90px; height:40px; animation: phn-dust-b 5s ease-in-out infinite 1.5s; }
.scn-pharnabazus-cavalry-attack .d3 { bottom:20%; right:10%; width:60px; height:25px; animation: phn-dust-a 3.5s ease-in-out infinite 0.8s; }
@keyframes phn-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes phn-ground { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(2px) scaleY(0.98) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes phn-horse { 0% { transform:rotate(-3deg) translateX(0) } 25% { transform:rotate(-7deg) translateX(2px) } 50% { transform:rotate(-3deg) translateX(4px) } 75% { transform:rotate(-7deg) translateX(2px) } 100% { transform:rotate(-3deg) translateX(0) } }
@keyframes phn-rider { 0% { transform:rotate(8deg) translateY(0) } 25% { transform:rotate(12deg) translateY(-1px) } 50% { transform:rotate(8deg) translateY(0) } 75% { transform:rotate(12deg) translateY(-1px) } 100% { transform:rotate(8deg) translateY(0) } }
@keyframes phn-spear { 0% { transform:rotate(50deg) scaleX(1) } 50% { transform:rotate(60deg) scaleX(0.95) } 100% { transform:rotate(50deg) scaleX(1) } }
@keyframes phn-dust-a { 0% { transform:translateX(0) scale(0.8); opacity:0.3 } 50% { transform:translateX(20px) scale(1.2); opacity:0.5 } 100% { transform:translateX(40px) scale(0.8); opacity:0.2 } }
@keyframes phn-dust-b { 0% { transform:translateX(0) scale(0.9); opacity:0.4 } 50% { transform:translateX(-15px) scale(1.1); opacity:0.6 } 100% { transform:translateX(-30px) scale(0.9); opacity:0.3 } }

.scn-xenophon-rescues-survivors { background: linear-gradient(180deg, #5a626a 0%, #4a5058 35%, #3a3e46 70%, #2a2e34 100%), radial-gradient(ellipse at 70% 30%, #6a7278 0%, transparent 60%); }
.scn-xenophon-rescues-survivors .bg-mist { position:absolute; inset:0; background: linear-gradient(90deg, rgba(200,200,210,0.05) 0%, rgba(180,180,190,0.15) 30%, rgba(200,200,210,0.05) 60%, rgba(170,170,180,0.1) 100%); animation: xrs-mist 20s ease-in-out infinite alternate; }
.scn-xenophon-rescues-survivors .ground-rugged { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a3e34 0%, #2a2e24 30%, #1e221a 100%); border-radius: 20% 40% 0 0 / 30% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-xenophon-rescues-survivors .figure-xenophon { position:absolute; bottom:24%; left:30%; width:24px; height:40px; background: linear-gradient(180deg, #2a2e34 0%, #1a1e22 50%, #0e1216 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: xrs-walk 2.8s ease-in-out infinite; }
.scn-xenophon-rescues-survivors .wagon-bullock { position:absolute; bottom:22%; left:20%; width:60px; height:35px; background: linear-gradient(135deg, #4a4034 0%, #2e2620 50%, #1a1410 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform:rotate(3deg); animation: xrs-bullock 3s ease-in-out infinite; }
.scn-xenophon-rescues-survivors .survivor-arm { position:absolute; bottom:26%; left:44%; width:16px; height:22px; background: linear-gradient(180deg, #3a3e3a 0%, #2a2e2a 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; transform-origin: bottom center; transform:rotate(30deg); animation: xrs-arm 4s ease-in-out infinite; }
.scn-xenophon-rescues-survivors .smoke-wisp { position:absolute; width:40px; height:20px; background: radial-gradient(ellipse, rgba(180,180,190,0.3) 0%, rgba(200,200,210,0.1) 50%, transparent 100%); border-radius: 50%; filter: blur(4px); }
.scn-xenophon-rescues-survivors .s1 { bottom:35%; left:55%; animation: xrs-smoke 12s ease-in-out infinite; }
.scn-xenophon-rescues-survivors .s2 { bottom:38%; left:60%; width:30px; height:15px; animation: xrs-smoke 14s ease-in-out infinite 4s; }
@keyframes xrs-mist { 0% { opacity:0.3; transform:translateX(0) } 50% { opacity:0.6; transform:translateX(10px) } 100% { opacity:0.3; transform:translateX(-10px) } }
@keyframes xrs-walk { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 30% { transform:translateX(8px) translateY(-2px) rotate(1deg) } 60% { transform:translateX(16px) translateY(0) rotate(-2deg) } 100% { transform:translateX(24px) translateY(0) rotate(0deg) } }
@keyframes xrs-bullock { 0% { transform:rotate(2deg) translateX(0) } 25% { transform:rotate(4deg) translateX(2px) } 50% { transform:rotate(2deg) translateX(4px) } 75% { transform:rotate(4deg) translateX(2px) } 100% { transform:rotate(2deg) translateX(0) } }
@keyframes xrs-arm { 0% { transform:rotate(25deg) translateY(0) } 50% { transform:rotate(35deg) translateY(-3px) } 100% { transform:rotate(25deg) translateY(0) } }
@keyframes xrs-smoke { 0% { transform:translateY(0) scale(0.8); opacity:0.1 } 50% { transform:translateY(-30px) scale(1.2); opacity:0.4 } 100% { transform:translateY(-60px) scale(0.6); opacity:0 } }

.scn-night-attack-on-camp { background: linear-gradient(180deg, #0a0a14 0%, #12121e 30%, #1a1a2a 60%, #22223a 100%), radial-gradient(ellipse at 40% 50%, #1a1a2e 0%, transparent 70%); }
.scn-night-attack-on-camp .bg-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0e0e1c 0%, #161626 50%, #1e1e32 100%); animation: nac-sky 18s ease-in-out infinite alternate; }
.scn-night-attack-on-camp .bush-dark { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a12 0%, #0e0e0a 50%, #060604 100%); border-radius: 60% 40% 0 0 / 50% 30% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,0.6); }
.scn-night-attack-on-camp .tent-collapsed { position:absolute; bottom:26%; left:35%; width:70px; height:35px; background: linear-gradient(135deg, #2a2a22 0%, #1e1e18 50%, #12120e 100%); border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%; transform:rotate(12deg); animation: nac-tent 6s ease-in-out infinite; }
.scn-night-attack-on-camp .figure-guard { position:absolute; bottom:24%; left:55%; width:20px; height:36px; background: linear-gradient(180deg, #1e1e28 0%, #0e0e16 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: nac-guard 3s ease-in-out infinite; }
.scn-night-attack-on-camp .fire-embers { position:absolute; bottom:28%; left:48%; width:14px; height:14px; background: radial-gradient(circle, #ff6a30 0%, #c84020 50%, #802010 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,64,32,0.5), 0 0 40px 12px rgba(200,64,32,0.2); animation: nac-fire 0.8s ease-in-out infinite alternate; }
.scn-night-attack-on-camp .spark-particle { position:absolute; width:3px; height:3px; background: #ff8030; border-radius: 50%; box-shadow: 0 0 4px 1px rgba(255,128,48,0.6); }
.scn-night-attack-on-camp .sp1 { bottom:32%; left:47%; animation: nac-spark 2s ease-out infinite; }
.scn-night-attack-on-camp .sp2 { bottom:30%; left:50%; animation: nac-spark 2.4s ease-out infinite 0.6s; }
.scn-night-attack-on-camp .sp3 { bottom:31%; left:46%; animation: nac-spark 1.8s ease-out infinite 1.2s; }
@keyframes nac-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes nac-tent { 0% { transform:rotate(10deg) translateX(0) } 50% { transform:rotate(14deg) translateX(-2px) } 100% { transform:rotate(10deg) translateX(0) } }
@keyframes nac-guard { 0% { transform:translateY(0) rotate(-1deg) } 30% { transform:translateY(-2px) rotate(2deg) } 60% { transform:translateY(0) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes nac-fire { 0% { transform:scale(0.8); opacity:0.7 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.9); opacity:0.8 } }
@keyframes nac-spark { 0% { transform:translate(0,0) scale(1); opacity:1 } 50% { transform:translate(8px,-18px) scale(0.6); opacity:0.6 } 100% { transform:translate(16px,-36px) scale(0.2); opacity:0 } }

.scn-fortifying-the-stronghold { background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 30%, #8a9aaa 50%, #6a7a8a 80%, #4a5a6a 100%), radial-gradient(ellipse at 60% 20%, #8a9ab4 0%, transparent 60%); }
.scn-fortifying-the-stronghold .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a8a6a 0%, #9a9a7a 20%, #aa9a7a 40%, #8a8a6a 60%, #6a7a7a 100%); animation: fts-dawn 16s ease-in-out infinite alternate; }
.scn-fortifying-the-stronghold .cliff-rock { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 30%, #3a3a2a 60%, #2a2a1e 100%); border-radius: 10% 30% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 30px rgba(0,0,0,0.4); }
.scn-fortifying-the-stronghold .ditch-trench { position:absolute; bottom:32%; left:8%; right:8%; height:18px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1e 40%, #1e1e14 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6); animation: fts-trench 20s ease-in-out infinite; }
.scn-fortifying-the-stronghold .palisade-post { position:absolute; bottom:36%; width:6px; height:28px; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 30%, #6a5a3a 70%, #4a3a22 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-fortifying-the-stronghold .palisade-post:nth-child(4) { left:20%; } .scn-fortifying-the-stronghold .palisade-post:nth-child(5) { left:30%; animation-delay:0.5s; } .scn-fortifying-the-stronghold .palisade-post:nth-child(6) { left:40%; animation-delay:1s; } .scn-fortifying-the-stronghold .palisade-post:nth-child(7) { left:50%; animation-delay:1.5s; } .scn-fortifying-the-stronghold .palisade-post:nth-child(8) { left:60%; animation-delay:2s; } .scn-fortifying-the-stronghold .palisade-post:nth-child(9) { left:70%; animation-delay:2.5s; }
.scn-fortifying-the-stronghold .figure-worker { position:absolute; bottom:25%; left:45%; width:18px; height:32px; background: linear-gradient(180deg, #3a3e36 0%, #2a2e26 50%, #1e221a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fts-worker 2.4s ease-in-out infinite; }
.scn-fortifying-the-stronghold .figure-overseer { position:absolute; bottom:24%; left:30%; width:20px; height:34px; background: linear-gradient(180deg, #4a4a3e 0%, #3a3a2e 50%, #2a2a1e 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: fts-overseer 4s ease-in-out infinite; }
.scn-fortifying-the-stronghold .morning-mist { position:absolute; width:80px; height:20px; background: linear-gradient(90deg, rgba(200,200,210,0.2) 0%, rgba(220,220,230,0.1) 50%, rgba(200,200,210,0.05) 100%); border-radius: 50%; filter: blur(6px); }
.scn-fortifying-the-stronghold .mm1 { bottom:50%; left:10%; animation: fts-mist-a 30s linear infinite; }
.scn-fortifying-the-stronghold .mm2 { bottom:55%; right:15%; width:60px; height:15px; animation: fts-mist-b 35s linear infinite 10s; }
@keyframes fts-dawn { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes fts-trench { 0% { transform:scaleY(1) } 50% { transform:scaleY(0.95) } 100% { transform:scaleY(1) } }
@keyframes fts-worker { 0% { transform:translateY(0) rotate(-2deg) } 30% { transform:translateY(-2px) rotate(1deg) } 60% { transform:translateY(0) rotate(-2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes fts-overseer { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(8px) rotate(2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes fts-mist-a { 0% { transform:translateX(-40px) scaleX(1) } 50% { transform:translateX(20px) scaleX(1.2) } 100% { transform:translateX(80vw) scaleX(0.8) } }
@keyframes fts-mist-b { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(-15px) scaleX(1.1) } 100% { transform:translateX(-100vw) scaleX(0.9) } }

/* hecatonymus-sacred-advice */
.scn-hecatonymus-sacred-advice { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1a1210 100%), radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 60%); }
.scn-hecatonymus-sacred-advice .hsa-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a201a 0%, #1a1210 100%); }
.scn-hecatonymus-sacred-advice .hsa-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a201a 0%, #1a1210 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-hecatonymus-sacred-advice .hsa-table { position:absolute; bottom:20%; left:30%; width:45%; height:18%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); transform: perspective(600px) rotateX(10deg); }
.scn-hecatonymus-sacred-advice .hsa-figure { position:absolute; bottom:20%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsa-stand 6s ease-in-out infinite alternate; }
.scn-hecatonymus-sacred-advice .hsa-hand { position:absolute; bottom:38%; left:52%; width:20px; height:16px; background: radial-gradient(ellipse at 30% 30%, #2a1a10 0%, #1a1210 100%); border-radius: 50% 50% 30% 30%; transform: rotate(-20deg); animation: hsa-hand 4s ease-in-out infinite alternate; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-hecatonymus-sacred-advice .hsa-lamp { position:absolute; bottom:28%; left:36%; width:12px; height:18px; background: radial-gradient(circle at 50% 30%, #c08050 0%, #8a5a30 60%, #4a2a10 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(192,128,80,.5), 0 0 40px 12px rgba(192,128,80,.2); animation: hsa-flicker 2s ease-in-out infinite alternate; }
.scn-hecatonymus-sacred-advice .hsa-shadow.gesture { position:absolute; bottom:16%; left:38%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: hsa-shad 8s ease-in-out infinite; }
.scn-hecatonymus-sacred-advice .hsa-shadow.still { position:absolute; bottom:14%; left:52%; width:50px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(2px); }
@keyframes hsa-stand { 0% { transform: scaleY(1) rotate(-1deg); } 30% { transform: scaleY(1.02) rotate(1deg); } 60% { transform: scaleY(0.98) rotate(-2deg); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes hsa-hand { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } 100% { transform: rotate(-25deg) translateX(-2px); } }
@keyframes hsa-flicker { 0% { opacity: .8; box-shadow: 0 0 16px 4px rgba(192,128,80,.4); } 50% { opacity: 1; box-shadow: 0 0 28px 8px rgba(192,128,80,.6); } 100% { opacity: .85; box-shadow: 0 0 20px 5px rgba(192,128,80,.45); } }
@keyframes hsa-shad { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.3) translateX(10px); } }

/* hecatonymus-describes-paphlagonia */
.scn-hecatonymus-describes-paphlagonia { background: linear-gradient(180deg, #1c1412 0%, #2a1e1a 50%, #1a1210 100%), radial-gradient(ellipse at 30% 70%, #3a2a20 0%, transparent 50%); }
.scn-hecatonymus-describes-paphlagonia .hdp-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1c1412 0%, #2a1e1a 100%); }
.scn-hecatonymus-describes-paphlagonia .hdp-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: #1a1210; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-hecatonymus-describes-paphlagonia .hdp-scroll { position:absolute; bottom:25%; left:25%; width:55%; height:15%; background: linear-gradient(180deg, #c8b090 0%, #a08060 50%, #8a6a4a 100%); border-radius: 2px; transform: perspective(800px) rotateX(30deg); box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: hdp-scroll 12s ease-in-out infinite alternate; }
.scn-hecatonymus-describes-paphlagonia .hdp-hand { position:absolute; bottom:30%; left:30%; width:22px; height:18px; background: radial-gradient(ellipse at 30% 20%, #2a1a10 0%, #1a1210 100%); border-radius: 50% 50% 30% 30%; transform: rotate(15deg); animation: hdp-hand 5s ease-in-out infinite; }
.scn-hecatonymus-describes-paphlagonia .hdp-candle { position:absolute; bottom:28%; left:78%; width:8px; height:24px; background: linear-gradient(180deg, #d0b080 0%, #a08060 50%, #4a2a10 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 4px rgba(208,176,128,.5), 0 0 40px 8px rgba(208,176,128,.2); animation: hdp-candle 3s ease-in-out infinite alternate; }
.scn-hecatonymus-describes-paphlagonia .hdp-finger { position:absolute; bottom:34%; left:45%; width:16px; height:8px; background: radial-gradient(ellipse at 60% 50%, #2a1a10 0%, #1a1210 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-10deg); animation: hdp-point 4s ease-in-out infinite alternate; }
.scn-hecatonymus-describes-paphlagonia .hdp-glow { position:absolute; bottom:20%; left:70%; width:60px; height:60px; background: radial-gradient(circle, rgba(208,176,128,.15) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: hdp-glow 6s ease-in-out infinite alternate; }
@keyframes hdp-scroll { 0% { transform: perspective(800px) rotateX(30deg) translateY(0); } 30% { transform: perspective(800px) rotateX(28deg) translateY(2px); } 100% { transform: perspective(800px) rotateX(32deg) translateY(-1px); } }
@keyframes hdp-hand { 0%,100% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(5px); } }
@keyframes hdp-candle { 0% { opacity: .8; box-shadow: 0 0 16px 3px rgba(208,176,128,.4); } 50% { opacity: 1; box-shadow: 0 0 30px 6px rgba(208,176,128,.6); } 100% { opacity: .85; box-shadow: 0 0 20px 4px rgba(208,176,128,.45); } }
@keyframes hdp-point { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(6px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes hdp-glow { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; } }

/* hecatonymus-warns-of-pass */
.scn-hecatonymus-warns-of-pass { background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 60%, #1a1210 100%), radial-gradient(ellipse at 70% 50%, #3a2a20 0%, transparent 50%); }
.scn-hecatonymus-warns-of-pass .hwp-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 100%); }
.scn-hecatonymus-warns-of-pass .hwp-pass { position:absolute; bottom:20%; left:20%; width:65%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); clip-path: polygon(0% 100%, 30% 0%, 70% 0%, 100% 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: inset 0 8px 12px rgba(0,0,0,.6); animation: hwp-pass 20s ease-in-out infinite alternate; }
.scn-hecatonymus-warns-of-pass .hwp-figure { position:absolute; bottom:22%; left:40%; width:28px; height:68px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hwp-fig 7s ease-in-out infinite; }
.scn-hecatonymus-warns-of-pass .hwp-arm { position:absolute; bottom:40%; left:48%; width:30px; height:14px; background: radial-gradient(ellipse at 20% 50%, #2a1a10 0%, #1a1210 100%); border-radius: 40% 40% 20% 20%; transform: rotate(40deg); transform-origin: left center; animation: hwp-arm 5s ease-in-out infinite alternate; }
.scn-hecatonymus-warns-of-pass .hwp-finger { position:absolute; bottom:44%; left:72%; width:14px; height:6px; background: radial-gradient(ellipse at 30% 50%, #2a1a10 0%, #1a1210 100%); border-radius: 40% 40% 20% 20%; transform: rotate(15deg); animation: hwp-point 4s ease-in-out infinite alternate; }
.scn-hecatonymus-warns-of-pass .hwp-lantern { position:absolute; bottom:36%; left:28%; width:10px; height:16px; background: radial-gradient(circle at 50% 30%, #b08040 0%, #8a5a30 60%, #3a1a10 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 16px 4px rgba(176,128,64,.4), 0 0 32px 8px rgba(176,128,64,.2); animation: hwp-lantern 2s ease-in-out infinite alternate; }
.scn-hecatonymus-warns-of-pass .hwp-shadows { position:absolute; bottom:10%; left:30%; width:70px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: hwp-shadow 12s ease-in-out infinite; }
@keyframes hwp-pass { 0% { transform: scaleX(1) translateX(0); } 30% { transform: scaleX(1.05) translateX(-5px); } 100% { transform: scaleX(0.95) translateX(5px); } }
@keyframes hwp-fig { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(1deg); } }
@keyframes hwp-arm { 0% { transform: rotate(40deg) scaleX(1); } 50% { transform: rotate(50deg) scaleX(1.1); } 100% { transform: rotate(35deg) scaleX(1); } }
@keyframes hwp-point { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(25deg) translateX(6px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes hwp-lantern { 0% { box-shadow: 0 0 12px 3px rgba(176,128,64,.3); opacity: .8; } 50% { box-shadow: 0 0 24px 6px rgba(176,128,64,.5); opacity: 1; } 100% { box-shadow: 0 0 16px 4px rgba(176,128,64,.35); opacity: .85; } }
@keyframes hwp-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.4) translateX(15px); } 100% { transform: scaleX(1) translateX(0); } }

/* hecatonymus-warns-of-rivers */
.scn-hecatonymus-warns-of-rivers { background: linear-gradient(180deg, #1c1412 0%, #2a1e1a 40%, #1a1210 100%), radial-gradient(ellipse at 50% 70%, #3a2a20 0%, transparent 60%); }
.scn-hecatonymus-warns-of-rivers .hwr-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1c1412 0%, #2a1e1a 100%); }
.scn-hecatonymus-warns-of-rivers .hwr-table { position:absolute; bottom:18%; left:20%; width:65%; height:20%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 6px 6px 0 0; transform: perspective(700px) rotateX(15deg); box-shadow: 0 -6px 14px rgba(0,0,0,.5); }
.scn-hecatonymus-warns-of-rivers .hwr-map { position:absolute; bottom:22%; left:30%; width:45%; height:16%; background: linear-gradient(180deg, #b8a080 0%, #9a8060 50%, #7a6040 100%); border-radius: 2px; transform: perspective(700px) rotateX(20deg); box-shadow: inset 0 0 8px rgba(0,0,0,.4); animation: hwr-map 20s ease-in-out infinite alternate; }
.scn-hecatonymus-warns-of-rivers .hwr-hand-left { position:absolute; bottom:28%; left:32%; width:22px; height:18px; background: radial-gradient(ellipse at 30% 20%, #2a1a10 0%, #1a1210 100%); border-radius: 50% 50% 30% 30%; transform: rotate(-15deg); animation: hwr-hand-l 5s ease-in-out infinite; }
.scn-hecatonymus-warns-of-rivers .hwr-hand-right { position:absolute; bottom:30%; right:30%; width:22px; height:18px; background: radial-gradient(ellipse at 70% 20%, #2a1a10 0%, #1a1210 100%); border-radius: 50% 50% 30% 30%; transform: rotate(20deg); animation: hwr-hand-r 5s ease-in-out infinite; }
.scn-hecatonymus-warns-of-rivers .hwr-cup { position:absolute; bottom:24%; left:58%; width:14px; height:18px; background: linear-gradient(180deg, #5a3a20 0%, #3a1a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-hecatonymus-warns-of-rivers .hwr-glow { position:absolute; bottom:20%; left:18%; width:80px; height:80px; background: radial-gradient(circle, rgba(176,136,64,.1) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: hwr-glow 8s ease-in-out infinite alternate; }
@keyframes hwr-map { 0% { transform: perspective(700px) rotateX(20deg) translateX(0); } 30% { transform: perspective(700px) rotateX(18deg) translateX(4px); } 100% { transform: perspective(700px) rotateX(22deg) translateX(-4px); } }
@keyframes hwr-hand-l { 0% { transform: rotate(-15deg) translateX(0); } 25% { transform: rotate(-10deg) translateX(-3px); } 50% { transform: rotate(-20deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes hwr-hand-r { 0% { transform: rotate(20deg) translateX(0); } 25% { transform: rotate(15deg) translateX(4px); } 50% { transform: rotate(25deg) translateX(-2px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes hwr-glow { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .3; } }

/* cyrus-friends-die-with-him */
.scn-cyrus-friends-die-with-him {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 40%, #050510 100%),
    radial-gradient(ellipse at 30% 80%, #1a1a2e 0%, transparent 60%);
}
.scn-cyrus-friends-die-with-him .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #15151f 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px 10px #08080c;
  animation: cfr-wall 12s ease-in-out infinite alternate;
}
.scn-cyrus-friends-die-with-him .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a26 0%, #0a0a14 100%);
}
.scn-cyrus-friends-die-with-him .bed {
  position: absolute; bottom: 16%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 15px #000;
  animation: cfr-bed 6s ease-in-out infinite alternate;
}
.scn-cyrus-friends-die-with-him .candle {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #ffd080 0%, #8a4a1a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 30px 10px #ffb060, 0 0 60px 20px rgba(255,176,96,0.3);
  animation: cfr-flame 1.5s ease-in-out infinite alternate;
}
.scn-cyrus-friends-die-with-him .friend-left {
  position: absolute; bottom: 14%; left: 18%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfr-bow 8s ease-in-out infinite;
}
.scn-cyrus-friends-die-with-him .friend-right {
  position: absolute; bottom: 14%; right: 20%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfr-bow 8s ease-in-out infinite reverse;
}
.scn-cyrus-friends-die-with-him .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%);
  animation: cfr-shadow 12s ease-in-out infinite alternate;
}
@keyframes cfr-wall { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes cfr-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cfr-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.15) scaleX(0.85); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.8; } }
@keyframes cfr-bow { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cfr-shadow { 0%,100% { opacity: 0.6; } 50% { opacity: 0.9; } }

/* cyrus-head-cut-off */
.scn-cyrus-head-cut-off {
  background:
    linear-gradient(180deg, #f2e6c0 0%, #d4b886 30%, #b8965e 60%, #8a6a3a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 50%);
}
.scn-cyrus-head-cut-off .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #d4a865 100%);
  animation: chc-sky 20s ease-in-out infinite alternate;
}
.scn-cyrus-head-cut-off .sun {
  position: absolute; top: 12%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff4c8 0%, #ffd580 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ffc060;
  animation: chc-sun 30s ease-in-out infinite alternate;
}
.scn-cyrus-head-cut-off .horizon {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40%;
}
.scn-cyrus-head-cut-off .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-cyrus-head-cut-off .figure {
  position: absolute; bottom: 12%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1010 0%, #050505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: chc-figure 10s ease-in-out infinite alternate;
}
.scn-cyrus-head-cut-off .sword {
  position: absolute; bottom: 16%; left: 48%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #4a3a2a 100%);
  border-radius: 1px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  box-shadow: 0 0 8px 2px rgba(160,128,96,0.5);
  animation: chc-sword 8s ease-in-out infinite alternate;
}
.scn-cyrus-head-cut-off .cloud-a {
  position: absolute; top: 8%; left: 10%; width: 70px; height: 15px;
  background: rgba(255,220,180,0.4);
  border-radius: 50%;
  filter: blur(5px);
  animation: chc-cloud 30s linear infinite;
}
.scn-cyrus-head-cut-off .cloud-b {
  position: absolute; top: 18%; right: 15%; width: 50px; height: 12px;
  background: rgba(255,220,180,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: chc-cloud 40s linear infinite reverse;
}
@keyframes chc-sky { 0%,100% { opacity: 0.85; } 50% { opacity: 1; } }
@keyframes chc-sun { 0% { transform: scale(0.95) translateX(0); } 50% { transform: scale(1.05) translateX(5px); } 100% { transform: scale(0.95) translateX(0); } }
@keyframes chc-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(2px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes chc-sword { 0% { transform: rotate(-35deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-30deg); } }
@keyframes chc-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* milesian-woman-escapes */
.scn-milesian-woman-escapes {
  background:
    linear-gradient(180deg, #ffe8b0 0%, #f0c070 40%, #c8a050 100%),
    radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%);
}
.scn-milesian-woman-escapes .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #e0b060 100%);
  animation: mwe-sky 8s ease-in-out infinite alternate;
}
.scn-milesian-woman-escapes .sun {
  position: absolute; top: 10%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff4d0 0%, #ffd080 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffc060;
  animation: mwe-sun 12s ease-in-out infinite alternate;
}
.scn-milesian-woman-escapes .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-milesian-woman-escapes .woman {
  position: absolute; bottom: 22%; left: 25%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mwe-run 1.8s ease-in-out infinite;
}
.scn-milesian-woman-escapes .pursuer-a {
  position: absolute; bottom: 20%; right: 30%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mwe-run 2s ease-in-out infinite 0.2s;
}
.scn-milesian-woman-escapes .pursuer-b {
  position: absolute; bottom: 18%; right: 20%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mwe-run 2s ease-in-out infinite 0.5s;
}
.scn-milesian-woman-escapes .garment {
  position: absolute; bottom: 30%; left: 22%; width: 10px; height: 8px;
  background: linear-gradient(180deg, #a07030 0%, #603820 100%);
  border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%;
  transform-origin: center center;
  animation: mwe-garment 1.5s ease-in-out infinite alternate;
}
.scn-milesian-woman-escapes .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: mwe-shadow 4s ease-in-out infinite alternate;
}
@keyframes mwe-sky { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes mwe-sun { 0% { transform: scale(0.95) translateX(0); } 50% { transform: scale(1.05) translateX(-3px); } 100% { transform: scale(0.95) translateX(0); } }
@keyframes mwe-run { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(1deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(0deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes mwe-garment { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(-1px); } }
@keyframes mwe-shadow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.7; } }

/* both-sides-uncertain */
.scn-both-sides-uncertain {
  background:
    linear-gradient(180deg, #f0d8a0 0%, #c8a060 30%, #8a6a3a 100%),
    radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 40%);
}
.scn-both-sides-uncertain .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 100%);
  animation: bsu-sky 15s ease-in-out infinite alternate;
}
.scn-both-sides-uncertain .sun {
  position: absolute; top: 15%; left: 50%; width: 25px; height: 25px;
  background: radial-gradient(circle, #fff4d0 0%, #ffd080 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px #ffc060;
  animation: bsu-sun 10s ease-in-out infinite alternate;
}
.scn-both-sides-uncertain .terrain {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
}
.scn-both-sides-uncertain .army-left {
  position: absolute; bottom: 10%; left: 5%; width: 25%; height: 12%;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: bsu-army-left 6s ease-in-out infinite alternate;
}
.scn-both-sides-uncertain .army-right {
  position: absolute; bottom: 10%; right: 5%; width: 25%; height: 12%;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: bsu-army-right 6s ease-in-out infinite alternate 0.5s;
}
.scn-both-sides-uncertain .dust {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(160,120,80,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: bsu-dust 8s ease-in-out infinite alternate;
}
.scn-both-sides-uncertain .spear {
  position: absolute; bottom: 16%; left: 48%; width: 2px; height: 14px;
  background: linear-gradient(180deg, #a08060 0%, #4a3a2a 100%);
  border-radius: 1px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px 1px rgba(160,128,96,0.5);
  animation: bsu-spear 3s ease-in-out infinite alternate;
}
@keyframes bsu-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes bsu-sun { 0% { transform: scale(0.95); } 50% { transform: scale(1.08); } 100% { transform: scale(0.95); } }
@keyframes bsu-army-left { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes bsu-army-right { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(2px); } }
@keyframes bsu-dust { 0% { transform: scaleX(1) translateY(0); opacity: 0.4; } 50% { transform: scaleX(1.2) translateY(-3px); opacity: 0.7; } 100% { transform: scaleX(0.9) translateY(0); opacity: 0.4; } }
@keyframes bsu-spear { 0% { transform: rotate(-18deg); } 50% { transform: rotate(-12deg); } 100% { transform: rotate(-15deg); } }

/* raid-party – night, tense, campfire glow */
.scn-raid-party {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #2a1a1a 70%, #1a0e0e 100%),
    radial-gradient(ellipse at 50% 90%, #2a1a1a 0%, transparent 60%);
}
.scn-raid-party .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #151528 0%, #0a0a14 100%);
  animation: rp-sky 15s ease-in-out infinite alternate;
}
.scn-raid-party .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #1a1a0e 0%, #0e0e08 100%);
  border-radius: 0 0 40% 60% / 0 0 20% 30%;
}
.scn-raid-party .tent {
  position:absolute; bottom:40%; left:50%; width:120px; height:80px;
  transform:translateX(-50%) scaleX(1.2);
  background:
    linear-gradient(135deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: rp-tent 8s ease-in-out infinite alternate;
}
.scn-raid-party .campfire {
  position:absolute; bottom:38%; left:50%; width:30px; height:40px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #ff6000 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255,160,64,.6), 0 0 80px 40px rgba(255,96,0,.3);
  animation: rp-fire 0.8s ease-in-out infinite alternate;
}
.scn-raid-party .guard-a {
  position:absolute; bottom:36%; left:38%; width:16px; height:40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rp-walk 6s ease-in-out infinite;
}
.scn-raid-party .guard-b {
  position:absolute; bottom:35%; left:55%; width:16px; height:38px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rp-walk 6s ease-in-out 3s infinite, rp-look 4s ease-in-out infinite;
}
.scn-raid-party .spoil {
  position:absolute; bottom:42%; left:45%; width:20px; height:15px;
  background: #5a4a3a;
  border-radius: 10% 10% 50% 50%;
  box-shadow: 10px -5px 0 #4a3a2a, -8px 2px 0 #6a5a4a;
  animation: rp-spoil 12s ease-in-out infinite;
}
@keyframes rp-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes rp-tent { 0% { transform:translateX(-50%) scaleX(1.2) rotate(0deg) } 50% { transform:translateX(-50%) scaleX(1.15) rotate(1deg) } 100% { transform:translateX(-50%) scaleX(1.2) rotate(0deg) } }
@keyframes rp-fire { 0% { opacity:.6; transform:translateX(-50%) scaleY(1) } 50% { opacity:1; transform:translateX(-50%) scaleY(1.1) } 100% { opacity:.7; transform:translateX(-50%) scaleY(.95) } }
@keyframes rp-walk { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(4px) rotate(1deg) } 50% { transform:translateX(0) rotate(-1deg) } 75% { transform:translateX(-4px) rotate(2deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes rp-look { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(-10deg) } }
@keyframes rp-spoil { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(3deg) } 100% { transform:translateY(0) rotate(-2deg) } }

/* attack-on-tower – night, siege */
.scn-attack-on-tower {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a30 45%, #0e0e20 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a30 0%, transparent 70%);
}
.scn-attack-on-tower .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #15152e 0%, #0a0a18 100%);
  animation: at-sky 20s ease-in-out infinite alternate;
}
.scn-attack-on-tower .tower {
  position:absolute; bottom:30%; left:50%; width:80px; height:140px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1a 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: 0 10px 30px rgba(0,0,0,.7);
}
.scn-attack-on-tower .tower::before {
  content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:0; height:0; border-left:40px solid transparent; border-right:40px solid transparent; border-bottom:30px solid #1a1a2e;
}
.scn-attack-on-tower .battery {
  position:absolute; bottom:25%; left:20%; width:70px; height:30px;
  background: linear-gradient(90deg, #3a2a1a, #5a4a3a);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-15deg);
  animation: at-battery 6s ease-in-out infinite;
}
.scn-attack-on-tower .slaves {
  position:absolute; bottom:20%; left:10%; width:12px; height:30px;
  background: #0a0a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 15px 0 0 #0a0a1a, 30px 0 0 #0a0a1a, 45px 0 0 #0a0a1a;
  animation: at-crouch 4s ease-in-out infinite;
}
.scn-attack-on-tower .arrows {
  position:absolute; bottom:55%; left:25%; width:20px; height:2px;
  background: #5a4a3a;
  transform: rotate(45deg);
  box-shadow: 30px -20px 0 #5a4a3a, 60px -40px 0 #4a3a2a;
  animation: at-arrows 2s linear infinite;
}
.scn-attack-on-tower .ladder {
  position:absolute; bottom:27%; left:55%; width:5px; height:100px;
  background: #3a2a1a;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: at-ladder 8s ease-in-out infinite alternate;
}
@keyframes at-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes at-battery { 0% { transform:rotate(-15deg) translateX(0) } 50% { transform:rotate(-13deg) translateX(3px) } 100% { transform:rotate(-17deg) translateX(-2px) } }
@keyframes at-crouch { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(.9) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes at-arrows { 0% { transform:rotate(45deg) translateX(0) opacity:1 } 100% { transform:rotate(45deg) translateX(80px) opacity:0 } }
@keyframes at-ladder { 0% { transform:rotate(20deg) scaleY(1) } 50% { transform:rotate(18deg) scaleY(1.02) } 100% { transform:rotate(22deg) scaleY(.98) } }

/* undermining – night, wall breach */
.scn-undermining {
  background:
    linear-gradient(180deg, #0a0a16 0%, #1a1a2a 50%, #0e0a0e 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%);
}
.scn-undermining .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #121224 0%, #080810 100%);
  animation: um-sky 18s ease-in-out infinite alternate;
}
.scn-undermining .wall {
  position:absolute; bottom:20%; left:30%; right:30%; height:60%;
  background:
    linear-gradient(90deg, #2a2a1a 30%, #3a3a2a 30%, #3a3a2a 70%, #2a2a1a 70%),
    linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  background-size: 30px 30px;
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-undermining .breach {
  position:absolute; bottom:30%; left:45%; width:40px; height:50px;
  background: #0a0a0e;
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: inset 0 0 10px #2a1a1a;
  animation: um-breach 10s ease-in-out infinite alternate;
}
.scn-undermining .arrows {
  position:absolute; bottom:50%; left:20%; width:20px; height:2px;
  background: #5a4a3a;
  transform: rotate(60deg);
  box-shadow: 40px -20px 0 #4a3a2a, 80px -40px 0 #5a4a3a;
  animation: um-arrows 1.5s linear infinite;
}
.scn-undermining .attacker {
  position:absolute; bottom:18%; left:40%; width:14px; height:36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: um-crawl 5s ease-in-out infinite;
}
.scn-undermining .defender {
  position:absolute; bottom:28%; left:55%; width:14px; height:34px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: um-stab 3s ease-in-out infinite;
}
@keyframes um-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes um-breach { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.05) } 100% { transform:scaleY(.95) } }
@keyframes um-arrows { 0% { transform:rotate(60deg) translateX(0); opacity:1 } 100% { transform:rotate(60deg) translateX(100px); opacity:0 } }
@keyframes um-crawl { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(5px) rotate(-5deg) } 50% { transform:translateX(10px) rotate(2deg) } 75% { transform:translateX(15px) rotate(-3deg) } 100% { transform:translateX(20px) rotate(0deg) } }
@keyframes um-stab { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-3px) scaleY(1.1) } 100% { transform:translateY(0) scaleY(1) } }

/* relief-force – dawn, cavalry retreat */
.scn-relief-force {
  background:
    linear-gradient(180deg, #f5c26b 0%, #dba04e 20%, #b07a3a 50%, #5a3a1a 80%, #2a1a0e 100%),
    radial-gradient(ellipse at 70% 60%, #e8b855 0%, transparent 50%);
}
.scn-relief-force .sky-dawn {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #f5d89a 0%, #e8b855 40%, #c08a3a 70%, transparent 100%);
  animation: rf-sky 25s ease-in-out infinite alternate;
}
.scn-relief-force .ground-dawn {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 50%, #2a1a0e 100%);
  border-radius: 0 0 30% 70% / 0 0 40% 20%;
}
.scn-relief-force .cavalry {
  position:absolute; bottom:35%; left:20%; width:30px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  box-shadow: 40px 0 0 #3a2a1a, 80px 0 0 #2a1a0e;
  animation: rf-gallop 1.2s ease-in-out infinite;
}
.scn-relief-force .cattle {
  position:absolute; bottom:30%; left:50%; width:25px; height:20px;
  background: #5a4a3a;
  border-radius: 40% 40% 50% 50%;
  box-shadow: 30px 5px 0 #4a3a2a, 60px -5px 0 #6a5a4a;
  animation: rf-run 1.5s ease-in-out infinite alternate;
}
.scn-relief-force .dust {
  position:absolute; bottom:28%; left:10%; right:20%; height:20px;
  background: radial-gradient(circle, rgba(200,160,100,.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: rf-dust 3s ease-in-out infinite;
}
.scn-relief-force .spear {
  position:absolute; bottom:40%; left:22%; width:3px; height:30px;
  background: #5a3a2a;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: rf-spear 2s ease-in-out infinite;
}
@keyframes rf-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rf-gallop { 0% { transform:translateX(0) rotate(-3deg) scaleY(1) } 25% { transform:translateX(10px) rotate(2deg) scaleY(.95) } 50% { transform:translateX(20px) rotate(-2deg) scaleY(1) } 75% { transform:translateX(30px) rotate(1deg) scaleY(1.02) } 100% { transform:translateX(40px) rotate(-3deg) scaleY(1) } }
@keyframes rf-run { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(15px) rotate(5deg) } 100% { transform:translateX(30px) rotate(-3deg) } }
@keyframes rf-dust { 0% { opacity:.4; transform:scaleY(1) } 50% { opacity:.7; transform:scaleY(1.3) } 100% { opacity:.5; transform:scaleY(.9) } }
@keyframes rf-spear { 0% { transform:rotate(15deg) translateX(0) } 50% { transform:rotate(12deg) translateX(2px) } 100% { transform:rotate(18deg) translateX(-1px) } }

.scn-xenophon-warns-of-consequences { background: linear-gradient(180deg, #4a3a2a 0%, #7a5a3a 40%, #b08050 70%, #d0a060 100%), radial-gradient(ellipse at 30% 20%, #e8c080 0%, transparent 60%); }
.scn-xenophon-warns-of-consequences .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a5a4a 0%, #c8a060 50%, #e8c080 100%); animation: xwc-sky 15s ease-in-out infinite alternate; }
.scn-xenophon-warns-of-consequences .hills-rim { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: xwc-hills 8s ease-in-out infinite; }
.scn-xenophon-warns-of-consequences .campfire { position:absolute; bottom:38%; left:55%; width:30px; height:40px; background: radial-gradient(circle, #f0a030 0%, #d07020 50%, #904010 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,100,20,.6), 0 0 80px 40px rgba(200,100,20,.3); animation: xwc-fire 3s ease-in-out infinite; }
.scn-xenophon-warns-of-consequences .soldier-figure { position:absolute; bottom:34%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #0a050a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xwc-soldier 4s ease-in-out infinite; }
.scn-xenophon-warns-of-consequences .raised-arm { position:absolute; bottom:50%; left:37%; width:6px; height:20px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); border-radius:30%; transform: rotate(30deg); transform-origin: bottom; animation: xwc-arm 3s ease-in-out infinite alternate; }
.scn-xenophon-warns-of-consequences .shadow-spear { position:absolute; bottom:40%; left:65%; width:4px; height:60px; background: linear-gradient(180deg, #1a0a0a 0%, transparent 100%); transform: rotate(20deg); filter: blur(2px); animation: xwc-spear 5s ease-in-out infinite; }
.scn-xenophon-warns-of-consequences .dust-cloud-a { position:absolute; bottom:30%; left:20%; width:40px; height:20px; background: rgba(200,180,150,.3); border-radius:50%; filter: blur(8px); animation: xwc-dust-a 12s linear infinite; }
.scn-xenophon-warns-of-consequences .dust-cloud-b { position:absolute; bottom:32%; right:10%; width:60px; height:30px; background: rgba(200,180,150,.2); border-radius:50%; filter: blur(10px); animation: xwc-dust-b 18s linear infinite reverse; }
@keyframes xwc-sky { 0% { opacity:.7; background-position: 0 0; } 50% { opacity:1; background-position: 0 10%; } 100% { opacity:.8; background-position: 0 5%; } }
@keyframes xwc-hills { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes xwc-fire { 0% { transform: scale(1) rotate(0deg); opacity:.8; } 50% { transform: scale(1.1) rotate(5deg); opacity:1; } 100% { transform: scale(1) rotate(-3deg); opacity:.9; } }
@keyframes xwc-soldier { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xwc-arm { 0% { transform: rotate(20deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(25deg); } }
@keyframes xwc-spear { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes xwc-dust-a { 0% { transform: translateX(-20px); opacity:0; } 50% { opacity:.4; } 100% { transform: translateX(120vw); opacity:0; } }
@keyframes xwc-dust-b { 0% { transform: translateX(0); opacity:0; } 50% { opacity:.3; } 100% { transform: translateX(-100vw); opacity:0; } }

.scn-xenophon-on-danger { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 30%, #5a3a2a 70%, #7a4a3a 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%); }
.scn-xenophon-on-danger .precipice-edge { position:absolute; bottom:20%; left:0; right:30%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 0 60% 0 0 / 0 80% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.7); }
.scn-xenophon-on-danger .canyon-bg { position:absolute; bottom:0; right:0; left:30%; height:80%; background: linear-gradient(180deg, #1a0a0a 0%, #0a050a 50%, #000 100%); border-radius: 40% 0 0 0 / 60% 0 0 0; }
.scn-xenophon-on-danger .soldier-falling { position:absolute; bottom:40%; left:45%; width:16px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0a050a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center; animation: xod-fall 2.5s ease-in-out infinite; }
.scn-xenophon-on-danger .loose-stone-a { position:absolute; bottom:35%; left:40%; width:8px; height:8px; background: #4a3a2a; border-radius: 50%; animation: xod-stone-a 3s ease-in-out infinite; }
.scn-xenophon-on-danger .loose-stone-b { position:absolute; bottom:38%; left:42%; width:5px; height:5px; background: #3a2a1a; border-radius: 50%; animation: xod-stone-b 3.5s ease-in-out infinite alternate; }
.scn-xenophon-on-danger .rope-bridge { position:absolute; bottom:55%; left:10%; right:50%; height:4px; background: linear-gradient(90deg, #5a3a2a 0%, #8a5a3a 50%, #5a3a2a 100%); border-radius:2px; transform: rotate(-5deg); animation: xod-bridge 6s ease-in-out infinite; }
.scn-xenophon-on-danger .shadow-shard { position:absolute; bottom:15%; left:20%; width:30px; height:40px; background: rgba(0,0,0,.4); clip-path: polygon(0 0, 100% 20%, 80% 100%, 10% 70%); animation: xod-shard 8s ease-in-out infinite alternate; }
@keyframes xod-fall { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(10px) rotate(15deg); opacity:.8; } 100% { transform: translateY(0) rotate(-10deg); opacity:1; } }
@keyframes xod-stone-a { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-5px,8px) scale(.8); } 100% { transform: translate(0,0) scale(1); } }
@keyframes xod-stone-b { 0% { transform: translate(0,0); } 50% { transform: translate(-3px,4px); } 100% { transform: translate(0,0); } }
@keyframes xod-bridge { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.2); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes xod-shard { 0% { transform: translate(0,0) rotate(0deg); opacity:.3; } 50% { transform: translate(10px,-5px) rotate(10deg); opacity:.6; } 100% { transform: translate(0,0) rotate(0deg); opacity:.4; } }

.scn-xenophon-on-economics { background: linear-gradient(180deg, #5a6a4a 0%, #7a8a5a 40%, #a0b070 70%, #c0d080 100%), radial-gradient(ellipse at 30% 20%, #e8e0a0 0%, transparent 50%); }
.scn-xenophon-on-economics .dawn-field { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8e0a0 0%, #c0d080 50%, #a0b070 100%); animation: xoe-field 20s ease-in-out infinite alternate; }
.scn-xenophon-on-economics .furrow-grid { position:absolute; bottom:30%; left:0; right:0; height:40%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, #6a7a4a 20px, #6a7a4a 22px); opacity:.5; animation: xoe-furrow 30s linear infinite; }
.scn-xenophon-on-economics .farmer-figure { position:absolute; bottom:38%; left:35%; width:22px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: xoe-farmer 6s ease-in-out infinite; }
.scn-xenophon-on-economics .baskets { position:absolute; bottom:35%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #a07040 0%, #603020 100%); border-radius: 30% 30% 50% 50%; box-shadow: 4px 0 6px rgba(0,0,0,.3); animation: xoe-baskets 8s ease-in-out infinite alternate; }
.scn-xenophon-on-economics .olive-tree { position:absolute; bottom:40%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%); border-radius: 60% 60% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom center; animation: xoe-tree 12s ease-in-out infinite; }
.scn-xenophon-on-economics .sunrise-beam { position:absolute; top:10%; left:30%; width:100px; height:200px; background: linear-gradient(180deg, rgba(255,230,150,.4) 0%, transparent 100%); transform: rotate(40deg); filter: blur(15px); animation: xoe-beam 10s ease-in-out infinite alternate; }
.scn-xenophon-on-economics .breeze-wheat-a { position:absolute; bottom:45%; left:20%; width:50px; height:12px; background: rgba(180,200,100,.3); border-radius:50%; filter: blur(6px); animation: xoe-wheat-a 14s linear infinite; }
.scn-xenophon-on-economics .breeze-wheat-b { position:absolute; bottom:48%; right:25%; width:40px; height:10px; background: rgba(180,200,100,.2); border-radius:50%; filter: blur(5px); animation: xoe-wheat-b 18s linear infinite reverse; }
@keyframes xoe-field { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes xoe-furrow { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes xoe-farmer { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xoe-baskets { 0% { transform: scale(1); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes xoe-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes xoe-beam { 0% { opacity:.3; transform: rotate(35deg); } 50% { opacity:.6; transform: rotate(45deg); } 100% { opacity:.4; transform: rotate(40deg); } }
@keyframes xoe-wheat-a { 0% { transform: translateX(-30px); opacity:0; } 50% { opacity:.4; } 100% { transform: translateX(120vw); opacity:0; } }
@keyframes xoe-wheat-b { 0% { transform: translateX(0); opacity:0; } 50% { opacity:.3; } 100% { transform: translateX(-100vw); opacity:0; } }

.scn-xenophon-on-hercleides { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a2a2a 60%, #4a3a3a 100%), radial-gradient(ellipse at 50% 60%, #5a3a3a 0%, transparent 70%); }
.scn-xenophon-on-hercleides .dawn-interior { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 50%, #2a1a1a 100%); animation: xoh-interior 12s ease-in-out infinite alternate; }
.scn-xenophon-on-hercleides .table-top { position:absolute; bottom:30%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-xenophon-on-hercleides .scroll-unrolled { position:absolute; bottom:40%; left:30%; width:60px; height:25px; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius: 10% 10% 50% 50%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: xoh-scroll 5s ease-in-out infinite alternate; }
.scn-xenophon-on-hercleides .coin-pile { position:absolute; bottom:35%; left:55%; width:30px; height:15px; background: radial-gradient(circle, #c0a060 0%, #806040 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: xoh-coins 4s ease-in-out infinite; }
.scn-xenophon-on-hercleides .hercleides-figure { position:absolute; bottom:40%; left:55%; width:24px; height:42px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xoh-hercleides 6s ease-in-out infinite; }
.scn-xenophon-on-hercleides .xenophon-hand { position:absolute; bottom:42%; left:38%; width:10px; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(20deg); animation: xoh-hand 3s ease-in-out infinite alternate; }
.scn-xenophon-on-hercleides .candle-flame { position:absolute; bottom:45%; left:22%; width:8px; height:12px; background: radial-gradient(circle, #f0c060 0%, #e08030 50%, #904010 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 10px #c07030, 0 0 40px 20px rgba(192,112,48,.3); animation: xoh-candle 2s ease-in-out infinite alternate; }
.scn-xenophon-on-hercleides .shadow-shard { position:absolute; bottom:10%; left:5%; width:80px; height:60px; background: rgba(0,0,0,.4); clip-path: polygon(0 0, 100% 20%, 80% 100%, 20% 80%); animation: xoh-shard 10s ease-in-out infinite alternate; }
@keyframes xoh-interior { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes xoh-scroll { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(-4deg) scaleX(1); } }
@keyframes xoh-coins { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes xoh-hercleides { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xoh-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes xoh-candle { 0% { transform: scaleY(1) rotate(0deg); opacity:.8; } 50% { transform: scaleY(1.2) rotate(5deg); opacity:1; } 100% { transform: scaleY(1) rotate(-3deg); opacity:.9; } }
@keyframes xoh-shard { 0% { transform: translate(0,0) rotate(0deg); opacity:.3; } 50% { transform: translate(5px,-5px) rotate(5deg); opacity:.5; } 100% { transform: translate(0,0) rotate(0deg); opacity:.4; } }

.scn-xenophon-consults-soothsayer {
  background: linear-gradient(180deg, #1a120b 0%, #2c1f12 40%, #3a2816 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 70%);
}
.scn-xenophon-consults-soothsayer .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1f150e 0%, #2c2015 50%, #3f2e1e 100%);
  animation: xcs-tent 12s ease-in-out infinite alternate;
}
.scn-xenophon-consults-soothsayer .fire-glow {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, rgba(200,85,61,0.3) 50%, transparent 75%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: xcs-fire 3s ease-in-out infinite alternate;
  filter: blur(4px);
}
.scn-xenophon-consults-soothsayer .altar {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #5e3e2a 0%, #3a2816 100%);
  border-radius: 10% 10% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-xenophon-consults-soothsayer .soothsayer {
  position: absolute; bottom: 18%; left: 36%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2c1f12 0%, #1a120b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xcs-soothsayer 6s ease-in-out infinite;
  z-index: 2;
}
.scn-xenophon-consults-soothsayer .xenophon {
  position: absolute; bottom: 18%; left: 58%; width: 32px; height: 78px;
  background: linear-gradient(180deg, #3a2816 0%, #1f150e 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: xcs-xenophon 8s ease-in-out infinite;
}
.scn-xenophon-consults-soothsayer .smoke-a {
  position: absolute; bottom: 45%; left: 42%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,160,130,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: xcs-smoke-a 10s ease-in-out infinite, xcs-drift-a 20s linear infinite;
}
.scn-xenophon-consults-soothsayer .smoke-b {
  position: absolute; bottom: 50%; left: 48%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,160,130,0.2) 0%, transparent 70%);
  border-radius: 50%; filter: blur(5px);
  animation: xcs-smoke-b 8s ease-in-out infinite alternate, xcs-drift-b 25s linear infinite;
}
@keyframes xcs-tent { 0%,100% { opacity:0.9 } 50% { opacity:0.7 } }
@keyframes xcs-fire { 0% { transform: translateX(-50%) scaleY(1); opacity:0.8 } 50% { transform: translateX(-50%) scaleY(1.15); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.95); opacity:0.7 } }
@keyframes xcs-soothsayer { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(-2deg); } }
@keyframes xcs-xenophon { 0%,100% { transform: translateX(0) rotate(0); } 33% { transform: translateX(1px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes xcs-smoke-a { 0% { opacity:0.3; transform: translateY(0) scale(1); } 50% { opacity:0.6; transform: translateY(-10px) scale(1.2); } 100% { opacity:0.2; transform: translateY(-20px) scale(0.8); } }
@keyframes xcs-smoke-b { 0% { opacity:0.2; transform: translateY(0) scale(1); } 50% { opacity:0.5; transform: translateY(-8px) scale(1.1); } 100% { opacity:0.1; transform: translateY(-16px) scale(0.9); } }
@keyframes xcs-drift-a { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }
@keyframes xcs-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }

.scn-silanus-spreads-rumor {
  background: linear-gradient(180deg, #1a1510 0%, #2a2018 40%, #3a2a1e 100%), radial-gradient(ellipse at 30% 50%, #3a2a1e 0%, transparent 60%);
}
.scn-silanus-spreads-rumor .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1f1a14 0%, #2a221c 50%, #3a2e24 100%);
  animation: ssr-room 10s ease-in-out infinite alternate;
}
.scn-silanus-spreads-rumor .silanus {
  position: absolute; bottom: 20%; left: 35%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #2c2218 0%, #1a1510 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssr-silanus 5s ease-in-out infinite;
  z-index: 3;
}
.scn-silanus-spreads-rumor .soldier-1 {
  position: absolute; bottom: 20%; left: 42%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2e1e 0%, #1f1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssr-soldier1 7s ease-in-out infinite;
}
.scn-silanus-spreads-rumor .soldier-2 {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #3a2e1e 0%, #1f1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssr-soldier2 9s ease-in-out infinite;
}
.scn-silanus-spreads-rumor .wall-shadow {
  position: absolute; top: 0; right: 10%; width: 150px; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: ssr-shadow 8s ease-in-out infinite alternate;
}
.scn-silanus-spreads-rumor .lamp-glow {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d4a373 0%, rgba(212,163,115,0.3) 50%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  animation: ssr-lamp 4s ease-in-out infinite alternate;
}
.scn-silanus-spreads-rumor .floor-line {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #2a221c 30%, #2a221c 70%, transparent 100%);
  border-radius: 50%;
}
@keyframes ssr-room { 0%,100% { opacity:0.85; } 50% { opacity:0.7; } }
@keyframes ssr-silanus { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes ssr-soldier1 { 0%,100% { transform: translateX(0) rotate(0); } 33% { transform: translateX(1px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes ssr-soldier2 { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes ssr-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes ssr-lamp { 0% { transform: translateX(-50%) scale(1); opacity:0.7; } 50% { transform: translateX(-50%) scale(1.2); opacity:1; } 100% { transform: translateX(-50%) scale(0.9); opacity:0.8; } }

.scn-soldiers-react-to-rumor {
  background: linear-gradient(180deg, #3a3a40 0%, #4a4a50 30%, #5a5a60 60%, #6a6a70 100%), radial-gradient(ellipse at 50% 0%, #5a5a60 0%, transparent 70%);
}
.scn-soldiers-react-to-rumor .sky-overcast {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a2a30 0%, #4a4a50 100%);
  animation: srr-sky 15s ease-in-out infinite alternate;
}
.scn-soldiers-react-to-rumor .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a40 0%, #2a2a30 100%);
  border-radius: 30% 30% 0 0;
}
.scn-soldiers-react-to-rumor .soldier-group-left {
  position: absolute; bottom: 22%; left: 15%; width: 80px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #1a1a20 0%, transparent 70%);
  filter: blur(2px);
  animation: srr-group-left 6s ease-in-out infinite;
}
.scn-soldiers-react-to-rumor .soldier-group-right {
  position: absolute; bottom: 20%; right: 20%; width: 70px; height: 55px;
  background: radial-gradient(ellipse at 50% 100%, #1a1a20 0%, transparent 70%);
  filter: blur(2px);
  animation: srr-group-right 8s ease-in-out infinite;
}
.scn-soldiers-react-to-rumor .soldier-gesture {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srr-gesture 4s ease-in-out infinite;
}
.scn-soldiers-react-to-rumor .tent-1 {
  position: absolute; bottom: 30%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #4a4a50 0%, #3a3a40 100%);
  border-radius: 20% 20% 0 0;
  transform: skewX(-5deg);
  animation: srr-tent1 12s ease-in-out infinite alternate;
}
.scn-soldiers-react-to-rumor .tent-2 {
  position: absolute; bottom: 28%; right: 10%; width: 70px; height: 55px;
  background: linear-gradient(135deg, #4a4a50 0%, #3a3a40 100%);
  border-radius: 20% 20% 0 0;
  transform: skewX(5deg);
  animation: srr-tent2 10s ease-in-out infinite alternate;
}
.scn-soldiers-react-to-rumor .cloud-sog {
  position: absolute; top: 10%; left: -20%; width: 200px; height: 40px;
  background: linear-gradient(90deg, rgba(80,80,90,0.6) 0%, rgba(80,80,90,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: srr-cloud 30s linear infinite;
}
@keyframes srr-sky { 0%,100% { opacity:0.8; } 50% { opacity:0.5; } }
@keyframes srr-group-left { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes srr-group-right { 0%,100% { transform: translateY(0); } 50% { transform: translateY(3px); } }
@keyframes srr-gesture { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(-10deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-5px) rotate(10deg); } }
@keyframes srr-tent1 { 0% { transform: skewX(-5deg) scaleY(1); } 50% { transform: skewX(-5deg) scaleY(1.05); } 100% { transform: skewX(-5deg) scaleY(0.95); } }
@keyframes srr-tent2 { 0% { transform: skewX(5deg) scaleY(1); } 50% { transform: skewX(5deg) scaleY(0.95); } 100% { transform: skewX(5deg) scaleY(1.05); } }
@keyframes srr-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-timasion-thorax-plot {
  background: linear-gradient(180deg, #1a1310 0%, #2a2018 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 70%);
}
.scn-timasion-thorax-plot .room-bg-plot {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1f1a14 0%, #2a221c 50%, #3a2e24 100%);
  animation: ttp-room 12s ease-in-out infinite alternate;
}
.scn-timasion-thorax-plot .table {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a2018 100%);
  border-radius: 10% 10% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-timasion-thorax-plot .timasion {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1a14 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ttp-timasion 7s ease-in-out infinite;
}
.scn-timasion-thorax-plot .thorax {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1a14 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ttp-thorax 8s ease-in-out infinite;
}
.scn-timasion-thorax-plot .lamp-plot {
  position: absolute; top: 20%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c8553d 0%, rgba(200,85,61,0.2) 50%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  animation: ttp-lamp 4s ease-in-out infinite alternate;
  filter: blur(2px);
}
.scn-timasion-thorax-plot .shadow-plot {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: ttp-shadow 6s ease-in-out infinite alternate;
}
.scn-timasion-thorax-plot .floor-plot {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 0%, #2a221c 30%, #2a221c 70%, transparent 100%);
}
@keyframes ttp-room { 0%,100% { opacity:0.8; } 50% { opacity:0.65; } }
@keyframes ttp-timasion { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(2px) rotate(-2deg); } }
@keyframes ttp-thorax { 0%,100% { transform: translateX(0) rotate(0); } 33% { transform: translateX(1px) rotate(-1deg); } 66% { transform: translateX(-1px) rotate(1deg); } }
@keyframes ttp-lamp { 0% { transform: translateX(-50%) scale(1); opacity:0.6; } 50% { transform: translateX(-50%) scale(1.3); opacity:1; } 100% { transform: translateX(-50%) scale(0.9); opacity:0.7; } }
@keyframes ttp-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

.scn-cyrus-stops-fight {
  background: linear-gradient(180deg, #e0c8a0 0%, #b09070 40%, #806040 100%), radial-gradient(ellipse at 20% 20%, #ffe0a0 0%, transparent 70%);
}
.scn-cyrus-stops-fight .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7eb8e0 0%, #d4e8f0 50%, transparent 100%);
  animation: cs-sky 20s ease-in-out infinite alternate;
}
.scn-cyrus-stops-fight .sun {
  position: absolute; top: 12%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080, #f0a020 60%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,160,32,.4);
  animation: cs-sun 15s ease-in-out infinite;
}
.scn-cyrus-stops-fight .plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b89070 0%, #907050 30%, #705040 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
}
.scn-cyrus-stops-fight .dust-cloud-a {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 30px;
  background: rgba(200,180,140,.5); border-radius: 50%;
  filter: blur(8px);
  animation: cs-dust-a 6s ease-in-out infinite alternate;
}
.scn-cyrus-stops-fight .dust-cloud-b {
  position: absolute; bottom: 28%; left: 45%; width: 100px; height: 40px;
  background: rgba(180,160,120,.4); border-radius: 50%;
  filter: blur(10px);
  animation: cs-dust-b 8s ease-in-out infinite alternate;
}
.scn-cyrus-stops-fight .horse {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #5c3a1a 0%, #3a2010 100%);
  border-radius: 40% 20% 50% 30% / 60% 40% 40% 30%;
  transform: scaleX(-1);
  animation: cs-horse 4s ease-in-out infinite;
}
.scn-cyrus-stops-fight .rider {
  position: absolute; bottom: 30%; left: 34%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cs-rider 4s ease-in-out infinite;
}
.scn-cyrus-stops-fight .javelins {
  position: absolute; bottom: 34%; left: 38%; width: 3px; height: 30px;
  background: #604020; border-radius: 0 0 2px 2px;
  box-shadow: 8px 2px 0 #604020, 16px 4px 0 #604020;
  transform: rotate(15deg);
  animation: cs-jav 4s ease-in-out infinite;
}
.scn-cyrus-stops-fight .ground-shimmer {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent, rgba(255,200,100,.15), transparent);
  animation: cs-shimmer 3s linear infinite;
}
@keyframes cs-sky { 0% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.01); } 100% { opacity: .75; transform: scale(1); } }
@keyframes cs-sun { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-10px, -5px) scale(1.05); } }
@keyframes cs-dust-a { 0% { transform: translate(0,0) scale(1); opacity: .5; } 50% { transform: translate(20px,-10px) scale(1.2); opacity: .3; } 100% { transform: translate(0,0) scale(1); opacity: .5; } }
@keyframes cs-dust-b { 0% { transform: translate(0,0) scale(1); opacity: .4; } 50% { transform: translate(-15px,-8px) scale(1.1); opacity: .2; } 100% { transform: translate(0,0) scale(1); opacity: .4; } }
@keyframes cs-horse { 0%,100% { transform: scaleX(-1) translate(0,0); } 25% { transform: scaleX(-1) translate(5px,-3px) rotate(-2deg); } 50% { transform: scaleX(-1) translate(10px,0); } 75% { transform: scaleX(-1) translate(5px,-2px) rotate(2deg); } }
@keyframes cs-rider { 0%,100% { transform: translate(0,0) rotate(0); } 25% { transform: translate(3px,-2px) rotate(-3deg); } 50% { transform: translate(6px,0) rotate(0); } 75% { transform: translate(3px,-1px) rotate(3deg); } }
@keyframes cs-jav { 0%,100% { transform: rotate(15deg) translate(0,0); } 50% { transform: rotate(12deg) translate(3px,-5px); } }
@keyframes cs-shimmer { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } }

.scn-hoof-prints-burning {
  background: linear-gradient(180deg, #d0b080 0%, #a08050 40%, #705030 100%), radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 60%);
}
.scn-hoof-prints-burning .sky-hb { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #8ab0c0 0%, #c0d8e0 50%, transparent 100%); animation: hb-sky 25s ease-in-out infinite alternate; }
.scn-hoof-prints-burning .sun-hb { position: absolute; top: 8%; left: 65%; width: 70px; height: 70px; background: radial-gradient(circle, #ffd080, #e8a020 50%, transparent); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(232,160,32,.3); animation: hb-sun 18s ease-in-out infinite; }
.scn-hoof-prints-burning .plain-hb { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #c8a870 0%, #a08050 40%, #806040 100%); border-radius: 20% 30% 0 0 / 15% 25% 0 0; }
.scn-hoof-prints-burning .burnt-grass { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%; background: linear-gradient(90deg, #3a2010 0%, #503020 20%, #3a2010 40%, #503020 60%, #3a2010 80%, #503020 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; animation: hb-burn 10s ease-in-out infinite; }
.scn-hoof-prints-burning .smoke-a { position: absolute; bottom: 25%; left: 20%; width: 60px; height: 40px; background: rgba(80,60,40,.4); border-radius: 50%; filter: blur(10px); animation: hb-smoke-a 20s linear infinite; }
.scn-hoof-prints-burning .smoke-b { position: absolute; bottom: 22%; left: 50%; width: 80px; height: 50px; background: rgba(60,50,40,.3); border-radius: 50%; filter: blur(12px); animation: hb-smoke-b 25s linear infinite reverse; }
.scn-hoof-prints-burning .hoof-prints { position: absolute; bottom: 15%; left: 0; right: 0; height: 5%; background: repeating-linear-gradient(90deg, transparent, transparent 10px, #3a2010 10px, #3a2010 12px); mask: linear-gradient(90deg, transparent 0%, #000 10%, #000 50%, transparent 100%); -webkit-mask: linear-gradient(90deg, transparent 0%, #000 10%, #000 50%, transparent 100%); animation: hb-hoof 8s linear infinite; }
.scn-hoof-prints-burning .flame-line { position: absolute; bottom: 22%; left: 5%; right: 5%; height: 8%; background: linear-gradient(90deg, #ff8040 0%, #ff6020 20%, #ff4020 40%, #ff6020 60%, #ff8040 80%, #ff4020 100%); border-radius: 30% 30% 50% 50% / 80% 80% 30% 30%; filter: blur(4px); animation: hb-flame 4s ease-in-out infinite alternate; }
@keyframes hb-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes hb-sun { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-8px,-4px) scale(1.03); } }
@keyframes hb-burn { 0% { transform: scaleX(1) translate(0,0); } 50% { transform: scaleX(1.05) translate(-5px,2px); } 100% { transform: scaleX(1) translate(0,0); } }
@keyframes hb-smoke-a { 0% { transform: translate(0,0) scale(1); opacity: .4; } 50% { transform: translate(-30px,-20px) scale(1.3); opacity: .2; } 100% { transform: translate(0,0) scale(1); opacity: .4; } }
@keyframes hb-smoke-b { 0% { transform: translate(0,0) scale(1); opacity: .3; } 50% { transform: translate(40px,-15px) scale(1.2); opacity: .15; } 100% { transform: translate(0,0) scale(1); opacity: .3; } }
@keyframes hb-hoof { 0% { background-position: 0 0; } 100% { background-position: -200px 0; } }
@keyframes hb-flame { 0% { transform: scaleY(1) translate(0,0); } 100% { transform: scaleY(1.2) translate(0,-5px); } }

.scn-orontas-conspiracy {
  background: linear-gradient(180deg, #1a1025 0%, #2a1a35 30%, #3a2040 100%), radial-gradient(ellipse at 50% 80%, #4a3050 0%, transparent 70%);
}
.scn-orontas-conspiracy .wall-oc { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #25182a 0%, #1a1025 100%); }
.scn-orontas-conspiracy .floor-oc { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a1a35 0%, #1a1025 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-orontas-conspiracy .lantern-oc { position: absolute; top: 30%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%); background: radial-gradient(circle at 50% 40%, #ffd060 0%, #c08040 60%, transparent); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 40px 20px rgba(192,128,64,.5), 0 0 80px 40px rgba(192,128,64,.2); animation: oc-lantern 5s ease-in-out infinite alternate; }
.scn-orontas-conspiracy .shadow-figure-a { position: absolute; bottom: 25%; left: 20%; width: 30px; height: 50px; background: linear-gradient(180deg, #0a0510 0%, #1a1025 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-5deg); animation: oc-fig-a 10s ease-in-out infinite; }
.scn-orontas-conspiracy .shadow-figure-b { position: absolute; bottom: 22%; right: 15%; width: 28px; height: 48px; background: linear-gradient(180deg, #0a0510 0%, #1a1025 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(5deg); animation: oc-fig-b 9s ease-in-out infinite reverse; }
.scn-orontas-conspiracy .table-oc { position: absolute; bottom: 25%; left: 35%; right: 35%; height: 6%; background: #3a2040; border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-orontas-conspiracy .document-oc { position: absolute; bottom: 28%; left: 45%; width: 20px; height: 14px; background: #c8b090; transform: rotate(-10deg); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: oc-doc 6s ease-in-out infinite; }
.scn-orontas-conspiracy .dagger-glow { position: absolute; bottom: 24%; left: 48%; width: 3px; height: 18px; background: #ffd080; border-radius: 1px; box-shadow: 0 0 12px 4px rgba(255,208,128,.6); transform: rotate(20deg); animation: oc-dagger 4s ease-in-out infinite alternate; }
@keyframes oc-lantern { 0% { opacity: .7; box-shadow: 0 0 30px 15px rgba(192,128,64,.4); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,208,96,.6); } 100% { opacity: .8; box-shadow: 0 0 35px 18px rgba(192,128,64,.45); } }
@keyframes oc-fig-a { 0%,100% { transform: skewX(-5deg) translate(0,0); } 50% { transform: skewX(-6deg) translate(5px,-3px); } }
@keyframes oc-fig-b { 0%,100% { transform: skewX(5deg) translate(0,0); } 50% { transform: skewX(6deg) translate(-5px,-2px); } }
@keyframes oc-doc { 0%,100% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(-12deg) translate(2px,-2px); } }
@keyframes oc-dagger { 0% { transform: rotate(20deg) translate(0,0); opacity: .8; } 100% { transform: rotate(25deg) translate(0,-4px); opacity: 1; } }

.scn-orontas-letter-discovered {
  background: linear-gradient(180deg, #1a1520 0%, #2a2030 30%, #3a2840 100%), radial-gradient(ellipse at 40% 60%, #4a3050 0%, transparent 60%);
}
.scn-orontas-letter-discovered .wall-old { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #201820 0%, #151015 100%); }
.scn-orontas-letter-discovered .floor-old { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a2030 0%, #1a1520 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; }
.scn-orontas-letter-discovered .candle-old { position: absolute; bottom: 30%; left: 30%; width: 8px; height: 20px; background: #c8a870; border-radius: 4px 4px 2px 2px; }
.scn-orontas-letter-discovered .candle-old::before { content: ''; position: absolute; top: -10px; left: 50%; transform: translateX(-50%); width: 6px; height: 12px; background: radial-gradient(circle, #ffd060 0%, #ffa020 70%, transparent); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(255,160,32,.6); animation: old-flame 3s ease-in-out infinite alternate; }
.scn-orontas-letter-discovered .scribe-old { position: absolute; bottom: 20%; left: 22%; width: 30px; height: 45px; background: linear-gradient(180deg, #1a1020 0%, #0a0510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-3deg); animation: old-scribe 8s ease-in-out infinite; }
.scn-orontas-letter-discovered .letter-old { position: absolute; bottom: 28%; left: 28%; width: 22px; height: 16px; background: #d0b890; transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: old-letter 6s ease-in-out infinite; }
.scn-orontas-letter-discovered .spy-old { position: absolute; bottom: 22%; right: 20%; width: 26px; height: 42px; background: linear-gradient(180deg, #0a0510 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: old-spy 10s ease-in-out infinite; }
.scn-orontas-letter-discovered .curtain-old { position: absolute; top: 0; right: 0; height: 100%; width: 15%; background: linear-gradient(180deg, #3a2840 0%, #2a2030 50%, #1a1520 100%); border-radius: 0 0 0 30%; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: old-curtain 12s ease-in-out infinite alternate; }
@keyframes old-flame { 0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity: .8; } 100% { transform: translateX(-50%) scaleY(1.2) translateY(-3px); opacity: 1; } }
@keyframes old-scribe { 0%,100% { transform: skewX(-3deg) translate(0,0); } 50% { transform: skewX(-2deg) translate(2px,-2px); } }
@keyframes old-letter { 0%,100% { transform: rotate(-5deg) translate(0,0); } 50% { transform: rotate(-7deg) translate(1px,1px); } }
@keyframes old-spy { 0%,100% { transform: scaleX(-1) translate(0,0); } 50% { transform: scaleX(-1) translate(-4px,-2px); } }
@keyframes old-curtain { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.05); } }

.scn-king-advances-again {
  background: linear-gradient(180deg, #87ceeb 0%, #c8e6f5 40%, #e0f0d0 100%), radial-gradient(ellipse at 50% 80%, #ffd700 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-king-advances-again .sun-haze {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(255,235,200,0.3) 0%, rgba(255,235,200,0.05) 100%);
  animation: ka1-haze 8s ease-in-out infinite alternate;
}
.scn-king-advances-again .distant-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(135deg, #5c8a7a 0%, #3d6b5a 60%, #2a4a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
  animation: ka1-hills 15s ease-in-out infinite alternate;
}
.scn-king-advances-again .soldier-line {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 35px;
  background: linear-gradient(90deg, #202520 10%, #2a3020 30%, #1b2010 50%, #303520 70%, #202520 90%);
  transform: perspective(300px) rotateX(8deg);
  animation: ka1-line 2s ease-in-out infinite alternate;
}
.scn-king-advances-again .spear-spear {
  position: absolute; bottom: 42%; left: 35%; width: 3px; height: 40px;
  background: linear-gradient(0deg, #8b7355 0%, #c0a060 100%);
  box-shadow: 12px -5px 0 #c0a060, 25px 2px 0 #8b7355, -10px 4px 0 #b09050;
  animation: ka1-spear 0.6s ease-in-out infinite;
}
.scn-king-advances-again .dust-cloud.a {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 20px;
  background: rgba(210,180,140,0.4); filter: blur(6px);
  border-radius: 50%;
  animation: ka1-dusta 7s linear infinite;
}
.scn-king-advances-again .dust-cloud.b {
  position: absolute; bottom: 27%; right: 15%; width: 60px; height: 18px;
  background: rgba(200,170,130,0.35); filter: blur(5px);
  border-radius: 50%;
  animation: ka1-dustb 9s linear infinite reverse;
}
.scn-king-advances-again .shadow-stripe {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.25) 0%, transparent 100%);
  animation: ka1-shadow 3s ease-in-out infinite alternate;
}
@keyframes ka1-haze { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes ka1-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ka1-line { 0% { transform: perspective(300px) rotateX(8deg) translateX(0); } 100% { transform: perspective(300px) rotateX(8deg) translateX(-5px); } }
@keyframes ka1-spear { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes ka1-dusta { 0% { transform: translateX(-40px) scale(1); } 50% { transform: translateX(30px) scale(1.3); } 100% { transform: translateX(120vw) scale(0.8); } }
@keyframes ka1-dustb { 0% { transform: translateX(0) scale(0.8); } 50% { transform: translateX(-20px) scale(1.2); } 100% { transform: translateX(-120vw) scale(0.9); } }
@keyframes ka1-shadow { 0% { opacity: 0.2; } 100% { opacity: 0.5; } }

.scn-tissaphernes-charges-peltasts {
  background: linear-gradient(180deg, #a2c8d6 0%, #cbe4e8 40%, #e6f0e8 100%), radial-gradient(ellipse at 60% 20%, #ffd700 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-tissaphernes-charges-peltasts .sky-band {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, rgba(255,240,210,0.3) 0%, transparent 100%);
  animation: tc1-sky 12s ease-in-out infinite alternate;
}
.scn-tissaphernes-charges-peltasts .far-plains {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8e5a 0%, #4a6a3a 100%);
  border-radius: 40% 30% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
  animation: tc1-plains 20s linear infinite alternate;
}
.scn-tissaphernes-charges-peltasts .charger-horse {
  position: absolute; bottom: 28%; left: 30%; width: 60px; height: 45px;
  background: linear-gradient(180deg, #302818 0%, #1a1008 100%);
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%;
  box-shadow: -8px 0 10px rgba(0,0,0,0.3);
  animation: tc1-horse 0.4s ease-in-out infinite alternate;
}
.scn-tissaphernes-charges-peltasts .peltast-figure {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: tc1-peltast 0.8s ease-in-out infinite;
}
.scn-tissaphernes-charges-peltasts .rider-arm {
  position: absolute; bottom: 46%; left: 34%; width: 18px; height: 6px;
  background: #4a3020;
  border-radius: 30% 70% 30% 30% / 50% 50% 50% 50%;
  transform-origin: right center;
  animation: tc1-arm 0.35s ease-in-out infinite alternate;
}
.scn-tissaphernes-charges-peltasts .javelin {
  position: absolute; bottom: 50%; left: 36%; width: 3px; height: 30px;
  background: linear-gradient(0deg, #7a6040 0%, #c0a060 100%);
  box-shadow: 4px 2px 0 #8b7355;
  animation: tc1-javelin 0.5s ease-in-out infinite;
}
.scn-tissaphernes-charges-peltasts .ground-rush {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a4a2a 0%, #4a5a3a 50%, transparent 100%);
  animation: tc1-ground 2s ease-in-out infinite alternate;
}
@keyframes tc1-sky { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes tc1-plains { 0% { transform: scaleY(0.95) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(0.95) translateY(0); } }
@keyframes tc1-horse { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tc1-peltast { 0% { transform: scaleX(-1) translateX(0); } 25% { transform: scaleX(-1) translateX(3px); } 75% { transform: scaleX(-1) translateX(-2px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes tc1-arm { 0% { transform: rotate(20deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-20deg); } }
@keyframes tc1-javelin { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes tc1-ground { 0% { opacity: 0.8; } 100% { opacity: 1; } }

.scn-hellenes-fear-envelopment {
  background: linear-gradient(180deg, #7fb0c0 0%, #b8d4d8 50%, #d8e8e0 100%), radial-gradient(ellipse at 40% 100%, #ffd700 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-hellenes-fear-envelopment .sky-glow {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 100%);
  animation: he1-glow 10s ease-in-out infinite alternate;
}
.scn-hellenes-fear-envelopment .river-bend {
  position: absolute; bottom: 30%; left: 0; right: 20%; height: 25%;
  background: linear-gradient(135deg, #3a6a8a 0%, #5a8aae 40%, #4a7a9a 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  box-shadow: inset 20px 0 30px rgba(0,0,0,0.2);
  animation: he1-river 6s ease-in-out infinite alternate;
}
.scn-hellenes-fear-envelopment .hoplite-shield {
  position: absolute; bottom: 30%; left: 45%; width: 28px; height: 34px;
  background: radial-gradient(circle at 50% 50%, #7a5030 0%, #4a2818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3), inset 0 0 10px #603820;
  animation: he1-shield 2s ease-in-out infinite;
}
.scn-hellenes-fear-envelopment .hoplite-figure.a {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: perspective(200px) rotateY(15deg);
  animation: he1-fig 1.5s ease-in-out infinite alternate;
}
.scn-hellenes-fear-envelopment .hoplite-figure.b {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: perspective(200px) rotateY(-15deg) scaleX(-1);
  animation: he1-fig 1.8s ease-in-out infinite alternate-reverse;
}
.scn-hellenes-fear-envelopment .flank-shadow {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 0% 100%, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: he1-shadow 4s ease-in-out infinite alternate;
}
.scn-hellenes-fear-envelopment .spear-tips {
  position: absolute; bottom: 47%; left: 30%; right: 30%; height: 20px;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #a08060 8px, #a08060 9px);
  animation: he1-spears 0.3s ease-in-out infinite;
}
@keyframes he1-glow { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes he1-river { 0% { transform: skewX(0deg); } 50% { transform: skewX(3deg); } 100% { transform: skewX(0deg); } }
@keyframes he1-shield { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes he1-fig { 0% { transform: perspective(200px) rotateY(15deg) translateY(0); } 50% { transform: perspective(200px) rotateY(15deg) translateY(-1px); } 100% { transform: perspective(200px) rotateY(15deg) translateY(0); } }
@keyframes he1-shadow { 0% { opacity: 0.1; } 100% { opacity: 0.4; } }
@keyframes he1-spears { 0% { background-position: 0 0; } 100% { background-position: 9px 0; } }

.scn-second-charge-king-flees {
  background: linear-gradient(180deg, #6ba3c0 0%, #aacee8 50%, #d8e8f0 100%), radial-gradient(ellipse at 50% 30%, #ffd700 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-second-charge-king-flees .bright-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(255,245,210,0.4) 0%, transparent 100%);
  animation: sc1-bright 9s ease-in-out infinite alternate;
}
.scn-second-charge-king-flees .pursuing-line {
  position: absolute; bottom: 20%; left: 0; right: 30%; height: 30px;
  background: linear-gradient(90deg, #202520 10%, #303a20 40%, #1a1f10 60%, #2a3020 90%);
  transform: perspective(400px) rotateX(10deg);
  animation: sc1-pursue 1.2s ease-in-out infinite alternate;
}
.scn-second-charge-king-flees .fleeing-figures {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 35px;
  background: repeating-linear-gradient(90deg, #2a2010 6px, #3a2818 8px, transparent 2px);
  -webkit-mask: linear-gradient(90deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  mask: linear-gradient(90deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  animation: sc1-flee 1s ease-in-out infinite;
}
.scn-second-charge-king-flees .sunburst {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffdd88 0%, #ffb040 30%, transparent 100%);
  filter: blur(4px);
  animation: sc1-sun 8s ease-in-out infinite alternate;
}
.scn-second-charge-king-flees .trampled-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #3a4a2a 0%, #5a6a3a 50%, transparent 100%);
  animation: sc1-ground 3s ease-in-out infinite alternate;
}
.scn-second-charge-king-flees .spark-dust {
  position: absolute; bottom: 35%; left: 10%; width: 6px; height: 6px;
  background: #ffd080; border-radius: 50%;
  box-shadow: 20px 10px 0 #ffc060, 40px -5px 0 #ffb040, 60px 15px 0 #ffd080, 80px 0 0 #ffb040;
  animation: sc1-spark 0.8s ease-in-out infinite alternate;
}
.scn-second-charge-king-flees .shadow-long {
  position: absolute; bottom: 0; left: 10%; right: 0; height: 50%;
  background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, transparent 60%);
  animation: sc1-long 5s ease-in-out infinite alternate;
}
@keyframes sc1-bright { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes sc1-pursue { 0% { transform: perspective(400px) rotateX(10deg) translateX(0); } 50% { transform: perspective(400px) rotateX(10deg) translateX(10px); } 100% { transform: perspective(400px) rotateX(10deg) translateX(0); } }
@keyframes sc1-flee { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }
@keyframes sc1-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.2) translateY(-5px); } 100% { transform: scale(1) translateY(0); } }
@keyframes sc1-ground { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes sc1-spark { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes sc1-long { 0% { opacity: 0.2; } 100% { opacity: 0.4; } }

/* --- generals-captured (dim-interior, dark) --- */
.scn-generals-captured {
  background:
    radial-gradient(ellipse 80% 60% at 30% 20%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1010 0%, #2a1818 30%, #1a0e0e 70%, #0d0808 100%);
}
.scn-generals-captured .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1818 0%, #1a0a0a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.7);
}
.scn-generals-captured .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e08 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-generals-captured .doorway {
  position: absolute; bottom: 20%; left: 50%; width: 90px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0d0606 0%, #1a0a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
}
.scn-generals-captured .torch-flame {
  position: absolute; bottom: 55%; left: 25%; width: 12px; height: 24px;
  background: radial-gradient(ellipse, #ffa040 0%, #e06020 40%, #802010 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #ff8030, 0 0 80px 24px rgba(200,80,20,.3);
  animation: gc-torch 2s ease-in-out infinite alternate;
}
.scn-generals-captured .shadow-fig {
  position: absolute; bottom: 20%; left: 42%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #0a0505 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gc-enter 6s ease-in-out infinite;
}
.scn-generals-captured .spear {
  position: absolute; bottom: 22%; left: 32%; width: 3px; height: 52px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  transform: rotate(-12deg);
  border-radius: 20%;
  animation: gc-spear 4s ease-in-out infinite;
}
.scn-generals-captured .dust-mote {
  position: absolute; top: 30%; left: 60%; width: 4px; height: 4px;
  background: rgba(200,160,120,.15);
  border-radius: 50%;
  filter: blur(2px);
  animation: gc-drift 12s linear infinite;
}
@keyframes gc-torch {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; }
  50% { transform: scaleY(1.15) scaleX(.85); opacity: 1; }
  100% { transform: scaleY(.9) scaleX(1.1); opacity: .75; }
}
@keyframes gc-enter {
  0% { transform: translateX(0) translateY(0) rotate(0); opacity: .3; }
  25% { transform: translateX(8px) translateY(-2px) rotate(1deg); opacity: .9; }
  50% { transform: translateX(16px) translateY(0) rotate(0); opacity: 1; }
  75% { transform: translateX(24px) translateY(-1px) rotate(-1deg); opacity: .9; }
  100% { transform: translateX(32px) translateY(0) rotate(0); opacity: .4; }
}
@keyframes gc-spear {
  0% { transform: rotate(-12deg) translate(0,0); }
  50% { transform: rotate(-8deg) translate(1px,-2px); }
  100% { transform: rotate(-14deg) translate(0,0); }
}
@keyframes gc-drift {
  0% { transform: translate(0, 0); opacity: 0; }
  20% { opacity: .4; }
  80% { opacity: .3; }
  100% { transform: translate(-40px, -30px); opacity: 0; }
}

/* --- nicarchus-reports (sunlit, dark) --- */
.scn-nicarchus-reports {
  background:
    radial-gradient(ellipse 120% 80% at 50% 0%, #c8b8a0 0%, #a09070 40%, #6a5a4a 100%),
    linear-gradient(180deg, #d4c8b0 0%, #b8a888 50%, #8a7a64 100%);
}
.scn-nicarchus-reports .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c8b090 0%, #e0d0b8 40%, #f0e4d0 100%);
  animation: nr-sky 20s ease-in-out infinite alternate;
}
.scn-nicarchus-reports .dust-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.15);
}
.scn-nicarchus-reports .figure-body {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: center bottom;
  animation: nr-run 2s ease-in-out infinite;
}
.scn-nicarchus-reports .wound-gash {
  position: absolute; bottom: 40%; left: 44%; width: 10px; height: 8px;
  background: radial-gradient(ellipse, #5a1a1a 0%, #8a2a2a 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(120,30,30,.5);
  animation: nr-wound 1.5s ease-in-out infinite alternate;
}
.scn-nicarchus-reports .arm-fling {
  position: absolute; bottom: 42%; left: 36%; width: 16px; height: 5px;
  background: linear-gradient(90deg, #4a3020 0%, #5a4030 100%);
  border-radius: 40%;
  transform-origin: 100% 50%;
  animation: nr-arm 1.8s ease-in-out infinite;
}
.scn-nicarchus-reports .shadow-pool {
  position: absolute; bottom: 18%; left: 36%; width: 50px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: nr-shadow 2s ease-in-out infinite;
}
.scn-nicarchus-reports .speckle {
  position: absolute; top: 20%; left: 20%; width: 3px; height: 3px;
  background: rgba(80,60,40,.12);
  border-radius: 50%;
  filter: blur(1px);
  animation: nr-drift 25s linear infinite;
}
@keyframes nr-sky {
  0% { opacity: .7; background-position: 0 0; }
  50% { opacity: .9; }
  100% { opacity: .75; background-position: -20px 10px; }
}
@keyframes nr-run {
  0% { transform: translate(0, 0) rotate(-2deg) scaleX(1); }
  25% { transform: translate(8px, -3px) rotate(0) scaleX(1.05); }
  50% { transform: translate(16px, 0) rotate(2deg) scaleX(.95); }
  75% { transform: translate(24px, -4px) rotate(0) scaleX(1.03); }
  100% { transform: translate(32px, 0) rotate(-1deg) scaleX(1); }
}
@keyframes nr-wound {
  0% { transform: scale(1); opacity: .6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(.9); opacity: .7; }
}
@keyframes nr-arm {
  0% { transform: rotate(30deg) translate(0, 0); }
  50% { transform: rotate(50deg) translate(2px, -4px); }
  100% { transform: rotate(25deg) translate(0, 0); }
}
@keyframes nr-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: .5; }
  50% { transform: scaleX(1.2) scaleY(.8); opacity: .7; }
  100% { transform: scaleX(.95) scaleY(1.1); opacity: .4; }
}
@keyframes nr-drift {
  0% { transform: translate(0, 0); opacity: 0; }
  20% { opacity: .3; }
  80% { opacity: .25; }
  100% { transform: translate(60px, -40px); opacity: 0; }
}

/* --- ariaeus-demands-arms (sunlit, tense) --- */
.scn-ariaeus-demands-arms {
  background:
    radial-gradient(ellipse 140% 60% at 30% 0%, #f0d8b8 0%, #d4bc98 40%, #8a7050 100%),
    linear-gradient(180deg, #e8d4b8 0%, #c8b090 50%, #a08868 100%);
}
.scn-ariaeus-demands-arms .horizon {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #f0e0c8 50%, #d8c4a8 100%);
  animation: ad-sky 30s ease-in-out infinite alternate;
}
.scn-ariaeus-demands-arms .sand-dune {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c8a880 0%, #a08058 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.1);
}
.scn-ariaeus-demands-arms .general-left {
  position: absolute; bottom: 25%; left: 35%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: ad-tension 3s ease-in-out infinite;
}
.scn-ariaeus-demands-arms .general-right {
  position: absolute; bottom: 25%; right: 32%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: ad-tension 3s ease-in-out infinite reverse;
}
.scn-ariaeus-demands-arms .horse-shape {
  position: absolute; bottom: 20%; left: 55%; width: 45px; height: 30px;
  background: linear-gradient(180deg, #7a6048 0%, #5a4030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ad-horse 5s ease-in-out infinite;
}
.scn-ariaeus-demands-arms .dust-plume {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 18px;
  background: radial-gradient(ellipse, rgba(180,150,110,.3) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ad-dust 4s ease-in-out infinite;
}
.scn-ariaeus-demands-arms .sun-glare {
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,230,170,.4) 0%, rgba(255,200,120,.15) 40%, transparent 70%);
  border-radius: 50%;
  animation: ad-glare 8s ease-in-out infinite alternate;
}
.scn-ariaeus-demands-arms .spear-tip {
  position: absolute; bottom: 30%; left: 30%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2210 100%);
  transform: rotate(-8deg);
  border-radius: 10%;
  animation: ad-spear 2.5s ease-in-out infinite;
}
@keyframes ad-sky {
  0% { opacity: .7; background-position: 0 0; }
  50% { opacity: .95; }
  100% { opacity: .8; background-position: 30px 0; }
}
@keyframes ad-tension {
  0% { transform: translate(0, 0) rotate(0); }
  25% { transform: translate(2px, -2px) rotate(1deg); }
  50% { transform: translate(0, 0) rotate(0); }
  75% { transform: translate(-2px, -3px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0); }
}
@keyframes ad-horse {
  0% { transform: translate(0, 0) scaleX(1); }
  25% { transform: translate(3px, -2px) scaleX(1.02); }
  50% { transform: translate(0, 0) scaleX(.98); }
  75% { transform: translate(-2px, -1px) scaleX(1.01); }
  100% { transform: translate(0, 0) scaleX(1); }
}
@keyframes ad-dust {
  0% { transform: scale(1) translate(0, 0); opacity: .2; }
  50% { transform: scale(1.3) translate(5px, -8px); opacity: .5; }
  100% { transform: scale(1.1) translate(0, -3px); opacity: .2; }
}
@keyframes ad-glare {
  0% { transform: scale(1); opacity: .4; }
  50% { transform: scale(1.2); opacity: .7; }
  100% { transform: scale(.95); opacity: .5; }
}
@keyframes ad-spear {
  0% { transform: rotate(-8deg) translate(0,0); }
  50% { transform: rotate(-5deg) translate(1px,-3px); }
  100% { transform: rotate(-10deg) translate(0,0); }
}

/* --- cleanor-rebukes-ariaeus (sunlit, tense) --- */
.scn-cleanor-rebukes-ariaeus {
  background:
    radial-gradient(ellipse 130% 60% at 20% 0%, #f0dcc0 0%, #d4bea0 40%, #8a7058 100%),
    linear-gradient(180deg, #e8d4b8 0%, #c8b090 50%, #9a8068 100%);
}
.scn-cleanor-rebukes-ariaeus .sky-blaze {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e0c8a8 0%, #f0dcc0 40%, #f8e8d0 100%);
  animation: cr-blaze 15s ease-in-out infinite alternate;
}
.scn-cleanor-rebukes-ariaeus .ground-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8a080 0%, #90785a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 15px 35px rgba(0,0,0,.12);
}
.scn-cleanor-rebukes-ariaeus .cleanor-fig {
  position: absolute; bottom: 24%; left: 38%; width: 30px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 38% 38% 28% 28% / 48% 48% 28% 28%;
  transform-origin: bottom center;
  animation: cr-accuse 4s ease-in-out infinite;
}
.scn-cleanor-rebukes-ariaeus .ariaeus-fig {
  position: absolute; bottom: 24%; right: 32%; width: 28px; height: 54px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 38% 38% 28% 28% / 48% 48% 28% 28%;
  transform-origin: bottom center;
  animation: cr-recoil 4s ease-in-out infinite;
}
.scn-cleanor-rebukes-ariaeus .shadow-stretch {
  position: absolute; bottom: 15%; left: 30%; width: 70px; height: 16px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 80%);
  border-radius: 50%;
  animation: cr-shadow 4s ease-in-out infinite;
}
.scn-cleanor-rebukes-ariaeus .dust-swirl {
  position: absolute; bottom: 20%; left: 48%; width: 20px; height: 14px;
  background: radial-gradient(ellipse, rgba(180,150,110,.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cr-swirl 5s ease-in-out infinite;
}
.scn-cleanor-rebukes-ariaeus .spear-pair {
  position: absolute; bottom: 28%; left: 28%; width: 2px; height: 44px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  transform: rotate(-6deg);
  border-radius: 10%;
  animation: cr-spear 3s ease-in-out infinite;
}
@keyframes cr-blaze {
  0% { opacity: .7; background-position: 0 0; }
  50% { opacity: .95; }
  100% { opacity: .75; background-position: -30px 10px; }
}
@keyframes cr-accuse {
  0% { transform: translate(0, 0) rotate(0) scaleY(1); }
  20% { transform: translate(3px, -2px) rotate(2deg) scaleY(1.02); }
  40% { transform: translate(0, 0) rotate(0) scaleY(1); }
  60% { transform: translate(-2px, -3px) rotate(-1deg) scaleY(.98); }
  80% { transform: translate(1px, -1px) rotate(1deg) scaleY(1.01); }
  100% { transform: translate(0, 0) rotate(0) scaleY(1); }
}
@keyframes cr-recoil {
  0% { transform: translate(0, 0) rotate(0); }
  25% { transform: translate(-3px, -2px) rotate(-1deg); }
  50% { transform: translate(-1px, 0) rotate(0); }
  75% { transform: translate(-4px, -3px) rotate(-2deg); }
  100% { transform: translate(0, 0) rotate(0); }
}
@keyframes cr-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: .4; }
  50% { transform: scaleX(1.15) scaleY(.85); opacity: .6; }
  100% { transform: scaleX(.95) scaleY(1.05); opacity: .3; }
}
@keyframes cr-swirl {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  30% { opacity: .3; }
  60% { transform: translate(8px, -12px) scale(1.3); opacity: .4; }
  100% { transform: translate(0, -5px) scale(1.1); opacity: 0; }
}
@keyframes cr-spear {
  0% { transform: rotate(-6deg) translate(0,0); }
  50% { transform: rotate(-3deg) translate(1px,-4px); }
  100% { transform: rotate(-8deg) translate(0,0); }
}

.scn-miraculous-ford {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b87a 40%, #9a7b4f 100%), radial-gradient(ellipse at 70% 20%, #ffe9a0 0%, transparent 60%);
}
.scn-miraculous-ford .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0d9a0 100%); animation: mf-sky 12s ease-in-out infinite alternate; }
.scn-miraculous-ford .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff4c0 0%, #ffe680 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 20px #ffe680; animation: mf-sunglow 4s ease-in-out infinite alternate; }
.scn-miraculous-ford .river { position:absolute; bottom:30%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #6b8e8e 0%, #4f6f6f 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 4px 10px rgba(0,0,0,.3); animation: mf-flow 8s ease-in-out infinite; }
.scn-miraculous-ford .bank { position:absolute; bottom:45%; left:0; right:0; height:15%; background: linear-gradient(180deg, #c4a265 0%, #8b7340 100%); border-radius: 50% 20% 0 0 / 100% 40% 0 0; }
.scn-miraculous-ford .horse-figure { position:absolute; bottom:38%; left:30%; width:60px; height:60px; background: radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mf-horse 6s ease-in-out infinite; }
.scn-miraculous-ford .courtier { position:absolute; bottom:28%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 40% 40% 60%; transform-origin: bottom center; animation: mf-bow 6s ease-in-out infinite; }
.scn-miraculous-ford .reeds { position:absolute; bottom:40%; left:5%; width:20px; height:80px; background: linear-gradient(180deg, #6b8e23 0%, #4a5d23 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: mf-sway 4s ease-in-out infinite alternate; }
.scn-miraculous-ford .ripple-a { position:absolute; bottom:32%; left:15%; width:40px; height:4px; background: rgba(255,255,255,.3); border-radius:50%; filter: blur(2px); animation: mf-ripple 6s ease-in-out infinite; }
.scn-miraculous-ford .ripple-b { position:absolute; bottom:36%; right:20%; width:30px; height:3px; background: rgba(255,255,255,.2); border-radius:50%; filter: blur(2px); animation: mf-ripple 5s ease-in-out infinite reverse; }

@keyframes mf-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mf-sunglow { 0% { transform: scale(1); box-shadow: 0 0 60px 15px #ffe680 } 50% { transform: scale(1.05); box-shadow: 0 0 100px 30px #ffed9a } 100% { transform: scale(.98); box-shadow: 0 0 70px 20px #ffe680 } }
@keyframes mf-flow { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(3px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes mf-horse { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(10px) rotate(2deg) } 60% { transform: translateX(20px) rotate(-1deg) } 100% { transform: translateX(30px) rotate(0) } }
@keyframes mf-bow { 0% { transform: rotate(0) } 30% { transform: rotate(20deg) translateY(2px) } 60% { transform: rotate(10deg) } 100% { transform: rotate(0) } }
@keyframes mf-sway { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes mf-ripple { 0% { transform: scaleX(1); opacity:.3 } 50% { transform: scaleX(1.5); opacity:.1 } 100% { transform: scaleX(1); opacity:.3 } }

.scn-desert-plain-wild-game {
  background: linear-gradient(180deg, #f0e0b0 0%, #d4b87a 50%, #a08550 100%), radial-gradient(ellipse at 50% 0%, #ffe9a0 0%, transparent 70%);
}
.scn-desert-plain-wild-game .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #e0c880 100%); animation: dp-sky 15s ease-in-out infinite alternate; }
.scn-desert-plain-wild-game .horizon { position:absolute; bottom:50%; left:0; right:0; height:2px; background: #8b7340; box-shadow: 0 0 4px rgba(0,0,0,.3); }
.scn-desert-plain-wild-game .plain-far { position:absolute; bottom:32%; left:0; right:0; height:18%; background: linear-gradient(180deg, #c4a265 0%, #9a7b4f 100%); border-radius: 20% 20% 0 0; animation: dp-plain 20s ease-in-out infinite; }
.scn-desert-plain-wild-game .plain-near { position:absolute; bottom:0; left:-10%; right:-10%; height:35%; background: linear-gradient(180deg, #a08550 0%, #7a5e3a 100%); border-radius: 30% 0 0 0; transform-origin: bottom left; animation: dp-plain-near 25s ease-in-out infinite; }
.scn-desert-plain-wild-game .absinth-a { position:absolute; bottom:33%; left:15%; width:14px; height:30px; background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 6px rgba(90,122,42,.4); animation: dp-absinth 4s ease-in-out infinite; }
.scn-desert-plain-wild-game .absinth-b { position:absolute; bottom:28%; left:40%; width:12px; height:25px; background: linear-gradient(180deg, #6a8a3a 0%, #4a6a1a 100%); border-radius: 50% 50% 20% 20%; animation: dp-absinth 5s ease-in-out infinite reverse; }
.scn-desert-plain-wild-game .absinth-c { position:absolute; bottom:36%; left:70%; width:10px; height:28px; background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%); border-radius: 50% 50% 20% 20%; animation: dp-absinth 3.5s ease-in-out infinite; }
.scn-desert-plain-wild-game .rider-distant { position:absolute; bottom:40%; left:60%; width:16px; height:24px; background: #2a1a0a; border-radius: 50% 50% 30% 30%; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: dp-rider 30s linear infinite; }

@keyframes dp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dp-plain { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes dp-plain-near { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-5px) scaleY(1.01) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes dp-absinth { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes dp-rider { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) } 100% { transform: translateX(0) } }

.scn-hunting-wild-asses {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b87a 40%, #a08550 100%), radial-gradient(ellipse at 80% 30%, #ffe9a0 0%, transparent 60%);
}
.scn-hunting-wild-asses .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #e0c880 100%); animation: hw-sky 10s ease-in-out infinite alternate; }
.scn-hunting-wild-asses .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #c4a265 0%, #7a5e3a 100%); border-radius: 20% 20% 0 0; }
.scn-hunting-wild-asses .horseman-a { position:absolute; bottom:20%; left:10%; width:50px; height:40px; background: radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: hw-chase 3s ease-in-out infinite; }
.scn-hunting-wild-asses .horseman-b { position:absolute; bottom:20%; left:50%; width:45px; height:38px; background: radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: hw-chase 3.5s ease-in-out infinite reverse; }
.scn-hunting-wild-asses .wild-ass-a { position:absolute; bottom:25%; left:30%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 50%, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: hw-ass 2.5s ease-in-out infinite; }
.scn-hunting-wild-asses .wild-ass-b { position:absolute; bottom:25%; left:70%; width:35px; height:28px; background: radial-gradient(ellipse at 50% 50%, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: hw-ass 3s ease-in-out infinite alternate; }
.scn-hunting-wild-asses .dust-cloud { position:absolute; bottom:26%; left:20%; width:80px; height:16px; background: radial-gradient(ellipse, rgba(200,180,140,.6) 0%, rgba(200,180,140,0) 70%); filter: blur(4px); animation: hw-dust 2s ease-in-out infinite alternate; }

@keyframes hw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hw-chase { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes hw-ass { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(10px) rotate(-3deg) } 60% { transform: translateX(20px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hw-dust { 0% { transform: scaleX(.8); opacity:.5 } 50% { transform: scaleX(1.2); opacity:.7 } 100% { transform: scaleX(.8); opacity:.5 } }

.scn-ostriches-bustards {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b87a 40%, #a08550 100%), radial-gradient(ellipse at 60% 10%, #ffe9a0 0%, transparent 70%);
}
.scn-ostriches-bustards .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #e0c880 100%); animation: ob-sky 14s ease-in-out infinite alternate; }
.scn-ostriches-bustards .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #c4a265 0%, #7a5e3a 100%); border-radius: 30% 30% 0 0; }
.scn-ostriches-bustards .ostrich { position:absolute; bottom:20%; left:20%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ob-ostrich 2s ease-in-out infinite; }
.scn-ostriches-bustards .rider { position:absolute; bottom:35%; left:55%; width:20px; height:30px; background: #2a1a0a; border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: ob-rider 3s ease-in-out infinite; }
.scn-ostriches-bustards .horse { position:absolute; bottom:22%; left:52%; width:50px; height:40px; background: radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: ob-horse 3s ease-in-out infinite; }
.scn-ostriches-bustards .dust-puff-a { position:absolute; bottom:22%; left:15%; width:30px; height:10px; background: rgba(200,180,140,.5); border-radius:50%; filter: blur(3px); animation: ob-dust 1.5s ease-in-out infinite; }
.scn-ostriches-bustards .dust-puff-b { position:absolute; bottom:22%; left:50%; width:40px; height:12px; background: rgba(200,180,140,.4); border-radius:50%; filter: blur(3px); animation: ob-dust 2s ease-in-out infinite reverse; }
.scn-ostriches-bustards .bush { position:absolute; bottom:18%; left:75%; width:40px; height:30px; background: linear-gradient(180deg, #5a7a2a 0%, #3a5a1a 100%); border-radius: 50% 50% 30% 30%; animation: ob-sway 4s ease-in-out infinite alternate; }

@keyframes ob-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ob-ostrich { 0% { transform: translateX(0) rotate(-2deg) scaleX(.9) } 30% { transform: translateX(12px) rotate(3deg) scaleX(1) } 60% { transform: translateX(24px) rotate(-1deg) scaleX(.95) } 100% { transform: translateX(0) rotate(0) scaleX(.9) } }
@keyframes ob-rider { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ob-horse { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes ob-dust { 0% { transform: scaleX(1); opacity:.4 } 50% { transform: scaleX(1.5); opacity:.6 } 100% { transform: scaleX(1); opacity:.4 } }
@keyframes ob-sway { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

.scn-clearchus-returns-asks-phalinus {
  background: linear-gradient(180deg, #e8d5b0 0%, #c8a87a 40%, #a08050 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-clearchus-returns-asks-phalinus .sky-sun { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #ffe8c0 0%, #f0d090 100%); animation: ca1-sky 6s ease-in-out infinite alternate; }
.scn-clearchus-returns-asks-phalinus .sun { position: absolute; top: 10%; left: 70%; width: 60px; height: 60px; background: radial-gradient(circle, #fff0d0 0%, #f0c060 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(240,192,96,0.5); animation: ca1-sun 12s ease-in-out infinite; }
.scn-clearchus-returns-asks-phalinus .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #b09060 0%, #7a6030 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.4); }
.scn-clearchus-returns-asks-phalinus .tent { position: absolute; bottom: 25%; left: 15%; width: 120px; height: 100px; background: linear-gradient(135deg, #d4b080 0%, #a08050 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); box-shadow: 10px 0 20px rgba(0,0,0,0.3); animation: ca1-tent 8s ease-in-out infinite; }
.scn-clearchus-returns-asks-phalinus .figure-clearchus { position: absolute; bottom: 20%; left: 40%; width: 24px; height: 50px; background: linear-gradient(180deg, #2a2218 0%, #151005 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca1-walk 4s ease-in-out infinite; }
.scn-clearchus-returns-asks-phalinus .figure-phalinus { position: absolute; bottom: 20%; left: 55%; width: 22px; height: 48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca1-stand 5s ease-in-out infinite alternate; }
.scn-clearchus-returns-asks-phalinus .spear { position: absolute; bottom: 22%; left: 62%; width: 3px; height: 60px; background: linear-gradient(180deg, #8a7050 0%, #4a3a20 100%); border-radius: 2px; transform: rotate(-10deg); animation: ca1-spear 3s ease-in-out infinite; }
.scn-clearchus-returns-asks-phalinus .shadow-hard { position: absolute; bottom: 15%; left: 35%; width: 80px; height: 6px; background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius: 50%; animation: ca1-shadow 6s ease-in-out infinite; }
@keyframes ca1-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ca1-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-2px) } 100% { transform: scale(0.95) translateY(0) } }
@keyframes ca1-tent { 0% { transform: skewX(0deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-1deg) } }
@keyframes ca1-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(2deg) } 75% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ca1-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ca1-spear { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-12deg) } }
@keyframes ca1-shadow { 0% { width: 60px } 50% { width: 80px } 100% { width: 70px } }

.scn-phalinus-advises-surrender {
  background: linear-gradient(180deg, #d4b488 0%, #b09060 50%, #806040 100%), radial-gradient(ellipse at 30% 40%, #e0c898 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-phalinus-advises-surrender .tent-interior { position: absolute; inset: 10% 20% 15% 15%; background: linear-gradient(135deg, #c8a878 0%, #987048 100%); border-radius: 10% / 20%; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); animation: pa2-tent 10s ease-in-out infinite alternate; }
.scn-phalinus-advises-surrender .tent-pole { position: absolute; top: 8%; left: 50%; width: 6px; height: 80%; background: linear-gradient(180deg, #a08050 0%, #604020 100%); transform: translateX(-50%); }
.scn-phalinus-advises-surrender .figure-phalinus-close { position: absolute; bottom: 25%; left: 30%; width: 36px; height: 64px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa2-phal 4s ease-in-out infinite; }
.scn-phalinus-advises-surrender .hand-gesture { position: absolute; bottom: 30%; left: 38%; width: 12px; height: 18px; background: radial-gradient(circle, #5a4a3a 0%, #2a1a10 100%); border-radius: 40%; transform-origin: bottom; animation: pa2-hand 2s ease-in-out infinite; }
.scn-phalinus-advises-surrender .figure-clearchus-back { position: absolute; bottom: 20%; right: 25%; width: 28px; height: 56px; background: linear-gradient(180deg, #2a2218 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); opacity: 0.6; animation: pa2-walk 8s ease-in-out infinite; }
.scn-phalinus-advises-surrender .shadow-stripe { position: absolute; bottom: 15%; left: 20%; width: 120px; height: 8px; background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 50%, transparent 100%); border-radius: 50%; animation: pa2-stripe 6s ease-in-out infinite; }
.scn-phalinus-advises-surrender .spear-2 { position: absolute; bottom: 22%; right: 20%; width: 3px; height: 70px; background: linear-gradient(180deg, #8a7050 0%, #4a3a20 100%); border-radius: 2px; transform: rotate(5deg); animation: pa2-spear 3s ease-in-out infinite; }
@keyframes pa2-tent { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes pa2-phal { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-4px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-2px) rotate(0deg) } }
@keyframes pa2-hand { 0% { transform: rotate(0deg) translate(0,0) } 50% { transform: rotate(15deg) translate(3px,-3px) } 100% { transform: rotate(0deg) translate(0,0) } }
@keyframes pa2-walk { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes pa2-stripe { 0% { left: 20% } 50% { left: 30% } 100% { left: 20% } }
@keyframes pa2-spear { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(3deg) } }

.scn-clearchus-final-answer {
  background: linear-gradient(180deg, #f0d8a0 0%, #d4b488 40%, #a08050 100%), radial-gradient(ellipse at 70% 10%, #ffe8c0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-clearchus-final-answer .sky-bright { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #ffe0b0 0%, #f0c880 100%); animation: ca3-sky 8s ease-in-out infinite alternate; }
.scn-clearchus-final-answer .sun-flare { position: absolute; top: 5%; left: 80%; width: 100px; height: 100px; background: radial-gradient(circle, #fff5d0 0%, #f0d080 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 120px 60px rgba(240,208,128,0.4); animation: ca3-flare 12s ease-in-out infinite; }
.scn-clearchus-final-answer .ground-dark { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #8a7050 0%, #4a3010 100%); box-shadow: inset 0 15px 20px rgba(0,0,0,0.6); }
.scn-clearchus-final-answer .figure-clearchus-standing { position: absolute; bottom: 15%; left: 50%; width: 30px; height: 70px; background: linear-gradient(180deg, #1a1510 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom center; animation: ca3-stand 6s ease-in-out infinite; }
.scn-clearchus-final-answer .shield { position: absolute; bottom: 18%; left: 46%; width: 22px; height: 30px; background: radial-gradient(circle at 40% 50%, #c8553d 0%, #8a3020 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-10deg); box-shadow: 4px 4px 8px rgba(0,0,0,0.5); animation: ca3-shield 4s ease-in-out infinite; }
.scn-clearchus-final-answer .spear-3 { position: absolute; bottom: 20%; left: 52%; width: 3px; height: 80px; background: linear-gradient(180deg, #8a7050 0%, #4a3a20 100%); border-radius: 2px; transform: rotate(8deg); animation: ca3-spear 5s ease-in-out infinite; }
.scn-clearchus-final-answer .shadow-long { position: absolute; bottom: 5%; left: 40%; width: 100px; height: 8px; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 50%; animation: ca3-shadow 7s ease-in-out infinite; }
@keyframes ca3-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ca3-flare { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }
@keyframes ca3-stand { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-5px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ca3-shield { 0% { transform: rotate(-10deg) translate(0,0) } 50% { transform: rotate(-14deg) translate(2px,-2px) } 100% { transform: rotate(-10deg) translate(0,0) } }
@keyframes ca3-spear { 0% { transform: rotate(8deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(6deg) } }
@keyframes ca3-shadow { 0% { width: 100px; left: 40% } 50% { width: 120px; left: 35% } 100% { width: 100px; left: 40% } }

.scn-clearchus-equivocates {
  background: linear-gradient(180deg, #dcc8a0 0%, #b8a078 50%, #8a7050 100%), radial-gradient(ellipse at 40% 80%, #e8d0a0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-clearchus-equivocates .sky-warm { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #f0d8a0 0%, #e0c088 100%); animation: ca4-sky 8s ease-in-out infinite alternate; }
.scn-clearchus-equivocates .ground-brown { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #a08050 0%, #604020 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); }
.scn-clearchus-equivocates .figure-left { position: absolute; bottom: 25%; left: 30%; width: 26px; height: 52px; background: linear-gradient(180deg, #2a2218 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca4-left 4s ease-in-out infinite; }
.scn-clearchus-equivocates .figure-right { position: absolute; bottom: 25%; left: 55%; width: 26px; height: 52px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca4-right 5s ease-in-out infinite; }
.scn-clearchus-equivocates .truce-line { position: absolute; bottom: 22%; left: 45%; width: 4px; height: 40px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); box-shadow: 0 0 6px rgba(192,160,96,0.5); animation: ca4-line 6s ease-in-out infinite; }
.scn-clearchus-equivocates .hands { position: absolute; bottom: 30%; left: 44%; width: 16px; height: 20px; background: radial-gradient(circle at 50% 50%, #5a4a3a 0%, #2a1a10 100%); border-radius: 40%; transform: rotate(-5deg); animation: ca4-hands 3s ease-in-out infinite; }
.scn-clearchus-equivocates .banner { position: absolute; top: 15%; left: 5%; width: 50px; height: 30px; background: linear-gradient(180deg, #c8553d 0%, #a04028 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); box-shadow: 2px 2px 10px rgba(0,0,0,0.3); animation: ca4-banner 12s ease-in-out infinite; }
@keyframes ca4-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ca4-left { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-5px) rotate(-3deg) } 70% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ca4-right { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(3deg) } 70% { transform: translateX(-5px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ca4-line { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(0.9) } }
@keyframes ca4-hands { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes ca4-banner { 0% { transform: skewX(0deg) } 50% { transform: skewX(5deg) } 100% { transform: skewX(-3deg) } }

/* marsyas-river-story */
.scn-marsyas-river-story { background: linear-gradient(180deg, #7ec8e3 0%, #c3d9c0 40%, #8aa67a 100%), radial-gradient(ellipse at 30% 20%, #fff9e0 0%, transparent 60%); }
.scn-marsyas-river-story .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #d4eef7 0%, #aad0e6 100%); animation: mr-sky 20s ease-in-out infinite alternate; }
.scn-marsyas-river-story .hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b8e5a 0%, #4d6b3e 100%); border-radius: 30% 50% 0 0 / 60% 70% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.3); animation: mr-hills 25s ease-in-out infinite alternate; }
.scn-marsyas-river-story .river { position:absolute; bottom:22%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #4a7a9a 0%, #2c5a7a 50%, #1a3a5a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; animation: mr-river 12s ease-in-out infinite alternate; }
.scn-marsyas-river-story .palace { position:absolute; bottom:42%; left:55%; width:80px; height:50px; background: linear-gradient(180deg, #d4b48a 0%, #a08060 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: mr-palace 8s ease-in-out infinite; }
.scn-marsyas-river-story .tree-a { position:absolute; bottom:38%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #4d6b3e 0%, #2a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mr-tree 15s ease-in-out infinite alternate; }
.scn-marsyas-river-story .tree-b { position:absolute; bottom:40%; right:15%; width:16px; height:35px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mr-tree 18s ease-in-out infinite alternate-reverse; }
.scn-marsyas-river-story .figure { position:absolute; bottom:28%; left:40%; width:14px; height:30px; background: linear-gradient(180deg, #c8a080 0%, #8a6a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: mr-figure 4s ease-in-out infinite; }
.scn-marsyas-river-story .sunlight { position:absolute; top:10%; left:30%; width:100px; height:60px; background: radial-gradient(ellipse, rgba(255,240,180,0.4) 0%, transparent 70%); filter: blur(12px); animation: mr-sun 6s ease-in-out infinite alternate; }
@keyframes mr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mr-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes mr-river { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mr-palace { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mr-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes mr-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-46%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-42%) translateY(0) rotate(0deg) } 75% { transform: translateX(-38%) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-34%) translateY(0) rotate(0deg) } }
@keyframes mr-sun { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(1) } }

/* xerxes-palace-celaenae */
.scn-xerxes-palace-celaenae { background: linear-gradient(180deg, #b8d4c8 0%, #8cb0a0 50%, #5a7a6a 100%), radial-gradient(ellipse at 50% 30%, #e0f0e0 0%, transparent 60%); }
.scn-xerxes-palace-celaenae .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d8ecd8 0%, #b8d4c0 100%); animation: xp-sky 15s ease-in-out infinite alternate; }
.scn-xerxes-palace-celaenae .mountain { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a6a 0%, #3a5a3a 100%); border-radius: 20% 30% 0 0 / 50% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: xp-mountain 20s ease-in-out infinite alternate; }
.scn-xerxes-palace-celaenae .citadel { position:absolute; bottom:50%; left:50%; width:90px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: xp-citadel 10s ease-in-out infinite; }
.scn-xerxes-palace-celaenae .wall-left { position:absolute; bottom:45%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #806050 0%, #503020 100%); border-radius: 4% 0 0 4%; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); animation: xp-wall 8s ease-in-out infinite alternate; }
.scn-xerxes-palace-celaenae .wall-right { position:absolute; bottom:45%; right:30%; width:40px; height:50px; background: linear-gradient(180deg, #806050 0%, #503020 100%); border-radius: 0 4% 4% 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.3); animation: xp-wall 8s ease-in-out infinite alternate-reverse; }
.scn-xerxes-palace-celaenae .gate { position:absolute; bottom:42%; left:47%; width:16px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,.5); animation: xp-gate 6s ease-in-out infinite; }
.scn-xerxes-palace-celaenae .flag-a { position:absolute; bottom:68%; left:48%; width:16px; height:20px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 0 0; transform-origin: bottom; animation: xp-flag 5s ease-in-out infinite; }
.scn-xerxes-palace-celaenae .flag-b { position:absolute; bottom:68%; left:52%; width:16px; height:20px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 0 0; transform-origin: bottom; animation: xp-flag 5s ease-in-out infinite -2s; }
@keyframes xp-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes xp-mountain { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes xp-citadel { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes xp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes xp-gate { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes xp-flag { 0% { transform: rotate(-5deg) } 25% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 75% { transform: rotate(0deg) } 100% { transform: rotate(-5deg) } }

/* review-in-park */
.scn-review-in-park { background: linear-gradient(180deg, #c4d2b0 0%, #9ab880 40%, #7a9a60 100%), radial-gradient(ellipse at 20% 80%, #e8f4d0 0%, transparent 70%); }
.scn-review-in-park .ground { position:absolute; bottom:20%; left:0; right:0; height:80%; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); animation: rp-ground 30s ease-in-out infinite alternate; }
.scn-review-in-park .dais { position:absolute; bottom:25%; left:50%; width:60px; height:18px; transform: translateX(-50%); background: linear-gradient(180deg, #a08050 0%, #806040 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: rp-dais 10s ease-in-out infinite; }
.scn-review-in-park .figure-cyrus { position:absolute; bottom:30%; left:47%; width:16px; height:32px; transform: translateX(-50%); background: linear-gradient(180deg, #d4b080 0%, #a08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rp-cyrus 4s ease-in-out infinite; }
.scn-review-in-park .hoplite-a { position:absolute; bottom:24%; left:30%; width:12px; height:28px; background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: rp-hoplite 6s ease-in-out infinite; }
.scn-review-in-park .hoplite-b { position:absolute; bottom:24%; left:40%; width:12px; height:28px; background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: rp-hoplite 6s ease-in-out infinite -1s; }
.scn-review-in-park .hoplite-c { position:absolute; bottom:24%; left:50%; width:12px; height:28px; transform: translateX(-50%); background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: rp-hoplite 6s ease-in-out infinite -2s; }
.scn-review-in-park .treeline { position:absolute; bottom:50%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%); border-radius: 50% 50% 0 0; filter: blur(8px); animation: rp-tree 40s linear infinite; }
.scn-review-in-park .banner { position:absolute; bottom:40%; left:15%; width:20px; height:24px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 10% 10% 0 0; transform-origin: bottom; animation: rp-banner 5s ease-in-out infinite; }
@keyframes rp-ground { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rp-dais { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes rp-cyrus { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-48%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-46%) translateY(0) rotate(0deg) } 75% { transform: translateX(-48%) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes rp-hoplite { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rp-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes rp-banner { 0% { transform: rotate(-8deg) } 25% { transform: rotate(0) } 50% { transform: rotate(10deg) } 75% { transform: rotate(0) } 100% { transform: rotate(-8deg) } }

/* footnote-parasang-plethron */
.scn-footnote-parasang-plethron { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%); }
.scn-footnote-parasang-plethron .table { position:absolute; bottom:15%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: fp-table 12s ease-in-out infinite alternate; }
.scn-footnote-parasang-plethron .scroll { position:absolute; bottom:22%; left:30%; width:50%; height:20%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: fp-scroll 8s ease-in-out infinite; }
.scn-footnote-parasang-plethron .lamp { position:absolute; bottom:30%; left:15%; width:12px; height:18px; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,160,80,.3); animation: fp-lamp 4s ease-in-out infinite; }
.scn-footnote-parasang-plethron .glow { position:absolute; bottom:30%; left:15%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,160,80,0.3) 0%, transparent 70%); filter: blur(12px); animation: fp-glow 3s ease-in-out infinite alternate; }
.scn-footnote-parasang-plethron .footnote-line-a { position:absolute; bottom:28%; left:35%; width:40%; height:2px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5040 50%, #4a3a2a 100%); animation: fp-line 5s ease-in-out infinite; }
.scn-footnote-parasang-plethron .footnote-line-b { position:absolute; bottom:26%; left:32%; width:50%; height:2px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5040 50%, #4a3a2a 100%); animation: fp-line 6s ease-in-out infinite -1s; }
.scn-footnote-parasang-plethron .footnote-line-c { position:absolute; bottom:24%; left:38%; width:35%; height:2px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5040 50%, #4a3a2a 100%); animation: fp-line 7s ease-in-out infinite -2s; }
.scn-footnote-parasang-plethron .shadow { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.4) 100%), radial-gradient(ellipse at 20% 60%, rgba(0,0,0,0.2) 0%, transparent 50%); pointer-events: none; animation: fp-shadow 6s ease-in-out infinite alternate; }
@keyframes fp-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fp-scroll { 0% { transform: rotate(-2deg) skewX(0) } 50% { transform: rotate(0deg) skewX(2deg) } 100% { transform: rotate(-2deg) skewX(0) } }
@keyframes fp-lamp { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.8; transform: scaleY(1) } }
@keyframes fp-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 fp-line { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.05) } 100% { opacity:0.6; transform: scaleX(1) } }
@keyframes fp-shadow { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }

/* clearchus-chooses-soldiers */
.scn-clearchus-chooses-soldiers {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b898 50%, #a08060 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-clearchus-chooses-soldiers .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe8c0 0%, #f5d6a0 100%); animation: ccs-sky 8s ease-in-out infinite alternate; }
.scn-clearchus-chooses-soldiers .sun { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #fff5e0 0%, #ffd080 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,208,128,0.5), 0 0 120px 40px rgba(255,200,100,0.2); animation: ccs-sun 6s ease-in-out infinite; }
.scn-clearchus-chooses-soldiers .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a6e4a 0%, #6a5030 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-clearchus-chooses-soldiers .figure { position:absolute; bottom:20%; height:50px; width:24px; background: linear-gradient(180deg, #2a1a0a 0%, #4a3018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-clearchus-chooses-soldiers .clearchus { left:48%; height:60px; width:28px; background: linear-gradient(180deg, #3a2010 0%, #5a3820 100%); animation: ccs-figure 4s ease-in-out infinite; }
.scn-clearchus-chooses-soldiers .soldier-left { left:28%; animation: ccs-figure 4.5s ease-in-out infinite 0.3s; }
.scn-clearchus-chooses-soldiers .soldier-right { left:68%; animation: ccs-figure 4.5s ease-in-out infinite 0.7s; }
.scn-clearchus-chooses-soldiers .spear { position:absolute; bottom:35%; width:3px; height:40px; background: linear-gradient(180deg, #5a4020 0%, #8a6040 100%); border-radius:0 0 2px 2px; transform: rotate(5deg); }
.scn-clearchus-chooses-soldiers .spear.left { left:30%; animation: ccs-spear 3s ease-in-out infinite; }
.scn-clearchus-chooses-soldiers .spear.right { left:65%; animation: ccs-spear 3s ease-in-out infinite 0.5s; }
.scn-clearchus-chooses-soldiers .shadow { position:absolute; bottom:10%; left:30%; width:40%; height:8px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(3px); animation: ccs-shadow 4s ease-in-out infinite; }
@keyframes ccs-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ccs-sun { 0% { transform: scale(1); box-shadow:0 0 50px 15px rgba(255,208,128,0.4) } 50% { transform: scale(1.05); box-shadow:0 0 70px 25px rgba(255,208,128,0.7) } 100% { transform: scale(0.98); box-shadow:0 0 55px 18px rgba(255,208,128,0.45) } }
@keyframes ccs-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ccs-spear { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(8deg) translateX(1px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ccs-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* clearchus-follows-soldiers */
.scn-clearchus-follows-soldiers {
  background:
    linear-gradient(180deg, #f0dab0 0%, #d4b888 50%, #b89868 100%),
    radial-gradient(ellipse at 60% 20%, #fff0d0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-clearchus-follows-soldiers .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe0b0 0%, #f5c890 100%); animation: cfs-sky 10s ease-in-out infinite alternate; }
.scn-clearchus-follows-soldiers .sun { position:absolute; top:10%; left:25%; width:35px; height:35px; background: radial-gradient(circle, #fff5e0 0%, #ffd080 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(255,208,128,0.4), 0 0 100px 30px rgba(255,200,100,0.2); animation: cfs-sun 7s ease-in-out infinite; }
.scn-clearchus-follows-soldiers .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #9a7e5a 0%, #7a5e3a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.25); }
.scn-clearchus-follows-soldiers .figure { position:absolute; bottom:20%; height:44px; width:20px; background: linear-gradient(180deg, #2a1a0a 0%, #4a3018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-clearchus-follows-soldiers .clearchus-walk { left:35%; height:55px; width:26px; background: linear-gradient(180deg, #3a2010 0%, #5a3820 100%); animation: cfs-walk 3s ease-in-out infinite; }
.scn-clearchus-follows-soldiers .soldier-fore { left:55%; animation: cfs-walk 3.3s ease-in-out infinite 0.2s; }
.scn-clearchus-follows-soldiers .soldier-horizon { left:65%; bottom:28%; height:36px; width:16px; opacity:0.7; animation: cfs-walk 3.8s ease-in-out infinite 0.6s; }
.scn-clearchus-follows-soldiers .dust { position:absolute; bottom:15%; left:40%; width:60px; height:15px; background: radial-gradient(ellipse, rgba(160,130,90,0.5) 0%, transparent 100%); filter: blur(4px); animation: cfs-dust 4s ease-in-out infinite; }
.scn-clearchus-follows-soldiers .path { position:absolute; bottom:18%; left:20%; right:20%; height:4px; background: rgba(120,90,60,0.4); border-radius:50%; filter: blur(2px); animation: cfs-path 3s ease-in-out infinite; }
@keyframes cfs-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cfs-sun { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.08) translateX(-2px) } 100% { transform: scale(0.97) translateX(1px) } }
@keyframes cfs-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes cfs-dust { 0% { transform: translateX(0) scaleX(1); opacity:0.6 } 50% { transform: translateX(5px) scaleX(1.2); opacity:0.8 } 100% { transform: translateX(-2px) scaleX(0.9); opacity:0.5 } }
@keyframes cfs-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* soldiers-desert-to-clearchus */
.scn-soldiers-desert-to-clearchus {
  background:
    linear-gradient(180deg, #e8d4a8 0%, #c8b080 50%, #a88c64 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-soldiers-desert-to-clearchus .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffdbb0 0%, #f5c890 100%); animation: sdc-sky 9s ease-in-out infinite alternate; }
.scn-soldiers-desert-to-clearchus .sun { position:absolute; top:5%; left:50%; width:45px; height:45px; background: radial-gradient(circle, #fff5e0 0%, #ffd080 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 70px 25px rgba(255,208,128,0.4), 0 0 140px 50px rgba(255,200,100,0.2); animation: sdc-sun 8s ease-in-out infinite; }
.scn-soldiers-desert-to-clearchus .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a0805a 0%, #7a5e3a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.3); }
.scn-soldiers-desert-to-clearchus .mass { position:absolute; bottom:20%; width:120px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #4a3018 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; filter: blur(1px); transform-origin: bottom center; }
.scn-soldiers-desert-to-clearchus .mass.left { left:-5%; animation: sdc-mass-left 5s ease-in-out infinite; }
.scn-soldiers-desert-to-clearchus .mass.right { right:-5%; animation: sdc-mass-right 5s ease-in-out infinite 0.3s; }
.scn-soldiers-desert-to-clearchus .clearchus-receive { position:absolute; bottom:18%; left:42%; height:58px; width:28px; background: linear-gradient(180deg, #3a2010 0%, #5a3820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sdc-figure 3.5s ease-in-out infinite; }
.scn-soldiers-desert-to-clearchus .banner { position:absolute; bottom:30%; left:36%; width:4px; height:30px; background: #6a4020; border-radius: 2px; transform: rotate(-5deg); animation: sdc-banner 4s ease-in-out infinite; }
.scn-soldiers-desert-to-clearchus .banner::after { content:''; position:absolute; top:-2px; left:-2px; width:16px; height:8px; background: #a8553d; border-radius: 0 50% 50% 0; transform: translateX(4px); } /* terracotta */
.scn-soldiers-desert-to-clearchus .dust-cloud { position:absolute; bottom:15%; left:30%; right:30%; height:20px; background: radial-gradient(ellipse, rgba(160,130,90,0.5) 0%, transparent 100%); filter: blur(6px); animation: sdc-dust 6s ease-in-out infinite; }
@keyframes sdc-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sdc-sun { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.03) rotate(5deg) } 100% { transform: scale(0.98) rotate(-3deg) } }
@keyframes sdc-mass-left { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(8px) scaleX(1.05) } 100% { transform: translateX(-4px) scaleX(0.95) } }
@keyframes sdc-mass-right { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-8px) scaleX(1.05) } 100% { transform: translateX(4px) scaleX(0.95) } }
@keyframes sdc-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sdc-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-4deg) } }
@keyframes sdc-dust { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(1.2); opacity:0.7 } 100% { transform: scaleX(0.9); opacity:0.4 } }

/* clearchus-addresses-men-again */
.scn-clearchus-addresses-men-again {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2818 40%, #4a3828 100%),
    radial-gradient(ellipse at 50% 60%, #5a3820 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-clearchus-addresses-men-again .tent-wall { position:absolute; background: linear-gradient(180deg, #6a4a30 0%, #4a3018 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; }
.scn-clearchus-addresses-men-again .back { inset:0 0 30% 0; opacity:0.6; filter: blur(2px); animation: cam-wall 12s ease-in-out infinite; }
.scn-clearchus-addresses-men-again .front-left { bottom:0; left:0; width:40%; height:80%; border-radius: 0 60% 0 0; animation: cam-wall 8s ease-in-out infinite 0.5s; }
.scn-clearchus-addresses-men-again .front-right { bottom:0; right:0; width:40%; height:80%; border-radius: 60% 0 0 0; animation: cam-wall 8s ease-in-out infinite 1s; }
.scn-clearchus-addresses-men-again .fire { position:absolute; bottom:25%; left:50%; width:30px; height:40px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #ffb040 0%, #d06020 40%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 60px 20px rgba(255,160,64,0.4), 0 0 120px 40px rgba(200,80,20,0.2); animation: cam-fire 2s ease-in-out infinite alternate; }
.scn-clearchus-addresses-men-again .figure { position:absolute; bottom:15%; height:50px; width:22px; background: linear-gradient(180deg, #1a0a00 0%, #2a1a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-clearchus-addresses-men-again .clearchus-speak { left:45%; height:60px; width:28px; animation: cam-speak 3s ease-in-out infinite; }
.scn-clearchus-addresses-men-again .listener.left { left:28%; animation: cam-listener 5s ease-in-out infinite 0.2s; }
.scn-clearchus-addresses-men-again .listener.right { left:62%; animation: cam-listener 5s ease-in-out infinite 0.7s; }
.scn-clearchus-addresses-men-again .shadow-pool { position:absolute; bottom:0; left:10%; right:10%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(5px); animation: cam-shadow 4s ease-in-out infinite; }
@keyframes cam-wall { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes cam-fire { 0% { transform: translateX(-50%) scaleY(1); opacity:0.9 } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.95); opacity:0.85 } }
@keyframes cam-speak { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cam-listener { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cam-shadow { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(1.1); opacity:0.7 } 100% { transform: scaleX(0.95); opacity:0.4 } }

/* march-to-chalybes-iron */
.scn-march-to-chalybes-iron {
  background: linear-gradient(180deg, #6b7a7e 0%, #4e5d61 40%, #3a474a 100%), radial-gradient(ellipse at 50% 0%, #88999e 0%, transparent 60%);
}
.scn-march-to-chalybes-iron .sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a8a8f 0%, #5a6a6e 100%);
  animation: mci-sky 15s ease-in-out infinite alternate;
}
.scn-march-to-chalybes-iron .mountains {
  position:absolute; bottom:30%; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #4a5558 0%, #2a3336 100%);
  border-radius: 30% 50% 0 0 / 60% 80% 0 0; clip-path: polygon(0 100%, 10% 40%, 25% 60%, 40% 20%, 55% 50%, 70% 30%, 85% 55%, 100% 35%, 100% 100%);
  animation: mci-mountains 20s ease-in-out infinite alternate;
}
.scn-march-to-chalybes-iron .path {
  position:absolute; bottom:28%; left:10%; right:10%; height:8%;
  background: linear-gradient(90deg, #5a5a4a 0%, #6a6a5a 30%, #5a5a4a 70%, #6a6a5a 100%);
  border-radius: 50% / 20%; filter: blur(2px);
  animation: mci-path 12s ease-in-out infinite alternate;
}
.scn-march-to-chalybes-iron .marcher {
  position:absolute; bottom:26%; width:16px; height:36px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: mci-march 4s ease-in-out infinite;
}
.scn-march-to-chalybes-iron .marcher-1 { left:20%; animation-delay:0s; }
.scn-march-to-chalybes-iron .marcher-2 { left:35%; animation-delay:1.3s; }
.scn-march-to-chalybes-iron .marcher-3 { left:50%; animation-delay:2.6s; }
.scn-march-to-chalybes-iron .forge-glow {
  position:absolute; bottom:22%; right:20%; width:12px; height:12px;
  background: radial-gradient(circle, #ff7a3a 0%, #cc5520 40%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,122,58,0.5);
  animation: mci-glow 3s ease-in-out infinite alternate;
}
@keyframes mci-sky    { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes mci-mountains { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mci-path   { 0% { transform: skewX(-2deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-1deg) } }
@keyframes mci-march  { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(1deg) } 75% { transform: translateX(12px) rotate(0deg) } 100% { transform: translateX(16px) rotate(-1deg) } }
@keyframes mci-glow   { 0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(255,122,58,0.3) } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,122,58,0.6) } 100% { opacity:0.7; box-shadow: 0 0 25px 8px rgba(255,122,58,0.4) } }

/* arrival-at-tibarenians */
.scn-arrival-at-tibarenians {
  background: linear-gradient(180deg, #87ceeb 0%, #5ba3d9 40%, #3d7abf 100%), radial-gradient(ellipse at 70% 100%, #f0d080 0%, transparent 60%);
}
.scn-arrival-at-tibarenians .sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8fd4f0 0%, #5ba3d9 100%);
  animation: atb-sky 12s ease-in-out infinite alternate;
}
.scn-arrival-at-tibarenians .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #2a6a9e 0%, #1a4a7e 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: atb-sea 8s ease-in-out infinite alternate;
}
.scn-arrival-at-tibarenians .cliff {
  position:absolute; bottom:40%; left:20%; width:30%; height:25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%);
  border-radius: 10% 60% 0 0 / 20% 80% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.3);
  animation: atb-cliff 20s ease-in-out infinite alternate;
}
.scn-arrival-at-tibarenians .fortress {
  position:absolute; bottom:52%; left:30%; width:60px; height:30px;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: atb-fortress 9s ease-in-out infinite;
}
.scn-arrival-at-tibarenians .fortress-wall {
  position:absolute; bottom:52%; left:30%; width:60px; height:8px;
  background: linear-gradient(90deg, #7a6a5a 0%, #6a5a4a 50%, #7a6a5a 100%);
  border-radius: 2px;
  animation: atb-wall 9s ease-in-out infinite;
}
.scn-arrival-at-tibarenians .sail {
  position:absolute; bottom:30%; right:15%; width:30px; height:40px;
  background: linear-gradient(135deg, #f0e8d8 0%, #d0c8b8 100%);
  border-radius: 0 0 20% 20%;
  clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%);
  animation: atb-sail 14s ease-in-out infinite alternate;
}
.scn-arrival-at-tibarenians .bird {
  position:absolute; width:12px; height:4px;
  background: #2a2a2a; border-radius: 50%;
  filter: blur(1px);
  animation: atb-bird 6s ease-in-out infinite;
}
.scn-arrival-at-tibarenians .bird-1 { top:15%; left:10%; animation-delay:0s; }
.scn-arrival-at-tibarenians .bird-2 { top:20%; left:70%; animation-delay:3s; }
@keyframes atb-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes atb-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes atb-cliff  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes atb-fortress { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes atb-wall   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes atb-sail   { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes atb-bird   { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(20px) translateY(-5px) } 50% { transform: translateX(40px) translateY(0) } 75% { transform: translateX(60px) translateY(5px) } 100% { transform: translateX(80px) translateY(0) } }

/* acceptance-gifts-tibarenians */
.scn-acceptance-gifts-tibarenians {
  background: linear-gradient(180deg, #e0f0e8 0%, #c0d8c8 50%, #a0b8a8 100%), radial-gradient(ellipse at 50% 100%, #d0e8d8 0%, transparent 70%);
}
.scn-acceptance-gifts-tibarenians .sky {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0f8f0 0%, #d0e0d0 100%);
  animation: agt-sky 20s ease-in-out infinite alternate;
}
.scn-acceptance-gifts-tibarenians .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: agt-ground 15s ease-in-out infinite alternate;
}
.scn-acceptance-gifts-tibarenians .greek-figure {
  position:absolute; bottom:28%; left:30%; width:20px; height:40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: agt-figure-a 5s ease-in-out infinite;
}
.scn-acceptance-gifts-tibarenians .tibarenian-figure {
  position:absolute; bottom:28%; right:30%; width:20px; height:40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: agt-figure-b 5s ease-in-out infinite;
}
.scn-acceptance-gifts-tibarenians .gift {
  position:absolute; bottom:30%; width:12px; height:12px;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: agt-gift 6s ease-in-out infinite;
}
.scn-acceptance-gifts-tibarenians .gift-1 { left:42%; animation-delay:0s; }
.scn-acceptance-gifts-tibarenians .gift-2 { right:42%; animation-delay:3s; }
.scn-acceptance-gifts-tibarenians .tree {
  position:absolute; bottom:32%; left:50%; width:30px; height:50px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: translateX(-50%);
  animation: agt-tree 10s ease-in-out infinite alternate;
}
@keyframes agt-sky    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes agt-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes agt-figure-a { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-3px) rotate(0deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(3px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes agt-figure-b { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(3px) rotate(0deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes agt-gift   { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(10deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes agt-tree   { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }

/* halt-forty-five-days */
.scn-halt-forty-five-days {
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 40%, #c0b080 100%), radial-gradient(ellipse at 70% 0%, #f8f0d8 0%, transparent 60%);
}
.scn-halt-forty-five-days .sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f8f0d8 0%, #e0d0b0 100%);
  animation: h45-sky 18s ease-in-out infinite alternate;
}
.scn-halt-forty-five-days .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: h45-ground 12s ease-in-out infinite alternate;
}
.scn-halt-forty-five-days .tent {
  position:absolute; bottom:40%; width:60px; height:40px;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 100%);
  clip-path: polygon(0 100%, 20% 0, 80% 0, 100% 100%);
  box-shadow: 0 6px 10px rgba(0,0,0,0.3);
  animation: h45-tent 10s ease-in-out infinite;
}
.scn-halt-forty-five-days .tent-1 { left:15%; }
.scn-halt-forty-five-days .tent-2 { right:15%; }
.scn-halt-forty-five-days .altar {
  position:absolute; bottom:38%; left:50%; width:40px; height:20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: h45-altar 8s ease-in-out infinite;
}
.scn-halt-forty-five-days .flame {
  position:absolute; bottom:52%; left:50%; width:10px; height:20px;
  background: radial-gradient(circle at 50% 80%, #ffa060 0%, #ff7030 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(255,160,96,0.5);
  animation: h45-flame 2s ease-in-out infinite alternate;
}
.scn-halt-forty-five-days .athlete {
  position:absolute; bottom:24%; width:14px; height:30px;
  background: linear-gradient(180deg, #c0a888 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: h45-athlete 4s ease-in-out infinite;
}
.scn-halt-forty-five-days .athlete-1 { left:35%; animation-delay:0s; }
.scn-halt-forty-five-days .athlete-2 { left:55%; animation-delay:2s; }
.scn-halt-forty-five-days .torch {
  position:absolute; bottom:25%; left:48%; width:6px; height:20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10%;
  animation: h45-torch 5s ease-in-out infinite;
}
@keyframes h45-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes h45-ground { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes h45-tent   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes h45-altar  { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes h45-flame  { 0% { opacity:0.8; transform: translateX(-50%) scaleY(1) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.2) } 100% { opacity:0.9; transform: translateX(-50%) scaleY(1.1) } }
@keyframes h45-athlete { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-5px) rotate(0deg) } 50% { transform: translateY(0) rotate(5deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes h45-torch  { 0% { opacity:0.7; transform: rotate(-5deg) } 50% { opacity:1; transform: rotate(5deg) } 100% { opacity:0.8; transform: rotate(-5deg) } }

.scn-xenophon-pleads-friendship {
  background:
    linear-gradient(180deg, #fbecd0 0%, #e8c8a0 30%, #c09a70 60%, #8a6e4a 100%),
    radial-gradient(ellipse at 50% 100%, #d4b896 0%, transparent 70%);
}
.scn-xenophon-pleads-friendship .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffd7b3 0%, #fdf0d8 60%, transparent 100%); animation: xf1-sky 10s ease-in-out infinite alternate; }
.scn-xenophon-pleads-friendship .hills { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 60% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: xf1-hills 20s ease-in-out infinite; }
.scn-xenophon-pleads-friendship .tent { position:absolute; bottom:30%; left:35%; width:120px; height:80px; background: linear-gradient(135deg, #b89a6a 0%, #7a5a3a 100%); clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: xf1-tent 6s ease-in-out infinite alternate; }
.scn-xenophon-pleads-friendship .figure-left { position:absolute; bottom:25%; left:42%; width:24px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xf1-figures 4s ease-in-out infinite; }
.scn-xenophon-pleads-friendship .figure-right { position:absolute; bottom:25%; left:52%; width:24px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xf1-figures 4s ease-in-out infinite reverse; }
.scn-xenophon-pleads-friendship .handclasp { position:absolute; bottom:32%; left:47%; width:14px; height:8px; background: #5a3a2a; border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 6px rgba(255,200,150,.3); animation: xf1-clasp 3s ease-in-out infinite alternate; }
.scn-xenophon-pleads-friendship .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); }
.scn-xenophon-pleads-friendship .mist-1 { position:absolute; bottom:20%; left:0; width:100%; height:40%; background: linear-gradient(90deg, transparent 0%, rgba(255,255,220,.2) 20%, transparent 40%, rgba(255,255,220,.15) 60%, transparent 80%); filter: blur(10px); animation: xf1-mist 25s linear infinite; }
.scn-xenophon-pleads-friendship .mist-2 { position:absolute; bottom:30%; left:0; width:100%; height:30%; background: linear-gradient(90deg, transparent 0%, rgba(255,255,220,.1) 30%, transparent 50%, rgba(255,255,220,.12) 70%, transparent 100%); filter: blur(8px); animation: xf1-mist 35s linear infinite reverse; }
@keyframes xf1-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes xf1-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes xf1-tent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes xf1-figures { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes xf1-clasp { 0% { transform: scaleX(1); opacity: .8; } 50% { transform: scaleX(1.1); opacity: 1; } 100% { transform: scaleX(0.95); opacity: .85; } }
@keyframes xf1-mist { 0% { transform: translateX(-10%); } 100% { transform: translateX(110%); } }

.scn-xenophon-swears-integrity {
  background:
    linear-gradient(180deg, #b84a2a 0%, #d66a3a 20%, #a84a2a 50%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #ff8a4a 0%, transparent 60%);
}
.scn-xenophon-swears-integrity .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ff6a3a 0%, #d85a2a 40%, transparent 100%); animation: xf2-sky 8s ease-in-out infinite alternate; }
.scn-xenophon-swears-integrity .sun { position:absolute; top:8%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #ffcc80 0%, #ff8a4a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px #ff8a4a; animation: xf2-sun 5s ease-in-out infinite; }
.scn-xenophon-swears-integrity .figure { position:absolute; bottom:20%; left:50%; width:30px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: xf2-figure 3s ease-in-out infinite; }
.scn-xenophon-swears-integrity .raised-arm { position:absolute; bottom:50%; left:53%; width:6px; height:30px; background: #0a0505; border-radius: 50%; transform-origin: bottom center; animation: xf2-arm 4s ease-in-out infinite; }
.scn-xenophon-swears-integrity .shadow { position:absolute; bottom:15%; left:45%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius: 50%; animation: xf2-shadow 6s ease-in-out infinite alternate; }
.scn-xenophon-swears-integrity .spear-1 { position:absolute; bottom:15%; left:30%; width:4px; height:80px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); transform: rotate(-15deg); transform-origin: bottom center; animation: xf2-spear 7s ease-in-out infinite; }
.scn-xenophon-swears-integrity .spear-2 { position:absolute; bottom:15%; left:45%; width:4px; height:80px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); transform: rotate(5deg); transform-origin: bottom center; animation: xf2-spear 7s ease-in-out infinite -1s; }
.scn-xenophon-swears-integrity .spear-3 { position:absolute; bottom:15%; left:60%; width:4px; height:80px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); transform: rotate(20deg); transform-origin: bottom center; animation: xf2-spear 7s ease-in-out infinite -2s; }
@keyframes xf2-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes xf2-sun { 0% { transform: scale(1); } 50% { transform: scale(1.1); opacity: .9; } 100% { transform: scale(0.95); opacity: 1; } }
@keyframes xf2-figure { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 75% { transform: translateX(-52%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes xf2-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-50deg); } 100% { transform: rotate(-30deg); } }
@keyframes xf2-shadow { 0% { transform: scaleX(1); opacity: .6; } 50% { transform: scaleX(1.1); opacity: .8; } 100% { transform: scaleX(0.9); opacity: .5; } }
@keyframes xf2-spear { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(-15deg) translateY(0); } }

.scn-xenophon-on-virtue {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 70%, #3a5a6a 0%, transparent 80%);
}
.scn-xenophon-on-virtue .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); animation: xf3-bg 12s ease-in-out infinite alternate; }
.scn-xenophon-on-virtue .column { position:absolute; bottom:20%; left:40%; width:30px; height:120px; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%); border-radius: 4px; box-shadow: -8px 0 12px rgba(0,0,0,.4), 8px 0 12px rgba(0,0,0,.3); animation: xf3-column 8s ease-in-out infinite; }
.scn-xenophon-on-virtue .figure { position:absolute; bottom:22%; left:48%; width:24px; height:50px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xf3-figure 5s ease-in-out infinite; }
.scn-xenophon-on-virtue .jewel { position:absolute; bottom:32%; left:53%; width:10px; height:10px; background: radial-gradient(circle, #fff5c0 0%, #f0c060 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(240,192,96,.6), 0 0 40px 20px rgba(240,192,96,.3); animation: xf3-jewel 3s ease-in-out infinite alternate; }
.scn-xenophon-on-virtue .glow { position:absolute; bottom:25%; left:45%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,240,200,.2) 0%, transparent 60%); border-radius: 50%; animation: xf3-glow 6s ease-in-out infinite; }
.scn-xenophon-on-virtue .floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 20% 20% 0 0; }
.scn-xenophon-on-virtue .p1 { position:absolute; top:40%; left:20%; width:4px; height:4px; background: rgba(255,240,200,.6); border-radius: 50%; animation: xf3-particle 20s linear infinite; }
.scn-xenophon-on-virtue .p2 { position:absolute; top:50%; left:70%; width:3px; height:3px; background: rgba(255,240,200,.4); border-radius: 50%; animation: xf3-particle 25s linear infinite reverse; }
@keyframes xf3-bg { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes xf3-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes xf3-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes xf3-jewel { 0% { transform: scale(1); box-shadow: 0 0 20px 10px rgba(240,192,96,.6),0 0 40px 20px rgba(240,192,96,.3); } 50% { transform: scale(1.3); box-shadow: 0 0 30px 15px rgba(255,224,128,.8),0 0 60px 30px rgba(255,224,128,.4); } 100% { transform: scale(0.95); box-shadow: 0 0 15px 8px rgba(240,192,96,.5),0 0 30px 15px rgba(240,192,96,.2); } }
@keyframes xf3-glow { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .6; transform: scale(1.2); } 100% { opacity: .4; transform: scale(0.9); } }
@keyframes xf3-particle { 0% { transform: translateY(0) scale(1); opacity: .6; } 50% { transform: translateY(30px) scale(0.5); opacity: .2; } 100% { transform: translateY(0) scale(1); opacity: .6; } }

.scn-xenophon-on-loyalty {
  background:
    linear-gradient(180deg, #f0d8b0 0%, #d4b896 30%, #a08a6a 60%, #6a5a3a 100%),
    radial-gradient(ellipse at 50% 80%, #c09a70 0%, transparent 70%);
}
.scn-xenophon-on-loyalty .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fce8c8 0%, #f0d8b0 40%, transparent 100%); animation: xf4-sky 15s ease-in-out infinite alternate; }
.scn-xenophon-on-loyalty .horizon { position:absolute; bottom:45%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, #8a7a5a 20%, #6a5a3a 50%, #8a7a5a 80%, transparent 100%); animation: xf4-horizon 10s ease-in-out infinite; }
.scn-xenophon-on-loyalty .figure { position:absolute; bottom:28%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xf4-figure 5s ease-in-out infinite; }
.scn-xenophon-on-loyalty .dog { position:absolute; bottom:25%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 50% 40% 40%; animation: xf4-dog 4s ease-in-out infinite alternate; }
.scn-xenophon-on-loyalty .staff { position:absolute; bottom:45%; left:42%; width:4px; height:40px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); transform: rotate(10deg); transform-origin: bottom center; animation: xf4-staff 6s ease-in-out infinite; }
.scn-xenophon-on-loyalty .path { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%); clip-path: polygon(0% 100%, 10% 60%, 30% 80%, 50% 50%, 70% 85%, 90% 55%, 100% 70%, 100% 100%); }
.scn-xenophon-on-loyalty .bush-1 { position:absolute; bottom:20%; left:20%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, #3a5a2a 60%, #2a4a1a 100%); border-radius: 60% 60% 40% 40% / 80% 80% 30% 30%; animation: xf4-bush 7s ease-in-out infinite; }
.scn-xenophon-on-loyalty .bush-2 { position:absolute; bottom:18%; left:70%; width:35px; height:25px; background: radial-gradient(ellipse at 50% 100%, #6a8a4a 0%, #4a6a2a 60%, #2a4a1a 100%); border-radius: 60% 60% 40% 40% / 80% 80% 30% 30%; animation: xf4-bush 8s ease-in-out infinite .5s; }
@keyframes xf4-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes xf4-horizon { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.2); } 100% { transform: scaleY(0.8); } }
@keyframes xf4-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes xf4-dog { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes xf4-staff { 0% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(10deg); } }
@keyframes xf4-bush { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }

/* seuthes-arrives */
.scn-seuthes-arrives {
  background: linear-gradient(180deg, #1a1015 0%, #4a2520 40%, #6a3a2a 100%), radial-gradient(ellipse at 30% 70%, #8a4a30 0%, transparent 60%);
}
.scn-seuthes-arrives .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2a1815 0%, #4a2a20 60%, transparent 100%);
  animation: sa-sky 12s ease-in-out infinite alternate;
}
.scn-seuthes-arrives .dust {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(140, 80, 40, 0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: sa-dust 6s ease-in-out infinite;
}
.scn-seuthes-arrives .horse {
  position: absolute; bottom: 30%; left: 40%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 40% 40% 50% / 60% 40% 40% 50%;
  animation: sa-breathe 4s ease-in-out infinite;
}
.scn-seuthes-arrives .rider {
  position: absolute; bottom: 48%; left: 42%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  clip-path: polygon(30% 0%, 70% 0%, 100% 40%, 80% 100%, 50% 80%, 20% 100%, 0% 40%);
  animation: sa-ride 6s ease-in-out infinite;
}
.scn-seuthes-arrives .bugle {
  position: absolute; bottom: 54%; left: 44%; width: 18px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, #c08040 0%, #a06020 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  animation: sa-bugle 2s ease-in-out infinite alternate;
}
.scn-seuthes-arrives .glow {
  position: absolute; bottom: 44%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8a040 0%, #a05020 40%, transparent 70%);
  border-radius: 50%;
  animation: sa-glow 3s ease-in-out infinite alternate;
}
.scn-seuthes-arrives .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2015 0%, #1a0e08 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: sa-ground 8s ease-in-out infinite;
}
@keyframes sa-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes sa-dust { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.1) translateX(10px) scaleY(0.95) } 100% { transform: scaleX(1) translateX(0) } }
@keyframes sa-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) scaleX(0.98) } 100% { transform: scaleY(1) } }
@keyframes sa-ride { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sa-bugle { 0% { transform: rotate(-25deg) scale(1) } 100% { transform: rotate(-15deg) scale(1.05) } }
@keyframes sa-glow { 0% { opacity: 0.5; box-shadow: 0 0 20px 5px #a05020 } 50% { opacity: 1; box-shadow: 0 0 40px 10px #e8a040 } 100% { opacity: 0.7; box-shadow: 0 0 20px 5px #a05020 } }
@keyframes sa-ground { 0% { background-position: 0 0 } 50% { background-position: 0 -3px } 100% { background-position: 0 0 } }

/* xenophon-demands-hostages */
.scn-xenophon-demands-hostages {
  background: linear-gradient(180deg, #a8b0c0 0%, #5a6878 40%, #203040 100%), radial-gradient(ellipse at 50% 0%, #d0d8e0 0%, transparent 60%);
}
.scn-xenophon-demands-hostages .tent {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #6a7a80 0%, #3a4a50 100%);
  border-radius: 20% 20% 10% 10%;
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: xd-tent 5s ease-in-out infinite;
}
.scn-xenophon-demands-hostages .figure-xenophon {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a3a40 0%, #101a20 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: xd-figure1 4s ease-in-out infinite;
}
.scn-xenophon-demands-hostages .figure-hostage {
  position: absolute; bottom: 35%; left: 55%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: xd-figure2 4s ease-in-out infinite alternate;
}
.scn-xenophon-demands-hostages .spear {
  position: absolute; bottom: 40%; left: 48%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  transform: rotate(-5deg);
  animation: xd-spear 3s ease-in-out infinite alternate;
}
.scn-xenophon-demands-hostages .shadow-left {
  position: absolute; bottom: 10%; left: 25%; width: 40px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: xd-shadow 6s ease-in-out infinite;
}
.scn-xenophon-demands-hostages .shadow-right {
  position: absolute; bottom: 10%; right: 20%; width: 50px; height: 18px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: xd-shadow 6s ease-in-out infinite reverse;
}
@keyframes xd-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes xd-figure1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes xd-figure2 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes xd-spear { 0% { transform: rotate(-8deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-8deg) } }
@keyframes xd-shadow { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.2) } 100% { opacity: 0.4; transform: scaleX(1) } }

/* odrysians-join */
.scn-odrysians-join {
  background: linear-gradient(180deg, #d4c8b0 0%, #b0a08a 30%, #706050 70%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #504030 0%, transparent 70%);
}
.scn-odrysians-join .sun {
  position: absolute; top: 8%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #f0e0b0 0%, #d0b070 40%, transparent 70%);
  border-radius: 50%;
  animation: oj-sunrise 20s ease-in-out infinite;
}
.scn-odrysians-join .clouds {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 30% 20%, rgba(200,180,150,0.3) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 30%, rgba(180,160,130,0.25) 0%, transparent 50%);
  animation: oj-clouds 30s ease-in-out infinite alternate;
}
.scn-odrysians-join .hills {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: oj-hills 18s ease-in-out infinite;
}
.scn-odrysians-join .figures {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 15%;
  background: repeating-linear-gradient(90deg, 
    #4a3a2a 0px, #4a3a2a 8px, 
    transparent 8px, transparent 16px
  );
  background-size: 16px 100%;
  background-position: 0 0;
  mask-image: linear-gradient(to top, #000 0%, #000 100%);
  -webkit-mask-image: linear-gradient(to top, #000 0%, #000 100%);
  animation: oj-march 20s linear infinite;
}
.scn-odrysians-join .dust {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(160,140,120,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: oj-dust 8s ease-in-out infinite;
}
.scn-odrysians-join .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
@keyframes oj-sunrise { 0% { transform: translateY(0) scale(1); opacity: 0.6 } 50% { transform: translateY(-5px) scale(1.05); opacity: 1 } 100% { transform: translateY(0) scale(1); opacity: 0.7 } }
@keyframes oj-clouds { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }
@keyframes oj-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes oj-march { 0% { background-position: 0 0 } 100% { background-position: -16px 0 } }
@keyframes oj-dust { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.2) translateX(15px) scaleY(0.9) } 100% { transform: scaleX(1) translateX(0) } }

/* thynians-submit */
.scn-thynians-submit {
  background: linear-gradient(180deg, #b0a8a0 0%, #8a7a70 40%, #504040 100%), radial-gradient(ellipse at 30% 70%, #7a6050 0%, transparent 60%);
}
.scn-thynians-submit .tree {
  position: absolute; bottom: 10%; left: 10%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  clip-path: polygon(50% 0%, 60% 20%, 55% 40%, 70% 50%, 50% 60%, 40% 80%, 30% 60%, 20% 70%, 35% 40%, 40% 20%);
  animation: ts-tree 8s ease-in-out infinite;
}
.scn-thynians-submit .fire {
  position: absolute; bottom: 15%; left: 45%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #e8a040 0%, #a05020 50%, transparent 80%);
  border-radius: 50%;
  animation: ts-fire 3s ease-in-out infinite alternate;
}
.scn-thynians-submit .figure-king {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ts-stand 5s ease-in-out infinite;
}
.scn-thynians-submit .figure-kneeling {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: ts-kneel 4s ease-in-out infinite;
}
.scn-thynians-submit .spear {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%);
  transform: rotate(-10deg);
  animation: ts-spear 4s ease-in-out infinite alternate;
}
.scn-thynians-submit .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: ts-ground 10s ease-in-out infinite;
}
@keyframes ts-tree { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.01) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes ts-fire { 0% { opacity: 0.7; transform: scaleY(0.9); box-shadow: 0 0 20px 5px #a05020 } 50% { opacity: 1; transform: scaleY(1.1); box-shadow: 0 0 40px 10px #e8a040 } 100% { opacity: 0.8; transform: scaleY(1); box-shadow: 0 0 20px 5px #a05020 } }
@keyframes ts-stand { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ts-kneel { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ts-spear { 0% { transform: rotate(-12deg) } 50% { transform: rotate(-6deg) } 100% { transform: rotate(-12deg) } }
@keyframes ts-ground { 0% { background-position: 0 0 } 50% { background-position: 0 -2px } 100% { background-position: 0 0 } }

.scn-thracians-surround-knoll {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 60%);
}
.scn-thracians-surround-knoll .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #0e0e1c 0%, transparent 100%);
  animation: tsk-sky 12s ease-in-out infinite alternate;
}
.scn-thracians-surround-knoll .knoll {
  position:absolute; bottom:20%; left:25%; right:25%; height:35%;
  background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #1a1a2a 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.5);
  animation: tsk-knoll 15s ease-in-out infinite alternate;
}
.scn-thracians-surround-knoll .hoplite-group {
  position:absolute; bottom:25%; left:35%; width:30%; height:18%;
  background: #1a1a2a;
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform: scaleX(1.2);
  animation: tsk-group 6s ease-in-out infinite;
}
.scn-thracians-surround-knoll .hoplite-shield {
  position:absolute; bottom:27%; left:38%; width:12%; height:15%;
  background: radial-gradient(circle, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.6);
  animation: tsk-shield 4s ease-in-out infinite alternate;
}
.scn-thracians-surround-knoll .horseman-a {
  position:absolute; bottom:30%; left:10%; width:25%; height:20%;
  background: #1a1a2a;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: skewX(-10deg);
  animation: tsk-horse-a 7s ease-in-out infinite;
}
.scn-thracians-surround-knoll .horseman-b {
  position:absolute; bottom:28%; right:8%; width:22%; height:18%;
  background: #1a1a2a;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: skewX(10deg) scaleX(-1);
  animation: tsk-horse-b 8s ease-in-out infinite;
}
.scn-thracians-surround-knoll .javelin-a {
  position:absolute; bottom:38%; left:15%; width:2%; height:25%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  transform: rotate(30deg);
  animation: tsk-jav-a 2s ease-in-out infinite;
}
.scn-thracians-surround-knoll .javelin-b {
  position:absolute; bottom:36%; right:12%; width:2%; height:22%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  transform: rotate(-25deg);
  animation: tsk-jav-b 2.5s ease-in-out infinite;
}
.scn-thracians-surround-knoll .dust {
  position:absolute; bottom:10%; left:0; right:0; height:20%;
  background: radial-gradient(ellipse at 30% 0%, rgba(60,60,60,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: tsk-dust 10s linear infinite;
}
@keyframes tsk-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes tsk-knoll { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes tsk-group { 0%,100% { transform: scaleX(1.2) } 50% { transform: scaleX(1.25) } }
@keyframes tsk-shield { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tsk-horse-a { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-12deg) translateX(5px) } 100% { transform: skewX(-10deg) translateX(0) } }
@keyframes tsk-horse-b { 0% { transform: skewX(10deg) scaleX(-1) translateX(0) } 50% { transform: skewX(12deg) scaleX(-1) translateX(-4px) } 100% { transform: skewX(10deg) scaleX(-1) translateX(0) } }
@keyframes tsk-jav-a { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-3px) } 100% { transform: rotate(30deg) translateY(0) } }
@keyframes tsk-jav-b { 0% { transform: rotate(-25deg) translateY(0) } 50% { transform: rotate(-30deg) translateY(-2px) } 100% { transform: rotate(-25deg) translateY(0) } }
@keyframes tsk-dust { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-arcadians-helpless {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 30%, #2a3a4a 70%, #1a2a3a 100%), radial-gradient(ellipse at 80% 20%, rgba(200,180,150,.2) 0%, transparent 60%);
}
.scn-arcadians-helpless .dawn-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 40%, transparent 100%);
  animation: ah-dawn 10s ease-in-out infinite alternate;
}
.scn-arcadians-helpless .mist {
  position:absolute; bottom:30%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(180,200,210,.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: ah-mist 15s ease-in-out infinite alternate;
}
.scn-arcadians-helpless .arcadian-fig {
  position:absolute; bottom:20%; left:40%; width:20%; height:25%;
  background: #2a3a4a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ah-fig 8s ease-in-out infinite;
}
.scn-arcadians-helpless .arcadian-shield {
  position:absolute; bottom:23%; left:42%; width:10%; height:18%;
  background: radial-gradient(circle, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: ah-shield 5s ease-in-out infinite alternate;
}
.scn-arcadians-helpless .attacker-a {
  position:absolute; bottom:22%; left:10%; width:18%; height:22%;
  background: #3a4a5a;
  border-radius: 35% 35% 30% 30% / 50% 50% 40% 40%;
  transform: skewX(8deg);
  animation: ah-att-a 6s ease-in-out infinite;
}
.scn-arcadians-helpless .attacker-b {
  position:absolute; bottom:20%; right:8%; width:20%; height:24%;
  background: #3a4a5a;
  border-radius: 35% 35% 30% 30% / 50% 50% 40% 40%;
  transform: skewX(-10deg) scaleX(-1);
  animation: ah-att-b 7s ease-in-out infinite;
}
.scn-arcadians-helpless .javelin {
  position:absolute; bottom:35%; left:15%; width:1.5%; height:20%;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  transform: rotate(20deg);
  animation: ah-jav 2s ease-in-out infinite;
}
.scn-arcadians-helpless .blood-drop {
  position:absolute; bottom:15%; left:48%; width:4%; height:4%;
  background: radial-gradient(circle, #7a3a3a 0%, #4a1a1a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ah-blood 4s ease-in-out infinite;
}
@keyframes ah-dawn { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ah-mist { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes ah-fig { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ah-shield { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes ah-att-a { 0% { transform: skewX(8deg) translateX(0) } 50% { transform: skewX(10deg) translateX(4px) } 100% { transform: skewX(8deg) translateX(0) } }
@keyframes ah-att-b { 0% { transform: skewX(-10deg) scaleX(-1) translateX(0) } 50% { transform: skewX(-12deg) scaleX(-1) translateX(-3px) } 100% { transform: skewX(-10deg) scaleX(-1) translateX(0) } }
@keyframes ah-jav { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes ah-blood { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.6; transform: scale(1) } }

.scn-xenophon-advances-inland {
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 30%, #4a5a4a 70%, #3a4a3a 100%), radial-gradient(ellipse at 50% 0%, rgba(180,180,160,.3) 0%, transparent 70%);
}
.scn-xenophon-advances-inland .overcast-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 50%, transparent 100%);
  animation: xai-sky 12s ease-in-out infinite alternate;
}
.scn-xenophon-advances-inland .ground-path {
  position:absolute; bottom:10%; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a3a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: xai-ground 10s ease-in-out infinite alternate;
}
.scn-xenophon-advances-inland .cavalry-horse {
  position:absolute; bottom:25%; left:20%; width:30%; height:20%;
  background: #3a4a3a;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: scaleX(1.4);
  animation: xai-horse 6s ease-in-out infinite;
}
.scn-xenophon-advances-inland .cavalry-rider {
  position:absolute; bottom:32%; left:25%; width:10%; height:15%;
  background: #2a3a2a;
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: xai-rider 6s ease-in-out infinite;
}
.scn-xenophon-advances-inland .old-man-a {
  position:absolute; bottom:18%; left:60%; width:12%; height:20%;
  background: #4a5a4a;
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform: skewX(5deg);
  animation: xai-olda 8s ease-in-out infinite;
}
.scn-xenophon-advances-inland .old-man-b {
  position:absolute; bottom:16%; left:68%; width:10%; height:18%;
  background: #4a5a4a;
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform: skewX(-5deg);
  animation: xai-oldb 8.5s ease-in-out infinite;
}
.scn-xenophon-advances-inland .dust-cloud {
  position:absolute; bottom:15%; left:15%; width:20%; height:15%;
  background: radial-gradient(ellipse, rgba(120,120,100,.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: xai-dust 15s linear infinite;
}
@keyframes xai-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes xai-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes xai-horse { 0%,100% { transform: scaleX(1.4) translateX(0) } 50% { transform: scaleX(1.4) translateX(5px) } }
@keyframes xai-rider { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(5px) translateY(-2px) } }
@keyframes xai-olda { 0% { transform: skewX(5deg) translateY(0) } 50% { transform: skewX(3deg) translateY(-2px) } 100% { transform: skewX(5deg) translateY(0) } }
@keyframes xai-oldb { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-3deg) translateY(-1px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes xai-dust { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(10px) } 100% { opacity:.3; transform: translateX(0) } }

.scn-xenophon-urges-rescue {
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 30%, #3a4a3a 70%, #2a3a2a 100%), radial-gradient(ellipse at 50% 100%, rgba(100,120,100,.3) 0%, transparent 60%);
}
.scn-xenophon-urges-rescue .overcast-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 50%, transparent 100%);
  animation: xur-sky 12s ease-in-out infinite alternate;
}
.scn-xenophon-urges-rescue .knoll-distant {
  position:absolute; bottom:20%; right:10%; width:30%; height:25%;
  background: radial-gradient(ellipse at 50% 100%, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,.4);
  animation: xur-knoll 15s ease-in-out infinite alternate;
}
.scn-xenophon-urges-rescue .xenophon-figure {
  position:absolute; bottom:25%; left:30%; width:15%; height:25%;
  background: #2a3a2a;
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: xur-xen 6s ease-in-out infinite;
}
.scn-xenophon-urges-rescue .xenophon-arm {
  position:absolute; bottom:35%; left:35%; width:10%; height:5%;
  background: #2a3a2a;
  border-radius: 50% 50% 20% 20% / 100% 100% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: xur-arm 3s ease-in-out infinite alternate;
}
.scn-xenophon-urges-rescue .soldier-a {
  position:absolute; bottom:22%; left:45%; width:12%; height:20%;
  background: #3a4a3a;
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: xur-sola 7s ease-in-out infinite;
}
.scn-xenophon-urges-rescue .soldier-b {
  position:absolute; bottom:20%; left:52%; width:12%; height:20%;
  background: #3a4a3a;
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: xur-solb 8s ease-in-out infinite;
}
.scn-xenophon-urges-rescue .soldier-c {
  position:absolute; bottom:24%; left:58%; width:10%; height:18%;
  background: #3a4a3a;
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: xur-solc 7.5s ease-in-out infinite;
}
.scn-xenophon-urges-rescue .spear-group {
  position:absolute; bottom:28%; left:46%; width:1.5%; height:20%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  transform: rotate(10deg);
  animation: xur-spear 2s ease-in-out infinite;
}
@keyframes xur-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes xur-knoll { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes xur-xen { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes xur-arm { 0% { transform: rotate(-20deg) } 100% { transform: rotate(-40deg) } }
@keyframes xur-sola { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes xur-solb { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes xur-solc { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes xur-spear { 0% { transform: rotate(10deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(10deg) } }

.scn-xenophon-reveals-divine-sign {
  background: linear-gradient(180deg, #fbe9d7 0%, #dfc7a5 40%, #b08e6a 100%), radial-gradient(ellipse at 50% 100%, #d4b48a 0%, transparent 60%);
}
.scn-xenophon-reveals-divine-sign .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fdf4e3 0%, #fce8c8 50%, #ecdbba 100%); animation: sx-sky 14s ease-in-out infinite alternate; }
.scn-xenophon-reveals-divine-sign .sun { position:absolute; top:12%; left:65%; width:50px; height:50px; background: radial-gradient(circle, #ffe080 0%, #f0a050 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,200,100,.4); animation: sx-sun 6s ease-in-out infinite alternate; }
.scn-xenophon-reveals-divine-sign .altar { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80px; height:50px; background: linear-gradient(180deg, #8c6c4a 0%, #5a3e2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-xenophon-reveals-divine-sign .smoke { position:absolute; bottom:38%; left:48%; width:20px; height:40px; background: radial-gradient(ellipse, rgba(255,220,180,.6) 0%, transparent 70%); border-radius:50%; filter: blur(4px); }
.scn-xenophon-reveals-divine-sign .smoke-a { left:46%; animation: sx-smoke 8s ease-in-out infinite; }
.scn-xenophon-reveals-divine-sign .smoke-b { left:52%; animation: sx-smoke 8s ease-in-out infinite 4s; }
.scn-xenophon-reveals-divine-sign .figure { position:absolute; bottom:18%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sx-figure 5s ease-in-out infinite; }
.scn-xenophon-reveals-divine-sign .rays { position:absolute; top:10%; left:55%; width:200px; height:200px; background: radial-gradient(ellipse, rgba(255,230,150,.3) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: sx-rays 4s ease-in-out infinite alternate; }
@keyframes sx-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sx-sun { 0% { transform: scale(.95); opacity:.85 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.98); opacity:.9 } }
@keyframes sx-smoke { 0% { transform: translateY(0) scale(1); opacity:.7 } 50% { transform: translateY(-10px) scale(1.3); opacity:.3 } 100% { transform: translateY(-20px) scale(1.6); opacity:0 } }
@keyframes sx-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) translateY(-2px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sx-rays { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } 100% { opacity:.4; transform: scale(1.1) } }

.scn-cheirisophus-elected {
  background: linear-gradient(180deg, #cfe2f0 0%, #aac4d8 40%, #7ca0b8 100%), radial-gradient(ellipse at 50% 100%, #8db4c8 0%, transparent 70%);
}
.scn-cheirisophus-elected .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e1eff8 0%, #d0e2f0 50%, #b8d0e0 100%); animation: ce-sky 20s ease-in-out infinite alternate; }
.scn-cheirisophus-elected .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a8fa8 0%, #4a6070 100%); border-radius: 30% 30% 0 0 / 80% 80% 0 0; animation: ce-sea 12s ease-in-out infinite; }
.scn-cheirisophus-elected .stage { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:100px; height:30px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.3); }
.scn-cheirisophus-elected .figure-leader { position:absolute; bottom:34%; left:50%; transform:translateX(-50%); width:22px; height:50px; background: linear-gradient(180deg, #2a1a10 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ce-leader 6s ease-in-out infinite; }
.scn-cheirisophus-elected .figures-pod { position:absolute; bottom:28%; width:14px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-cheirisophus-elected .figures-pod:first-of-type { left:30%; animation: ce-pod1 8s ease-in-out infinite; }
.scn-cheirisophus-elected .figures-pod:last-of-type { left:60%; animation: ce-pod2 8s ease-in-out infinite 2s; }
.scn-cheirisophus-elected .flag { position:absolute; bottom:36%; left:52%; width:4px; height:30px; background: #5e3a2a; animation: ce-flag 4s ease-in-out infinite; }
.scn-cheirisophus-elected .flag::after { content:''; position:absolute; top:0; left:4px; width:20px; height:12px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:0 30% 30% 0; }
@keyframes ce-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ce-sea { 0% { transform: translateY(0) skewX(0deg) } 50% { transform: translateY(-3px) skewX(-2deg) } 100% { transform: translateY(0) skewX(0) } }
@keyframes ce-leader { 0% { transform: translateX(-50%) rotate(-2deg) translateY(0) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0) translateY(0) } }
@keyframes ce-pod1 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ce-pod2 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ce-flag { 0% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-5deg) } }

.scn-cheirisophus-accuses-dexipus {
  background: linear-gradient(180deg, #e8d4b8 0%, #c8a87c 40%, #a08050 100%), radial-gradient(ellipse at 50% 100%, #b09060 0%, transparent 60%);
}
.scn-cheirisophus-accuses-dexipus .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fbeee0 0%, #f5e0c0 50%, #e8c8a0 100%); animation: ca-sky 10s ease-in-out infinite alternate; }
.scn-cheirisophus-accuses-dexipus .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b09060 0%, #705030 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.4); }
.scn-cheirisophus-accuses-dexipus .figure-accuser { position:absolute; bottom:32%; left:35%; width:24px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ca-accuser 2s ease-in-out infinite alternate; }
.scn-cheirisophus-accuses-dexipus .figure-accused { position:absolute; bottom:30%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ca-accused 3s ease-in-out infinite; }
.scn-cheirisophus-accuses-dexipus .shadow-sharp { position:absolute; bottom:28%; left:30%; width:80px; height:20px; background: linear-gradient(90deg, rgba(0,0,0,.3) 0%, transparent 100%); transform: skewX(-30deg); animation: ca-shadow 2s ease-in-out infinite alternate; }
.scn-cheirisophus-accuses-dexipus .pointing-arm { position:absolute; bottom:44%; left:38%; width:40px; height:6px; background: #5e3a2a; border-radius: 50% 0 0 50%; transform-origin: right center; animation: ca-arm 2.5s ease-in-out infinite alternate; }
.scn-cheirisophus-accuses-dexipus .dust { position:absolute; bottom:20%; width:10px; height:10px; background: radial-gradient(circle, #c8a87c 0%, transparent 70%); border-radius:50%; filter: blur(2px); }
.scn-cheirisophus-accuses-dexipus .dust-a { left:45%; animation: ca-dust 4s ease-in-out infinite; }
.scn-cheirisophus-accuses-dexipus .dust-b { left:50%; animation: ca-dust 4s ease-in-out infinite 2s; }
@keyframes ca-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ca-accuser { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ca-accused { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes ca-shadow { 0% { opacity:.3; transform: skewX(-30deg) translateX(0) } 50% { opacity:.5; transform: skewX(-30deg) translateX(5px) } 100% { opacity:.3; transform: skewX(-30deg) translateX(0) } }
@keyframes ca-arm { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(-30deg) scaleX(1.1) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes ca-dust { 0% { transform: translateY(0) scale(1); opacity:.6 } 50% { transform: translateY(-15px) scale(1.5); opacity:0 } 100% { transform: translateY(0) scale(1); opacity:.6 } }

.scn-voyage-to-heraclea {
  background: linear-gradient(180deg, #aad0e8 0%, #7aa8c8 40%, #4a7898 100%), radial-gradient(ellipse at 50% 100%, #6a98b8 0%, transparent 70%);
}
.scn-voyage-to-heraclea .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d0e8f8 0%, #b8d8f0 50%, #9ac0d8 100%); animation: vh-sky 18s ease-in-out infinite alternate; }
.scn-voyage-to-heraclea .sea { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #4a7898 0%, #2a4a5a 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; animation: vh-sea 15s ease-in-out infinite; }
.scn-voyage-to-heraclea .ship { position:absolute; bottom:40%; left:40%; width:70px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: vh-ship 10s ease-in-out infinite; }
.scn-voyage-to-heraclea .sail { position:absolute; bottom:48%; left:44%; width:30px; height:35px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); border-radius: 10% 10% 5% 5%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); animation: vh-sail 6s ease-in-out infinite alternate; }
.scn-voyage-to-heraclea .wave { position:absolute; bottom:20%; width:100px; height:15px; background: radial-gradient(ellipse, rgba(255,255,255,.3) 0%, transparent 70%); border-radius:50%; filter: blur(3px); }
.scn-voyage-to-heraclea .wave-1 { left:20%; animation: vh-wave 8s linear infinite; }
.scn-voyage-to-heraclea .wave-2 { left:60%; animation: vh-wave 8s linear infinite 4s; }
.scn-voyage-to-heraclea .cloud { position:absolute; width:60px; height:16px; background: radial-gradient(ellipse, rgba(255,255,255,.5) 0%, transparent 70%); filter: blur(5px); }
.scn-voyage-to-heraclea .cloud-a { top:12%; left:10%; animation: vh-cloud 40s linear infinite; }
.scn-voyage-to-heraclea .cloud-b { top:20%; right:15%; animation: vh-cloud 40s linear infinite reverse; }
@keyframes vh-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes vh-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes vh-ship { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vh-sail { 0% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.05) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes vh-wave { 0% { transform: translateX(-20px) scaleY(1); opacity:.4 } 50% { transform: translateX(20px) scaleY(1.2); opacity:.7 } 100% { transform: translateX(60px) scaleY(1); opacity:.4 } }
@keyframes vh-cloud { 0% { transform: translateX(0) } 50% { transform: translateX(30px) } 100% { transform: translateX(60px) } }

.scn-laconian-agents-arrive {
  background:
    radial-gradient(ellipse at 50% 80%, #d08050 0%, #5a3a2a 50%, transparent 70%),
    linear-gradient(180deg, #2a1a3a 0%, #4a2a2a 30%, #c06040 70%, #e08050 100%);
}
.scn-laconian-agents-arrive .sky {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, transparent 100%);
  animation: laa-sky 8s ease-in-out infinite alternate;
}
.scn-laconian-agents-arrive .sun {
  position:absolute; bottom:60%; left:50%; width:40px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #d08050 60%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(208,128,80,.5);
  animation: laa-sun 6s ease-in-out infinite alternate;
}
.scn-laconian-agents-arrive .ground {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a05 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-laconian-agents-arrive .agent-left {
  position:absolute; bottom:20%; left:30%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: laa-walk 4s ease-in-out infinite;
}
.scn-laconian-agents-arrive .agent-right {
  position:absolute; bottom:20%; left:55%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: laa-walk 4s ease-in-out infinite reverse;
}
.scn-laconian-agents-arrive .dust {
  position:absolute; bottom:30%; left:10%; width:80px; height:40px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,160,120,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: laa-dust 12s ease-in-out infinite alternate;
}
@keyframes laa-sky { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes laa-sun { 0% { transform: translateX(-50%) scale(1); box-shadow:0 0 40px 10px rgba(208,128,80,.4); } 50% { transform: translateX(-50%) scale(1.1); box-shadow:0 0 80px 30px rgba(230,150,90,.6); } 100% { transform: translateX(-50%) scale(.95); box-shadow:0 0 50px 15px rgba(208,128,80,.5); } }
@keyframes laa-walk { 0%,100% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(1deg) } }
@keyframes laa-dust { 0% { transform: scale(1) translateX(0); opacity:.5 } 100% { transform: scale(1.3) translateX(30px); opacity:.2 } }

.scn-heraclides-plots {
  background:
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #0f0a08 0%, #1a1210 40%, #2a1a10 100%);
}
.scn-heraclides-plots .wall-back {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.4);
}
.scn-heraclides-plots .table {
  position:absolute; bottom:20%; left:20%; right:20%; height:8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-heraclides-plots .lamp {
  position:absolute; bottom:35%; left:45%; width:16px; height:20px;
  background: radial-gradient(circle, #d08040 0%, #a06020 60%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(160,96,32,.6), 0 0 60px 20px rgba(160,96,32,.3);
  animation: hp-lamp 3s ease-in-out infinite alternate;
}
.scn-heraclides-plots .heraclides {
  position:absolute; bottom:12%; left:30%; width:30px; height:55px;
  background: linear-gradient(180deg, #1a1810 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-figure 6s ease-in-out infinite;
}
.scn-heraclides-plots .seuthes {
  position:absolute; bottom:12%; left:55%; width:34px; height:58px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-figure 7s ease-in-out infinite -.5s;
}
.scn-heraclides-plots .shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: hp-shadow 10s ease-in-out infinite alternate;
}
@keyframes hp-lamp { 0% { box-shadow:0 0 20px 8px rgba(160,96,32,.5); opacity:.9; } 50% { box-shadow:0 0 40px 15px rgba(200,120,40,.7); opacity:1; } 100% { box-shadow:0 0 25px 10px rgba(160,96,32,.4); opacity:.8; } }
@keyframes hp-figure { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes hp-shadow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-laconians-ask-about-xenophon {
  background:
    radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #0f0a08 0%, #1a1410 50%, #2a1a10 100%);
}
.scn-laconians-ask-about-xenophon .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,.3);
}
.scn-laconians-ask-about-xenophon .table {
  position:absolute; bottom:20%; left:15%; right:25%; height:10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-laconians-ask-about-xenophon .lamp {
  position:absolute; bottom:38%; left:22%; width:14px; height:18px;
  background: radial-gradient(circle, #c08040 0%, #905030 60%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(144,80,48,.5), 0 0 80px 30px rgba(144,80,48,.2);
  animation: lax-lamp 2s ease-in-out infinite alternate;
}
.scn-laconians-ask-about-xenophon .seuthes {
  position:absolute; bottom:10%; left:20%; width:32px; height:60px;
  background: linear-gradient(180deg, #1a1810 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lax-figure 4s ease-in-out infinite;
}
.scn-laconians-ask-about-xenophon .laconian {
  position:absolute; bottom:10%; left:55%; width:28px; height:55px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lax-figure 4.5s ease-in-out infinite -.5s;
}
.scn-laconians-ask-about-xenophon .shadow {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
}
@keyframes lax-lamp { 0% { box-shadow:0 0 30px 10px rgba(144,80,48,.5); opacity:.8; } 50% { box-shadow:0 0 60px 25px rgba(192,128,64,.7); opacity:1; } 100% { box-shadow:0 0 35px 12px rgba(144,80,48,.4); opacity:.85; } }
@keyframes lax-figure { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-2deg) } }

.scn-plan-to-circumvent-xenophon {
  background:
    radial-gradient(ellipse at 50% 30%, #2a1a10 0%, transparent 70%),
    linear-gradient(180deg, #0f0a08 0%, #1a1210 100%);
}
.scn-plan-to-circumvent-xenophon .floor {
  position:absolute; inset:0;
  background: repeating-linear-gradient(90deg, #1a1410 0px, #1a1410 2px, #1a1210 2px, #1a1210 4px);
  opacity:.3;
}
.scn-plan-to-circumvent-xenophon .table {
  position:absolute; bottom:5%; left:10%; right:10%; height:35%;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50%; box-shadow: 0 8px 20px rgba(0,0,0,.7);
  transform: perspective(600px) rotateX(30deg);
  animation: ptc-table 12s ease-in-out infinite alternate;
}
.scn-plan-to-circumvent-xenophon .candle {
  position:absolute; bottom:35%; left:45%; width:10px; height:30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 6px rgba(200,120,40,.5);
  animation: ptc-candle 2s ease-in-out infinite alternate;
}
.scn-plan-to-circumvent-xenophon .scroll {
  position:absolute; bottom:30%; left:30%; width:60px; height:8px;
  background: linear-gradient(90deg, #8a7a5a 0%, #c0a880 50%, #8a7a5a 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.4);
  transform: rotate(-10deg);
  animation: ptc-scroll 10s ease-in-out infinite;
}
.scn-plan-to-circumvent-xenophon .hand-left {
  position:absolute; bottom:24%; left:28%; width:18px; height:28px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 50% 40% 30% 30% / 50% 40% 40% 50%;
  transform-origin: bottom center;
  animation: ptc-hand 4s ease-in-out infinite;
}
.scn-plan-to-circumvent-xenophon .hand-right {
  position:absolute; bottom:22%; left:60%; width:16px; height:26px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 40% 50% 30% 30% / 40% 50% 50% 40%;
  transform-origin: bottom center;
  animation: ptc-hand 5s ease-in-out infinite -.5s;
}
@keyframes ptc-table { 0% { transform: perspective(600px) rotateX(30deg) } 50% { transform: perspective(600px) rotateX(28deg) } 100% { transform: perspective(600px) rotateX(32deg) } }
@keyframes ptc-candle { 0% { box-shadow:0 0 20px 6px rgba(200,120,40,.5); opacity:.9; } 50% { box-shadow:0 0 40px 15px rgba(220,140,60,.8); opacity:1; } 100% { box-shadow:0 0 25px 8px rgba(200,120,40,.4); opacity:.85; } }
@keyframes ptc-scroll { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(3px) } }
@keyframes ptc-hand { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-4px) rotate(-2deg) } }

.scn-xenophon-praises-gully {
  background: linear-gradient(180deg, #fce4b0 0%, #f9c980 40%, #e2a85a 100%), 
              radial-gradient(ellipse at 50% 40%, #fff5d0 0%, transparent 60%);
}
.scn-xenophon-praises-gully .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffd58a 0%, transparent 100%);
  animation: sz1-sky 14s ease-in-out infinite alternate;
}
.scn-xenophon-praises-gully .sun {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff9e0 0%, #ffd58a 60%, transparent 100%);
  box-shadow: 0 0 80px 30px rgba(255,205,100,0.6);
  animation: sz1-sun 6s ease-in-out infinite;
}
.scn-xenophon-praises-gully .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #bba05a 0%, #8a7240 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: sz1-hills 20s ease-in-out infinite alternate;
}
.scn-xenophon-praises-gully .gully {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(135deg, #3a2d1a 0%, #221a0e 50%, #3a2d1a 100%);
  border-radius: 20% 20% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 4px 12px #1a1208;
  animation: sz1-gully 8s ease-in-out infinite;
}
.scn-xenophon-praises-gully .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6240 0%, #4a3a20 100%);
  border-radius: 0 0 0 0;
}
.scn-xenophon-praises-gully .soldier-left {
  position: absolute; bottom: 28%; left: 15%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sz1-soldier 3s ease-in-out infinite;
}
.scn-xenophon-praises-gully .soldier-right {
  position: absolute; bottom: 28%; left: 70%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sz1-soldier 3s ease-in-out infinite reverse;
}
@keyframes sz1-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sz1-sun { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(0.95); } }
@keyframes sz1-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sz1-gully { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sz1-soldier { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-xenophon-comparing-difficulties {
  background: linear-gradient(180deg, #ffeab0 0%, #f5c57a 45%, #dba85a 100%),
              radial-gradient(ellipse at 60% 50%, #fff0c0 0%, transparent 70%);
}
.scn-xenophon-comparing-difficulties .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fde8b0 0%, transparent 100%);
  animation: sz2-sky 16s ease-in-out infinite alternate;
}
.scn-xenophon-comparing-difficulties .sun {
  position: absolute; top: 6%; left: 40%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff9d0 0%, #ffe080 60%, transparent 100%);
  box-shadow: 0 0 100px 40px rgba(255,205,80,0.5);
  animation: sz2-sun 8s ease-in-out infinite;
}
.scn-xenophon-comparing-difficulties .sea {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7aa0b8 0%, #3a6080 100%);
  border-radius: 0 0 0 0;
  animation: sz2-sea 12s ease-in-out infinite alternate;
}
.scn-xenophon-comparing-difficulties .mountains {
  position: absolute; bottom: 40%; left: 5%; right: 5%; height: 22%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 10% 30%, 25% 60%, 40% 10%, 55% 50%, 70% 20%, 85% 55%, 100% 100%);
  animation: sz2-mountains 18s ease-in-out infinite;
}
.scn-xenophon-comparing-difficulties .plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #8a7a50 0%, #5a4a2a 100%);
}
.scn-xenophon-comparing-difficulties .cavalry {
  position: absolute; bottom: 28%; left: 20%; width: 100px; height: 40px;
  background: linear-gradient(90deg, #3a2a1a 0%, #1a1208 50%, #3a2a1a 100%);
  border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%;
  animation: sz2-cavalry 5s ease-in-out infinite;
}
.scn-xenophon-comparing-difficulties .peltast {
  position: absolute; bottom: 30%; left: 70%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sz2-peltast 4s ease-in-out infinite;
}
@keyframes sz2-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sz2-sun { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes sz2-sea { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes sz2-mountains { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sz2-cavalry { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(-1deg); } 75% { transform: translateX(30px) rotate(1deg); } 100% { transform: translateX(40px) rotate(0); } }
@keyframes sz2-peltast { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-crossing-the-gully {
  background: linear-gradient(180deg, #f8d89a 0%, #e2b06a 40%, #c89050 100%),
              radial-gradient(ellipse at 30% 50%, #fff0b0 0%, transparent 70%);
}
.scn-crossing-the-gully .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fadba0 0%, transparent 100%);
  animation: sz3-sky 15s ease-in-out infinite alternate;
}
.scn-crossing-the-gully .sun {
  position: absolute; top: 10%; left: 20%; width: 35px; height: 35px;
  background: radial-gradient(circle, #fffbe0 0%, #ffe080 60%, transparent 100%);
  box-shadow: 0 0 70px 25px rgba(255,205,80,0.5);
  animation: sz3-sun 7s ease-in-out infinite;
}
.scn-crossing-the-gully .gully-deep {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(135deg, #2a1a0a 0%, #110a04 50%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 6px 20px #0a0502;
  animation: sz3-gully 8s ease-in-out infinite;
}
.scn-crossing-the-gully .bank-near {
  position: absolute; bottom: 15%; right: 0; width: 60%; height: 15%;
  background: linear-gradient(180deg, #6a5230 0%, #3a2a18 100%);
  border-radius: 0 50% 0 0 / 0 100% 0 0;
  animation: sz3-bank 10s ease-in-out infinite alternate;
}
.scn-crossing-the-gully .bank-far {
  position: absolute; bottom: 15%; left: 0; width: 60%; height: 15%;
  background: linear-gradient(180deg, #6a5230 0%, #3a2a18 100%);
  border-radius: 50% 0 0 0 / 100% 0 0 0;
  animation: sz3-bank 10s ease-in-out infinite alternate-reverse;
}
.scn-crossing-the-gully .soldier-1 {
  position: absolute; bottom: 22%; left: 5%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sz3-soldier 3s ease-in-out infinite;
}
.scn-crossing-the-gully .soldier-2 {
  position: absolute; bottom: 22%; left: 20%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sz3-soldier 3s ease-in-out 0.15s infinite;
}
.scn-crossing-the-gully .soldier-3 {
  position: absolute; bottom: 22%; left: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sz3-soldier 3s ease-in-out 0.3s infinite;
}
@keyframes sz3-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sz3-sun { 0% { transform: scale(1); } 50% { transform: scale(1.06); } 100% { transform: scale(0.96); } }
@keyframes sz3-gully { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sz3-bank { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes sz3-soldier { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(12px) translateY(0) rotate(0); } }

.scn-xenophon-encouragement-battle {
  background: linear-gradient(180deg, #ffeac0 0%, #f5c880 40%, #dba85a 100%),
              radial-gradient(ellipse at 50% 30%, #fff4d0 0%, transparent 60%);
}
.scn-xenophon-encouragement-battle .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffeab8 0%, transparent 100%);
  animation: sz4-sky 12s ease-in-out infinite alternate;
}
.scn-xenophon-encouragement-battle .sun {
  position: absolute; top: 5%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fffbe0 0%, #ffe080 50%, transparent 100%);
  box-shadow: 0 0 120px 50px rgba(255,205,80,0.5);
  animation: sz4-sun 9s ease-in-out infinite;
}
.scn-xenophon-encouragement-battle .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #7a6240 0%, #4a3a20 100%);
  border-radius: 0 0 0 0;
}
.scn-xenophon-encouragement-battle .leader {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sz4-leader 2s ease-in-out infinite;
}
.scn-xenophon-encouragement-battle .leader::before {
  content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 4px; height: 12px; background: #1a1208; border-radius: 0 0 50% 50%;
}
.scn-xenophon-encouragement-battle .soldier-group {
  position: absolute; bottom: 28%; left: 10%; width: 60px; height: 35px;
  background: linear-gradient(90deg, #2a1a0e 0%, #1a1208 40%, #0a0502 100%);
  border-radius: 60% 40% 50% 50% / 70% 60% 40% 30%;
  animation: sz4-group 5s ease-in-out infinite;
}
.scn-xenophon-encouragement-battle .spear {
  position: absolute; bottom: 50%; left: 48%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a18 100%);
  transform-origin: bottom center;
  animation: sz4-spear 2s ease-in-out infinite;
}
.scn-xenophon-encouragement-battle .banner {
  position: absolute; bottom: 58%; left: 48%; width: 20px; height: 12px;
  background: linear-gradient(135deg, #a0461a 0%, #702243 100%);
  border-radius: 2px;
  animation: sz4-banner 3s ease-in-out infinite;
}
@keyframes sz4-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sz4-sun { 0% { transform: scale(1); } 50% { transform: scale(1.04); } 100% { transform: scale(0.96); } }
@keyframes sz4-leader { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sz4-group { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes sz4-spear { 0% { transform: rotate(0); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0); } }
@keyframes sz4-banner { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.1); } 100% { transform: rotate(0) scaleY(1); } }

/* Scene: clearchus-asks-about-battle (dawn, tense) */
.scn-clearchus-asks-about-battle {
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4a2a 40%, #b8855a 100%), radial-gradient(ellipse at 40% 20%, #ffcc80 0%, transparent 60%);
}
.scn-clearchus-asks-about-battle .ds-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a3a5a 0%, #8a6a3a 60%, transparent 100%);
  animation: ds-sky-glow 12s ease-in-out infinite alternate;
}
.scn-clearchus-asks-about-battle .ds-sun {
  position: absolute; bottom: 40%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffdd88 0%, #ffaa44 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffaa44;
  animation: ds-sun-pulse 8s ease-in-out infinite alternate;
}
.scn-clearchus-asks-about-battle .ds-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 50% 0 0 / 60% 40% 0 0;
}
.scn-clearchus-asks-about-battle .ds-tent {
  position: absolute; bottom: 30%; left: 20%; width: 100px; height: 80px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  opacity: 0.8;
  animation: ds-tent-sway 6s ease-in-out infinite alternate;
}
.scn-clearchus-asks-about-battle .ds-figure-left {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ds-figure-talk 4s ease-in-out infinite;
}
.scn-clearchus-asks-about-battle .ds-figure-right {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ds-figure-talk 5s ease-in-out infinite reverse;
}
.scn-clearchus-asks-about-battle .ds-spear {
  position: absolute; bottom: 18%; left: 42%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ds-spear-tap 7s ease-in-out infinite;
}
@keyframes ds-sky-glow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ds-sun-pulse {
  0% { transform: scale(0.9); box-shadow: 0 0 30px 15px #ffaa44; }
  50% { transform: scale(1.1); box-shadow: 0 0 50px 25px #ffcc66; }
  100% { transform: scale(1); box-shadow: 0 0 40px 20px #ffaa44; }
}
@keyframes ds-tent-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ds-figure-talk {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ds-spear-tap {
  0% { transform: rotate(0); }
  30% { transform: rotate(5deg); }
  60% { transform: rotate(-3deg); }
  100% { transform: rotate(0); }
}

/* Scene: numbers-before-battle (sunlit, tense) */
.scn-numbers-before-battle {
  background: linear-gradient(180deg, #4a7a9a 0%, #8ab8d8 40%, #c8a868 100%), radial-gradient(ellipse at 70% 30%, #ffcc88 0%, transparent 50%);
}
.scn-numbers-before-battle .nb-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a9aba 0%, #9ac8e8 60%, transparent 100%);
  animation: nb-sky-move 20s linear infinite alternate;
}
.scn-numbers-before-battle .nb-sun {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffee88 0%, #ffbb44 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ffbb44;
  animation: nb-sun-glow 6s ease-in-out infinite alternate;
}
.scn-numbers-before-battle .nb-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  border-radius: 20% 50% 0 0 / 30% 60% 0 0;
}
.scn-numbers-before-battle .nb-map {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8b070 0%, #a08850 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: nb-map-lift 8s ease-in-out infinite;
}
.scn-numbers-before-battle .nb-commander {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nb-commander-look 5s ease-in-out infinite alternate;
}
.scn-numbers-before-battle .nb-spear-left {
  position: absolute; bottom: 18%; left: 30%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  transform-origin: bottom center;
  animation: nb-spear-sway 7s ease-in-out infinite;
}
.scn-numbers-before-battle .nb-spear-right {
  position: absolute; bottom: 18%; right: 30%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  transform-origin: bottom center;
  animation: nb-spear-sway 7s ease-in-out infinite reverse;
}
.scn-numbers-before-battle .nb-banner {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 30%, 100% 70%, 0% 100%);
  animation: nb-banner-flap 4s ease-in-out infinite alternate;
}
@keyframes nb-sky-move {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes nb-sun-glow {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes nb-map-lift {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes nb-commander-look {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes nb-spear-sway {
  0% { transform: rotate(0); }
  30% { transform: rotate(4deg); }
  60% { transform: rotate(-2deg); }
  100% { transform: rotate(0); }
}
@keyframes nb-banner-flap {
  0% { transform: rotate(0) scale(1); }
  50% { transform: rotate(10deg) scale(0.9); }
  100% { transform: rotate(-5deg) scale(1.1); }
}

/* Scene: trench-barrier (sunlit, tense) */
.scn-trench-barrier {
  background: linear-gradient(180deg, #5a7a6a 0%, #8a9a7a 30%, #c8a868 100%), radial-gradient(ellipse at 50% 100%, #b8884a 0%, transparent 60%);
}
.scn-trench-barrier .tb-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a8a7a 0%, #aaba8a 60%, transparent 100%);
  animation: tb-sky-pulse 10s ease-in-out infinite alternate;
}
.scn-trench-barrier .tb-mountains {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(135deg, #6a7a5a 0%, #4a5a3a 100%);
  clip-path: polygon(0% 80%, 20% 10%, 40% 50%, 60% 0%, 80% 30%, 100% 60%);
  opacity: 0.6;
}
.scn-trench-barrier .tb-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #9a8a5a 0%, #6a5a3a 100%);
  border-radius: 0 0 0 0;
}
.scn-trench-barrier .tb-trench {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-trench-barrier .tb-barrier {
  position: absolute; bottom: 28%; left: 40%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tb-barrier-shake 4s ease-in-out infinite;
}
.scn-trench-barrier .tb-chariot {
  position: absolute; bottom: 30%; right: 15%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: tb-chariot-roll 6s ease-in-out infinite;
}
.scn-trench-barrier .tb-dust-1 {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,100,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: tb-dust-drift 8s linear infinite;
}
.scn-trench-barrier .tb-dust-2 {
  position: absolute; bottom: 22%; right: 30%; width: 50px; height: 15px;
  background: radial-gradient(ellipse, rgba(200,180,100,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: tb-dust-drift 12s linear infinite reverse;
}
@keyframes tb-sky-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tb-barrier-shake {
  0% { transform: translateX(0); }
  20% { transform: translateX(3px); }
  40% { transform: translateX(-2px); }
  60% { transform: translateX(1px); }
  80% { transform: translateX(-1px); }
  100% { transform: translateX(0); }
}
@keyframes tb-chariot-roll {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(4px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tb-dust-drift {
  0% { transform: translateX(-20px); opacity: 0; }
  50% { opacity: 0.6; }
  100% { transform: translateX(100px); opacity: 0; }
}

/* Scene: trench-and-canals (sunlit, tense) */
.scn-trench-and-canals {
  background: linear-gradient(180deg, #4a7a8a 0%, #6a9aaa 40%, #c8a868 100%), radial-gradient(ellipse at 30% 40%, #aaccee 0%, transparent 50%);
}
.scn-trench-and-canals .tc-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a8a9a 0%, #8abaca 60%, transparent 100%);
  animation: tc-sky-shift 15s linear infinite alternate;
}
.scn-trench-and-canals .tc-sun {
  position: absolute; top: 10%; left: 60%; width: 35px; height: 35px;
  background: radial-gradient(circle, #ffdd88 0%, #ffaa44 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px #ffaa44;
  animation: tc-sun-glint 8s ease-in-out infinite alternate;
}
.scn-trench-and-canals .tc-water {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  animation: tc-water-wave 10s ease-in-out infinite;
}
.scn-trench-and-canals .tc-canal-bank {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-trench-and-canals .tc-ship {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 40px;
  background: linear-gradient(135deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: tc-ship-rock 6s ease-in-out infinite;
}
.scn-trench-and-canals .tc-sail {
  position: absolute; bottom: 35%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8b080 0%, #a08850 100%);
  clip-path: polygon(0% 0%, 100% 30%, 100% 70%, 0% 100%);
  animation: tc-sail-billow 5s ease-in-out infinite alternate;
}
.scn-trench-and-canals .tc-reed-1 {
  position: absolute; bottom: 12%; left: 15%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #6a8a3a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: tc-reed-sway 4s ease-in-out infinite;
}
.scn-trench-and-canals .tc-reed-2 {
  position: absolute; bottom: 11%; right: 20%; width: 5px; height: 35px;
  background: linear-gradient(180deg, #6a8a3a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: tc-reed-sway 5s ease-in-out infinite reverse;
}
@keyframes tc-sky-shift {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes tc-sun-glint {
  0% { transform: scale(0.95) rotate(0); opacity: 0.8; }
  50% { transform: scale(1.1) rotate(5deg); opacity: 1; }
  100% { transform: scale(1) rotate(0); opacity: 0.9; }
}
@keyframes tc-water-wave {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes tc-ship-rock {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(5px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tc-sail-billow {
  0% { transform: scaleY(0.9) translateX(0); }
  50% { transform: scaleY(1.1) translateX(3px); }
  100% { transform: scaleY(1) translateX(0); }
}
@keyframes tc-reed-sway {
  0% { transform: rotate(0); }
  30% { transform: rotate(6deg); }
  60% { transform: rotate(-4deg); }
  100% { transform: rotate(0); }
}

/* pass-impossible-to-force (tense, sunlit) */
.scn-pass-impossible-to-force {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d9b382 30%, #b8925a 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255, 230, 180, 0.4) 0%, transparent 60%);
}
.scn-pass-impossible-to-force .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffeac4 0%, #f0d6a0 100%);
  animation: pif-sky 12s ease-in-out infinite alternate;
}
.scn-pass-impossible-to-force .mountains {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: pif-mountains 18s ease-in-out infinite alternate;
}
.scn-pass-impossible-to-force .gate {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: pif-gate 9s ease-in-out infinite;
}
.scn-pass-impossible-to-force .soldier-left,
.scn-pass-impossible-to-force .soldier-right {
  position: absolute; bottom: 24%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-pass-impossible-to-force .soldier-left {
  left: 42%;
  animation: pif-soldier 4s ease-in-out infinite;
}
.scn-pass-impossible-to-force .soldier-right {
  right: 42%;
  animation: pif-soldier 4s ease-in-out infinite reverse;
}
.scn-pass-impossible-to-force .sun-rays {
  position: absolute; top: 10%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,220,140,0.8) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,220,140,0.3);
  animation: pif-rays 6s ease-in-out infinite alternate;
}
.scn-pass-impossible-to-force .shadow-vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 60%);
  animation: pif-vignette 10s ease-in-out infinite alternate;
}
@keyframes pif-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pif-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pif-gate { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scale(1.02,0.98) } }
@keyframes pif-soldier { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pif-rays { 0% { transform: scale(1) rotate(0deg); opacity:0.7 } 50% { transform: scale(1.1) rotate(5deg); opacity:1 } 100% { transform: scale(0.95) rotate(-5deg); opacity:0.8 } }
@keyframes pif-vignette { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }

/* abrocomas-retreats (calm, sunlit) */
.scn-abrocomas-retreats {
  background: 
    linear-gradient(180deg, #b8d4e8 0%, #f0e4c0 40%, #d4b88a 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,240,200,0.5) 0%, transparent 60%);
}
.scn-abrocomas-retreats .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d4ecff 0%, #f0eac0 100%);
  animation: abr-sky 15s ease-in-out infinite alternate;
}
.scn-abrocomas-retreats .distant-mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  opacity: 0.6;
  animation: abr-mountains 20s ease-in-out infinite alternate;
}
.scn-abrocomas-retreats .plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: abr-plain 22s ease-in-out infinite alternate;
}
.scn-abrocomas-retreats .sun {
  position: absolute; top: 12%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe8b0 0%, #f0c060 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,192,96,0.5);
  animation: abr-sun 8s ease-in-out infinite alternate;
}
.scn-abrocomas-retreats .retreating-figure {
  position: absolute; bottom: 22%; left: 45%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: abr-walk 6s ease-in-out infinite;
}
.scn-abrocomas-retreats .cloud-a,
.scn-abrocomas-retreats .cloud-b {
  position: absolute; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-abrocomas-retreats .cloud-a { top: 15%; left: 10%; width: 80px; animation: abr-drift-a 40s linear infinite; }
.scn-abrocomas-retreats .cloud-b { top: 20%; right: 10%; width: 60px; animation: abr-drift-b 50s linear infinite reverse; }
@keyframes abr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes abr-mountains { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes abr-plain { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes abr-sun { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.98); opacity:0.9 } }
@keyframes abr-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(10px) translateY(0) rotate(1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(20px) translateY(0) rotate(-1deg) } }
@keyframes abr-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes abr-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* myriandus-harbour (calm, sunlit) */
.scn-myriandus-harbour {
  background: 
    linear-gradient(180deg, #a0c8e0 0%, #e0e8c0 35%, #c8b888 100%),
    radial-gradient(ellipse at 50% 60%, rgba(255,240,180,0.3) 0%, transparent 50%);
}
.scn-myriandus-harbour .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d8e8 0%, #e8ecc0 100%);
  animation: mrh-sky 14s ease-in-out infinite alternate;
}
.scn-myriandus-harbour .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a8a9a 0%, #2a6a7a 40%, #1a4a5a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: mrh-sea 12s ease-in-out infinite alternate;
}
.scn-myriandus-harbour .building-left,
.scn-myriandus-harbour .building-right {
  position: absolute; bottom: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8a878 0%, #988858 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-myriandus-harbour .building-left { left: 25%; animation: mrh-building 10s ease-in-out infinite; }
.scn-myriandus-harbour .building-right { right: 25%; animation: mrh-building 10s ease-in-out infinite reverse; }
.scn-myriandus-harbour .ship {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  animation: mrh-ship 8s ease-in-out infinite;
}
.scn-myriandus-harbour .sail {
  position: absolute; bottom: 40%; left: 43%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #f0e4c0 0%, #d8c898 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  clip-path: polygon(50% 100%, 0% 0%, 100% 0%);
  animation: mrh-sail 6s ease-in-out infinite alternate;
}
.scn-myriandus-harbour .wave-1,
.scn-myriandus-harbour .wave-2 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20px;
  background: linear-gradient(180deg, rgba(74,138,154,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-myriandus-harbour .wave-1 { animation: mrh-wave-1 8s ease-in-out infinite alternate; }
.scn-myriandus-harbour .wave-2 { bottom: 10px; animation: mrh-wave-2 10s ease-in-out infinite alternate reverse; }
@keyframes mrh-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mrh-sea { 0% { background-position: 0 0 } 50% { background-position: 20px 10px } 100% { background-position: 0 0 } }
@keyframes mrh-building { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mrh-ship { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mrh-sail { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes mrh-wave-1 { 0% { transform: translateX(-10px) scaleY(1) } 50% { transform: translateX(0) scaleY(1.2) } 100% { transform: translateX(10px) scaleY(1) } }
@keyframes mrh-wave-2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(1.1) } 100% { transform: translateX(-10px) scaleY(1) } }

/* cyrus-noble-response (warm, dim-interior) */
.scn-cyrus-noble-response {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 35%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 50%, rgba(200,120,60,0.2) 0%, transparent 60%);
}
.scn-cyrus-noble-response .wall-back {
  position: absolute; inset: 0 10% 0 10%;
  background: repeating-linear-gradient(90deg, #3a221a 0px, #4a2a1a 4px, #3a221a 8px);
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: cnr-wall 20s ease-in-out infinite alternate;
}
.scn-cyrus-noble-response .torch-left,
.scn-cyrus-noble-response .torch-right {
  position: absolute; bottom: 40%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 10px rgba(255,180,80,0.4);
}
.scn-cyrus-noble-response .torch-left { left: 15%; animation: cnr-torch 3s ease-in-out infinite alternate; }
.scn-cyrus-noble-response .torch-right { right: 15%; animation: cnr-torch 3s ease-in-out infinite alternate-reverse; }
.scn-cyrus-noble-response .figure-cyrus {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0e05 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(200,120,60,0.3);
  animation: cnr-figure 8s ease-in-out infinite alternate;
}
.scn-cyrus-noble-response .table {
  position: absolute; bottom: 8%; left: 40%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #3a221a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cnr-table 10s ease-in-out infinite alternate;
}
.scn-cyrus-noble-response .light-halo {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: cnr-halo 5s ease-in-out infinite alternate;
}
@keyframes cnr-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cnr-torch { 0% { transform: scaleY(1) translateY(0); opacity:0.8 } 50% { transform: scaleY(1.05) translateY(-3px); opacity:1 } 100% { transform: scaleY(0.95) translateY(2px); opacity:0.9 } }
@keyframes cnr-figure { 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 cnr-table { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes cnr-halo { 0% { transform: translateX(-50%) scale(1); opacity:0.6 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.7 } }

/* xenophon-stoning-ambassadors */
.scn-xenophon-stoning-ambassadors {
  background: linear-gradient(180deg, #e8d5b0 0%, #c9a87a 30%, #a68a5e 70%, #6b4e2e 100%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-stoning-ambassadors .sky-dust {
  position: absolute; inset: 0 0 55% 0;
  background: radial-gradient(ellipse at 70% 80%, #f5e6c8 0%, #d6b88a 50%, transparent 70%);
  animation: xs1-dust 12s ease-in-out infinite alternate;
}
.scn-xenophon-stoning-ambassadors .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c9a87a 0%, #8b6f44 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.4);
}
.scn-xenophon-stoning-ambassadors .wall {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(135deg, #b3956a 0%, #7a5f3a 50%, #5a442a 100%);
  border-radius: 6% 6% 2% 2% / 20% 20% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-xenophon-stoning-ambassadors .ambassador {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xs1-fall 3s ease-in-out infinite;
}
.scn-xenophon-stoning-ambassadors .stone {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, #6b5a3e 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: xs1-stone 2.5s ease-in infinite;
}
.scn-xenophon-stoning-ambassadors .cluster1 { top: 30%; left: 45%; animation-delay: 0s; }
.scn-xenophon-stoning-ambassadors .cluster2 { top: 35%; left: 55%; animation-delay: 0.8s; }
.scn-xenophon-stoning-ambassadors .cluster3 { top: 25%; left: 50%; animation-delay: 1.6s; }
.scn-xenophon-stoning-ambassadors .arm-throw {
  position: absolute; bottom: 30%; left: 52%; width: 16px; height: 10px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 20% 40% / 50% 50% 30% 50%;
  transform-origin: left center;
  animation: xs1-throw 1.8s ease-in-out infinite;
}
.scn-xenophon-stoning-ambassadors .shadow-fig {
  position: absolute; bottom: 30%; left: 20%; width: 100px; height: 50px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: xs1-shadow 6s ease-in-out infinite alternate;
}
@keyframes xs1-dust { 0% { opacity: .7; transform: translateX(0); } 50% { opacity: .9; transform: translateX(-5px); } 100% { opacity: .8; transform: translateX(0); } }
@keyframes xs1-fall { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(3px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(2px) rotate(3deg); } }
@keyframes xs1-stone { 0% { transform: translate(0,0) scale(1); opacity:1; } 50% { transform: translate(-20px, 30px) scale(.8); opacity:.8; } 100% { transform: translate(-40px, 60px) scale(.5); opacity:0; } }
@keyframes xs1-throw { 0% { transform: rotate(-30deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-30deg); } }
@keyframes xs1-shadow { 0% { opacity: .1; transform: scaleX(1); } 50% { opacity: .3; transform: scaleX(1.2); } 100% { opacity: .15; transform: scaleX(1); } }

/* xenophon-describes-riot */
.scn-xenophon-describes-riot {
  background: linear-gradient(180deg, #e0c8a0 0%, #c4a07a 40%, #9a7a5a 70%, #6a503a 100%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-describes-riot .sky-bright {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(ellipse at 30% 20%, #ffe8c0 0%, #d4b88a 60%, transparent 80%);
  animation: xr2-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-describes-riot .dust-cloud {
  position: absolute; bottom: 40%; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,170,130,.5) 0%, transparent 70%);
  filter: blur(12px);
  animation: xr2-dust 8s ease-in-out infinite;
}
.scn-xenophon-describes-riot .crowd-base {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #5a4030 0%, #8a6a4a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
}
.scn-xenophon-describes-riot .figure {
  position: absolute; bottom: 20%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xr2-run 4s ease-in-out infinite;
}
.scn-xenophon-describes-riot .f1 { left: 25%; animation-delay: 0s; }
.scn-xenophon-describes-riot .f2 { left: 50%; animation-delay: 1.2s; }
.scn-xenophon-describes-riot .f3 { left: 70%; animation-delay: 2.4s; }
.scn-xenophon-describes-riot .stone-arc1 {
  position: absolute; top: 25%; left: 35%; width: 6px; height: 6px;
  background: radial-gradient(circle, #6b5a3e 0%, #3a2a1a 100%);
  border-radius: 50%;
  animation: xr2-stone 2s ease-in infinite;
}
.scn-xenophon-describes-riot .stone-arc2 {
  position: absolute; top: 30%; left: 60%; width: 8px; height: 8px;
  background: radial-gradient(circle, #6b5a3e 0%, #3a2a1a 100%);
  border-radius: 50%;
  animation: xr2-stone 3s ease-in infinite 1s;
}
.scn-xenophon-describes-riot .rioter-shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: xr2-darken 10s ease-in-out infinite alternate;
}
@keyframes xr2-sky { 0% { opacity: .8; transform: scale(1); } 50% { opacity: .95; transform: scale(1.02); } 100% { opacity: .85; transform: scale(1); } }
@keyframes xr2-dust { 0% { transform: translateX(0); opacity: .6; } 50% { transform: translateX(-10px); opacity: .8; } 100% { transform: translateX(0); opacity: .7; } }
@keyframes xr2-run { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-2px) rotate(5deg) scaleX(.95); } 50% { transform: translateY(0) rotate(0deg) scaleX(1); } 75% { transform: translateY(-1px) rotate(-5deg) scaleX(.95); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes xr2-stone { 0% { transform: translate(0,0) scale(1); opacity:1; } 50% { transform: translate(-15px, -25px) scale(.8); opacity:.9; } 100% { transform: translate(-30px, -50px) scale(.4); opacity:0; } }
@keyframes xr2-darken { 0% { opacity: .1; } 50% { opacity: .3; } 100% { opacity: .15; } }

/* xenophon-chaos-and-drownings */
.scn-xenophon-chaos-and-drownings {
  background: linear-gradient(180deg, #b8c8d0 0%, #7a8a96 40%, #4a5a66 70%, #2a3a44 100%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-chaos-and-drownings .sky-gloom {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(ellipse at 50% 80%, #c4d4dc 0%, #8a9aa6 50%, transparent 80%);
  animation: xc3-sky 14s ease-in-out infinite alternate;
}
.scn-xenophon-chaos-and-drownings .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a2a34 0%, #4a6a7a 50%, #6a8a9a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: xc3-water 8s ease-in-out infinite;
}
.scn-xenophon-chaos-and-drownings .clerk {
  position: absolute; bottom: 35%; left: 42%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xc3-reel 3s ease-in-out infinite;
}
.scn-xenophon-chaos-and-drownings .stone-storm {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(circle at 30% 40%, rgba(90,70,40,.4) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(90,70,40,.3) 0%, transparent 50%);
  filter: blur(8px);
  animation: xc3-storm 3s ease-in-out infinite;
}
.scn-xenophon-chaos-and-drownings .wave-fore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a4a5a 0%, #4a6a7a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: xc3-wave 6s ease-in-out infinite alternate;
}
.scn-xenophon-chaos-and-drownings .splash1,
.scn-xenophon-chaos-and-drownings .splash2 {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #b0c8d0 0%, rgba(160,180,200,0) 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: xc3-splash 2s ease-out infinite;
}
.scn-xenophon-chaos-and-drownings .splash1 { bottom: 20%; left: 35%; animation-delay: 0s; }
.scn-xenophon-chaos-and-drownings .splash2 { bottom: 25%; left: 60%; animation-delay: 1.2s; }
.scn-xenophon-chaos-and-drownings .arm-lashing {
  position: absolute; bottom: 36%; left: 50%; width: 20px; height: 12px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 60% 20% 40% / 50% 50% 30% 50%;
  transform-origin: left center;
  animation: xc3-arm 1.5s ease-in-out infinite;
}
@keyframes xc3-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes xc3-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes xc3-reel { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(-10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(10deg); } }
@keyframes xc3-storm { 0% { opacity: .2; transform: scale(1); } 50% { opacity: .5; transform: scale(1.1); } 100% { opacity: .3; transform: scale(1); } }
@keyframes xc3-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes xc3-splash { 0% { transform: scale(0); opacity:1; } 30% { transform: scale(1.5); opacity:.8; } 100% { transform: scale(2); opacity:0; } }
@keyframes xc3-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(-20deg); } }

/* xenophon-condemns-lawlessness */
.scn-xenophon-condemns-lawlessness {
  background: linear-gradient(180deg, #5a5a62 0%, #3a3a42 40%, #22222a 70%, #111118 100%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-condemns-lawlessness .overcast-bg {
  position: absolute; inset: 0 0 45% 0;
  background: radial-gradient(ellipse at 50% 30%, #7a7a84 0%, #4a4a54 50%, transparent 80%);
  animation: xl4-overcast 20s ease-in-out infinite alternate;
}
.scn-xenophon-condemns-lawlessness .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #1a1a22 0%, #2a2a34 50%, #3a3a44 100%);
  border-radius: 20% 40% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,.6);
}
.scn-xenophon-condemns-lawlessness .crowd-huddle {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(50,40,35,.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: xl4-huddle 10s ease-in-out infinite;
}
.scn-xenophon-condemns-lawlessness .figure-fear1 {
  position: absolute; bottom: 22%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a34 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xl4-fear 5s ease-in-out infinite;
}
.scn-xenophon-condemns-lawlessness .figure-fear2 {
  position: absolute; bottom: 20%; left: 55%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a34 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xl4-fear 5s ease-in-out infinite 2.5s;
}
.scn-xenophon-condemns-lawlessness .dog-shape {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 16px;
  background: linear-gradient(135deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: xl4-dog 4s ease-in-out infinite;
}
.scn-xenophon-condemns-lawlessness .shadow-madness {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 60%);
  filter: blur(20px);
  animation: xl4-shadow 12s ease-in-out infinite alternate;
}
@keyframes xl4-overcast { 0% { opacity: .6; transform: scale(1); } 50% { opacity: .8; transform: scale(1.02); } 100% { opacity: .7; transform: scale(1); } }
@keyframes xl4-huddle { 0% { opacity: .2; transform: scale(1); } 50% { opacity: .4; transform: scale(1.05); } 100% { opacity: .3; transform: scale(1); } }
@keyframes xl4-fear { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-5deg); } 60% { transform: translateY(0) rotate(0deg); } 80% { transform: translateY(2px) rotate(5deg); } }
@keyframes xl4-dog { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(3px); } 50% { transform: rotate(-10deg) translateX(0); } 75% { transform: rotate(-15deg) translateX(-3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes xl4-shadow { 0% { opacity: .1; } 50% { opacity: .3; } 100% { opacity: .15; } }

/* message-to-anaxibius */
.scn-message-to-anaxibius {
  background: linear-gradient(180deg, #6b9bc0 0%, #9ac7e7 40%, #e6d9a8 70%, #a8b87a 100%), radial-gradient(ellipse at 30% 20%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-message-to-anaxibius .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7fb2d4 0%, #b4d8f0 60%, #f0e8b0 100%); animation: mtp-sky 12s ease-in-out infinite alternate; }
.scn-message-to-anaxibius .sun { position:absolute; top:12%; left:75%; width:60px; height:60px; background: radial-gradient(circle, #fff7c0 0%, #ffdd77 50%, transparent 70%); border-radius:50%; filter: blur(6px); animation: mtp-sun 20s ease-in-out infinite alternate; }
.scn-message-to-anaxibius .hills-back { position:absolute; bottom:40%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a9a5a 0%, #4a6a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; opacity:0.5; animation: mtp-hills 18s ease-in-out infinite alternate; }
.scn-message-to-anaxibius .hills-mid { position:absolute; bottom:30%; left:0; right:0; height:28%; background: linear-gradient(180deg, #8aaa6a 0%, #5a7a4a 100%); border-radius: 50% 50% 0 0 / 70% 60% 0 0; animation: mtp-hills-mid 14s ease-in-out infinite alternate; }
.scn-message-to-anaxibius .path { position:absolute; bottom:22%; left:10%; width:80%; height:10%; background: linear-gradient(90deg, transparent 0%, #c8b878 20%, #b8a868 50%, #c8b878 80%, transparent 100%); border-radius: 50% 50% 0 0; transform: perspective(200px) rotateX(10deg); animation: mtp-path 30s linear infinite; }
.scn-message-to-anaxibius .messenger { position:absolute; bottom:20%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mtp-walk 5s ease-in-out infinite; }
.scn-message-to-anaxibius .dust-cloud { position:absolute; bottom:18%; left:44%; width:30px; height:15px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,130,0.3) 0%, transparent 70%); animation: mtp-dust 5s ease-in-out infinite; }
.scn-message-to-anaxibius .grass-blade { position:absolute; bottom:22%; left:70%; width:6px; height:20px; background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%); border-radius: 50%; transform-origin: bottom center; animation: mtp-grass 7s ease-in-out infinite alternate; }
@keyframes mtp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mtp-sun { 0% { transform: scale(0.95); opacity:0.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:0.9 } }
@keyframes mtp-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mtp-hills-mid { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes mtp-path { 0% { background-position: 0% 0% } 100% { background-position: -100% 0% } }
@keyframes mtp-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes mtp-dust { 0% { transform: translateX(0) scale(1); opacity:0.5 } 50% { transform: translateX(10px) scale(1.5); opacity:0.2 } 100% { transform: translateX(20px) scale(1); opacity:0.5 } }
@keyframes mtp-grass { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

/* anaxibius-responds */
.scn-anaxibius-responds {
  background: linear-gradient(180deg, #9a7a5a 0%, #d4b88a 30%, #e8d6a8 60%, #f0e0b0 100%), radial-gradient(ellipse at 80% 20%, rgba(255,240,200,0.3) 0%, transparent 50%);
}
.scn-anaxibius-responds .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b090 0%, #b09070 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.15); }
.scn-anaxibius-responds .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #705030 0%, #503020 100%); border-radius: 10% 10% 0 0; }
.scn-anaxibius-responds .window { position:absolute; top:15%; left:70%; width:80px; height:100px; background: linear-gradient(180deg, #b0d0e0 0%, #d0e8f0 100%); border:8px solid #7a5a3a; border-radius: 4px; box-shadow: 0 0 40px rgba(255,240,180,0.3); animation: ar-window 15s ease-in-out infinite alternate; }
.scn-anaxibius-responds .desk { position:absolute; bottom:18%; left:30%; width:120px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; transform: perspective(300px) rotateX(20deg); }
.scn-anaxibius-responds .scroll { position:absolute; bottom:24%; left:42%; width:40px; height:12px; background: linear-gradient(180deg, #f0e0c0 0%, #e0c090 100%); border-radius: 50%; transform: rotate(-10deg); animation: ar-scroll 8s ease-in-out infinite alternate; }
.scn-anaxibius-responds .hand { position:absolute; bottom:26%; left:50%; width:14px; height:18px; background: linear-gradient(180deg, #c09070 0%, #a07050 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ar-hand 6s ease-in-out infinite; }
.scn-anaxibius-responds .figure-sitting { position:absolute; bottom:14%; left:38%; width:60px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(2deg); animation: ar-figure 12s ease-in-out infinite alternate; }
.scn-anaxibius-responds .light-beam { position:absolute; top:10%; left:68%; width:100px; height:200px; background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%); transform: rotate(10deg); filter: blur(8px); animation: ar-beam 8s ease-in-out infinite alternate; }
@keyframes ar-window { 0% { opacity:0.85; box-shadow: 0 0 20px rgba(255,240,180,0.2) } 50% { opacity:1; box-shadow: 0 0 50px rgba(255,240,180,0.5) } 100% { opacity:0.9; box-shadow: 0 0 30px rgba(255,240,180,0.3) } }
@keyframes ar-scroll { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-12deg) } }
@keyframes ar-hand { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(5deg) } 70% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ar-figure { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0) scale(1.02) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes ar-beam { 0% { opacity:0.3; transform: rotate(10deg) } 50% { opacity:0.6; transform: rotate(15deg) } 100% { opacity:0.4; transform: rotate(10deg) } }

/* coeratadas-general */
.scn-coeratadas-general {
  background: linear-gradient(180deg, #7aaac0 0%, #a0c8d8 40%, #d0d8a0 70%, #a8b878 100%), radial-gradient(ellipse at 50% 20%, rgba(255,255,200,0.2) 0%, transparent 60%);
}
.scn-coeratadas-general .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8bb8d0 0%, #c0d8e0 60%, #e8e0b0 100%); animation: cg-sky 10s ease-in-out infinite alternate; }
.scn-coeratadas-general .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a9a5a 0%, #60703a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-coeratadas-general .soldier-left { position:absolute; bottom:20%; left:15%; width:18px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cg-soldier-l 6s ease-in-out infinite; }
.scn-coeratadas-general .soldier-right { position:absolute; bottom:20%; right:15%; width:18px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cg-soldier-r 6s ease-in-out infinite; animation-delay: 0.5s; }
.scn-coeratadas-general .soldier-center { position:absolute; bottom:20%; left:46%; width:18px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cg-soldier-c 6s ease-in-out infinite; animation-delay: 1s; }
.scn-coeratadas-general .general { position:absolute; bottom:27%; left:50%; width:24px; height:48px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; z-index:2; animation: cg-general 8s ease-in-out infinite alternate; }
.scn-coeratadas-general .spear { position:absolute; bottom:35%; left:48%; width:3px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); transform: rotate(5deg); animation: cg-spear 8s ease-in-out infinite alternate; }
.scn-coeratadas-general .banner { position:absolute; bottom:32%; left:48%; width:20px; height:30px; background: linear-gradient(180deg, #a8523a 0%, #803a1a 100%); border-radius: 0 0 30% 30%; transform: rotate(5deg); transform-origin: top left; animation: cg-banner 8s ease-in-out infinite alternate; }
@keyframes cg-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cg-soldier-l { 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(1deg) } }
@keyframes cg-soldier-r { 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(-1deg) } }
@keyframes cg-soldier-c { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 70% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cg-general { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) translateY(-2px) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes cg-spear { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(5deg) } }
@keyframes cg-banner { 0% { transform: rotate(5deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(5deg) scaleX(1) } }

/* coeratedas-brings-provisions */
.scn-coeratedas-brings-provisions {
  background: linear-gradient(180deg, #8bb0c8 0%, #b0d0da 40%, #d0d8a8 70%, #a0b870 100%), radial-gradient(ellipse at 70% 30%, rgba(255,255,200,0.2) 0%, transparent 60%);
}
.scn-coeratedas-brings-provisions .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0c8d8 0%, #c8dce8 50%, #e0e0b0 100%); animation: cp-sky 15s ease-in-out infinite alternate; }
.scn-coeratedas-brings-provisions .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a8a5a 0%, #50603a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-coeratedas-brings-provisions .carrier-1 { position:absolute; bottom:28%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-carrier 7s ease-in-out infinite; }
.scn-coeratedas-brings-provisions .carrier-2 { position:absolute; bottom:28%; left:46%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-carrier 7s ease-in-out infinite; animation-delay: 0.4s; }
.scn-coeratedas-brings-provisions .carrier-3 { position:absolute; bottom:28%; left:62%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-carrier 7s ease-in-out infinite; animation-delay: 0.8s; }
.scn-coeratedas-brings-provisions .bundle-1 { position:absolute; bottom:42%; left:27%; width:30px; height:20px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 30%; transform: rotate(10deg); animation: cp-bundle 7s ease-in-out infinite; animation-delay: 0s; }
.scn-coeratedas-brings-provisions .bundle-2 { position:absolute; bottom:42%; left:43%; width:30px; height:20px; background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%); border-radius: 30%; transform: rotate(-5deg); animation: cp-bundle 7s ease-in-out infinite; animation-delay: 0.4s; }
.scn-coeratedas-brings-provisions .bundle-3 { position:absolute; bottom:42%; left:59%; width:30px; height:20px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 30%; transform: rotate(15deg); animation: cp-bundle 7s ease-in-out infinite; animation-delay: 0.8s; }
.scn-coeratedas-brings-provisions .dust-trail { position:absolute; bottom:22%; left:20%; right:10%; height:8px; background: radial-gradient(ellipse at 50% 100%, rgba(180,160,120,0.3) 0%, transparent 70%); filter: blur(3px); animation: cp-dust 20s linear infinite; }
@keyframes cp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cp-carrier { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cp-bundle { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-2px) } 50% { transform: rotate(8deg) translateY(0) } 75% { transform: rotate(10deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes cp-dust { 0% { opacity:0.4; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(20px) } 100% { opacity:0.4; transform: translateX(40px) } }

.scn-arcadians-secede {
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 40%, #2a2a2a 100%),
              radial-gradient(ellipse at 50% 0%, #6a6a6a 0%, transparent 60%);
}
.scn-arcadians-secede .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%);
  animation: ase-sky 8s ease-in-out infinite alternate;
}
.scn-arcadians-secede .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
}
.scn-arcadians-secede .tent-l {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 30%, 80% 100%, 0% 100%);
  animation: ase-tent 6s ease-in-out infinite;
}
.scn-arcadians-secede .tent-r {
  position: absolute; bottom: 30%; right: 20%; width: 80px; height: 100px;
  background: linear-gradient(225deg, #4a3a2a 0%, #2a2a1a 100%);
  clip-path: polygon(100% 0%, 0% 30%, 20% 100%, 100% 100%);
  animation: ase-tent 6s ease-in-out infinite reverse;
}
.scn-arcadians-secede .fig1 {
  position: absolute; bottom: 35%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ase-fig1 4s ease-in-out infinite;
}
.scn-arcadians-secede .fig2 {
  position: absolute; bottom: 35%; right: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ase-fig2 4.5s ease-in-out infinite;
}
.scn-arcadians-secede .fig3 {
  position: absolute; bottom: 38%; left: 48%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ase-fig3 5s ease-in-out infinite;
}
.scn-arcadians-secede .shadow {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ase-shadow 3s ease-in-out infinite alternate;
}
@keyframes ase-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes ase-tent { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } }
@keyframes ase-fig1 { 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(0deg) } }
@keyframes ase-fig2 { 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(0deg) } }
@keyframes ase-fig3 { 0% { transform: translateX(0) translateY(0) scale(0.95) } 33% { transform: translateX(2px) translateY(-1px) scale(1) } 66% { transform: translateX(-2px) translateY(-1px) scale(0.95) } 100% { transform: translateX(0) translateY(0) scale(1) } }
@keyframes ase-shadow { 0% { opacity: 0.3; transform: scaleX(1) } 50% { opacity: 0.5; transform: scaleX(1.1) } 100% { opacity: 0.3; transform: scaleX(1) } }

.scn-arcadians-choose-own-generals {
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 50%, #2a2a2a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, transparent 70%);
}
.scn-arcadians-choose-own-generals .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%);
  animation: aco-sky 10s ease-in-out infinite alternate;
}
.scn-arcadians-choose-own-generals .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
}
.scn-arcadians-choose-own-generals .hill {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: aco-hill 12s ease-in-out infinite alternate;
}
.scn-arcadians-choose-own-generals .speaker {
  position: absolute; bottom: 32%; left: 45%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aco-speaker 3s ease-in-out infinite;
}
.scn-arcadians-choose-own-generals .crowd-left {
  position: absolute; bottom: 30%; left: 15%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #1a1a1a 30%, transparent 70%);
  animation: aco-crowd 4s ease-in-out infinite alternate;
}
.scn-arcadians-choose-own-generals .crowd-right {
  position: absolute; bottom: 30%; right: 15%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #1a1a1a 30%, transparent 70%);
  animation: aco-crowd 4.5s ease-in-out infinite alternate reverse;
}
.scn-arcadians-choose-own-generals .banner {
  position: absolute; bottom: 40%; left: 48%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform-origin: bottom center;
  animation: aco-banner 2s ease-in-out infinite;
}
.scn-arcadians-choose-own-generals .dust {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15px;
  background: radial-gradient(ellipse, rgba(60,50,40,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: aco-dust 6s ease-in-out infinite;
}
@keyframes aco-sky { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes aco-hill { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes aco-speaker { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(3deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes aco-crowd { 0% { transform: scaleY(1) opacity(0.9) } 50% { transform: scaleY(1.1) opacity(1) } 100% { transform: scaleY(1) opacity(0.9) } }
@keyframes aco-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes aco-dust { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-5px) scaleX(1.3) } 100% { transform: translateY(0) scaleX(1) } }

.scn-xenophon-decides-to-stay {
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 50%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 0%, #5a5a5a 0%, transparent 60%);
}
.scn-xenophon-decides-to-stay .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  animation: xds-bg 9s ease-in-out infinite alternate;
}
.scn-xenophon-decides-to-stay .tent {
  position: absolute; bottom: 25%; left: 35%; width: 100px; height: 80px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a2a1a 100%);
  border-radius: 0 0 10% 10% / 0 0 20% 20%;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: xds-tent 7s ease-in-out infinite;
}
.scn-xenophon-decides-to-stay .xenophon {
  position: absolute; bottom: 28%; left: 52%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xds-xen 3.5s ease-in-out infinite;
}
.scn-xenophon-decides-to-stay .horse {
  position: absolute; bottom: 25%; left: 60%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 60% 40%;
  animation: xds-horse 5s ease-in-out infinite;
}
.scn-xenophon-decides-to-stay .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
}
.scn-xenophon-decides-to-stay .spear {
  position: absolute; bottom: 40%; left: 50%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform-origin: bottom center;
  animation: xds-spear 2s ease-in-out infinite;
}
.scn-xenophon-decides-to-stay .clouds {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 20px;
  background: radial-gradient(ellipse, rgba(100,100,100,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: xds-clouds 30s linear infinite;
}
@keyframes xds-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes xds-tent { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } }
@keyframes xds-xen { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 60% { transform: translateX(-2px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes xds-horse { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes xds-spear { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes xds-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-200px) } }

.scn-cheirisophus-resigns-neon-takes {
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 50%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a3a 0%, transparent 70%);
}
.scn-cheirisophus-resigns-neon-takes .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  animation: crn-sky 11s ease-in-out infinite alternate;
}
.scn-cheirisophus-resigns-neon-takes .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-cheirisophus-resigns-neon-takes .fig-old {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crn-old 4s ease-in-out infinite;
}
.scn-cheirisophus-resigns-neon-takes .fig-new {
  position: absolute; bottom: 32%; right: 30%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crn-new 4.2s ease-in-out infinite reverse;
}
.scn-cheirisophus-resigns-neon-takes .staff {
  position: absolute; bottom: 35%; left: 48%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform-origin: bottom center;
  animation: crn-staff 2.5s ease-in-out infinite;
}
.scn-cheirisophus-resigns-neon-takes .shadow {
  position: absolute; bottom: 25%; left: 25%; right: 25%; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: crn-shadow 4s ease-in-out infinite alternate;
}
.scn-cheirisophus-resigns-neon-takes .dust {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 10px;
  background: radial-gradient(ellipse, rgba(40,30,20,0.3) 0%, transparent 70%);
  filter: blur(3px);
  animation: crn-dust 7s ease-in-out infinite;
}
@keyframes crn-sky { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes crn-old { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-3deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes crn-new { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(3deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes crn-staff { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes crn-shadow { 0% { opacity: 0.3; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.2) } 100% { opacity: 0.3; transform: scaleX(1) } }
@keyframes crn-dust { 0% { transform: translateY(0) scaleY(1) opacity(0.4) } 50% { transform: translateY(-4px) scaleY(1.5) opacity(0.2) } 100% { transform: translateY(0) scaleY(1) opacity(0.4) } }

.scn-soldiers-lament {
  background: linear-gradient(180deg, #0a1428 0%, #0c1a30 40%, #162240 100%),
              radial-gradient(ellipse at 50% 100%, #2a3a5a 0%, transparent 70%);
}
.scn-soldiers-lament .sky-stars {
  position: absolute; inset: 0 0 60% 0;
  background: radial-gradient(2px 2px at 20% 10%, #ffffff 0%, transparent 100%),
              radial-gradient(3px 3px at 50% 25%, #b0c4ff 0%, transparent 100%),
              radial-gradient(1.5px 1.5px at 70% 5%, #ffffff 0%, transparent 100%),
              radial-gradient(2.5px 2.5px at 35% 60%, #c0d0ff 0%, transparent 100%);
  background-size: 200px 200px, 300px 300px, 150px 150px, 400px 400px;
  background-repeat: repeat;
  animation: sl-stars 60s linear infinite;
}
.scn-soldiers-lament .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 0% 0% 0% 0% / 0% 0% 0% 0%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-soldiers-lament .campfire {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #ff8844 0%, #cc4400 60%, transparent 100%);
  border-radius: 50%;
  animation: sl-fire 4s ease-in-out infinite alternate;
}
.scn-soldiers-lament .glow {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,136,68,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sl-glow 4s ease-in-out infinite alternate;
}
.scn-soldiers-lament .soldier {
  position: absolute; bottom: 0; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-soldiers-lament .soldier-a { left: 30%; animation: sl-sleep 12s ease-in-out infinite; }
.scn-soldiers-lament .soldier-b { left: 55%; animation: sl-sleep 14s ease-in-out infinite 2s; }
.scn-soldiers-lament .soldier-c { left: 70%; animation: sl-sleep 16s ease-in-out infinite 4s; height: 38px; width: 15px; }

@keyframes sl-stars {
  0% { background-position: 0 0, 0 0, 0 0, 0 0; }
  100% { background-position: 200px 100px, -150px 200px, 100px -50px, -300px 0; }
}
@keyframes sl-fire {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.2) rotate(5deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95) rotate(-5deg); opacity: 0.6; }
}
@keyframes sl-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.3); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes sl-sleep {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-xenophon-introduced {
  background: linear-gradient(180deg, #2a1e0a 0%, #3a2a14 40%, #1e140a 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 80%);
}
.scn-xenophon-introduced .tent-wall {
  position: absolute; inset: 40% 10% 0 5%;
  background: linear-gradient(135deg, #5a4020 0%, #3a2a10 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
}
.scn-xenophon-introduced .tent-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #2a1a08 0%, #1a0e04 100%);
  border-radius: 0 0 20% 20%;
}
.scn-xenophon-introduced .lamp {
  position: absolute; bottom: 45%; left: 50%; width: 12px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffaa44 0%, #aa5500 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #aa5500;
  animation: xi-lamp 6s ease-in-out infinite alternate;
}
.scn-xenophon-introduced .lamp-glow {
  position: absolute; bottom: 44%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,170,68,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: xi-lamp-glow 6s ease-in-out infinite alternate;
}
.scn-xenophon-introduced .table {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #6a4a28 0%, #4a2a10 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-xenophon-introduced .figure-xenophon {
  position: absolute; bottom: 0; left: 35%; width: 14px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xi-figure 8s ease-in-out infinite;
}
.scn-xenophon-introduced .figure-proxenus {
  position: absolute; bottom: 0; left: 55%; width: 16px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xi-figure 8s ease-in-out infinite 1s;
}

@keyframes xi-lamp {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.1) rotate(3deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity: 0.8; }
}
@keyframes xi-lamp-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes xi-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-xenophon-consults-socrates {
  background: linear-gradient(180deg, #1a140e 0%, #2a1e12 40%, #1a100a 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a14 0%, transparent 80%);
}
.scn-xenophon-consults-socrates .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a18 0%, #1e140a 100%);
  border-radius: 0;
}
.scn-xenophon-consults-socrates .column {
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 70px;
  background: linear-gradient(90deg, #5a4a34 0%, #7a6a4a 50%, #5a4a34 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-xenophon-consults-socrates .lamp-socrates {
  position: absolute; bottom: 50%; left: 45%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #ffbb44 0%, #aa5500 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #aa5500;
  animation: xs-lamp 5s ease-in-out infinite alternate;
}
.scn-xenophon-consults-socrates .scroll {
  position: absolute; bottom: 22%; left: 40%; width: 24px; height: 6px;
  background: linear-gradient(180deg, #d4b888 0%, #a88a5a 100%);
  border-radius: 2px;
  transform: rotate(12deg);
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  animation: xs-scroll 10s ease-in-out infinite;
}
.scn-xenophon-consults-socrates .socrates-seated {
  position: absolute; bottom: 2%; left: 38%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xs-socrates 9s ease-in-out infinite;
}
.scn-xenophon-consults-socrates .xenophon-standing {
  position: absolute; bottom: 0; left: 55%; width: 14px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xs-xenophon 7s ease-in-out infinite 1s;
}

@keyframes xs-lamp {
  0% { transform: scale(1) rotate(0deg); opacity: 0.9; }
  50% { transform: scale(1.15) rotate(5deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-3deg); opacity: 0.8; }
}
@keyframes xs-scroll {
  0% { transform: rotate(12deg) translateX(0); }
  50% { transform: rotate(8deg) translateX(4px); }
  100% { transform: rotate(14deg) translateX(-2px); }
}
@keyframes xs-socrates {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xs-xenophon {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(3deg); }
  60% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-socrates-reproves-xenophon {
  background: linear-gradient(180deg, #1a120e 0%, #2a1c14 40%, #1a0e0a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2418 0%, transparent 70%);
}
.scn-socrates-reproves-xenophon .chamber-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1c14 0%, #3a2a1c 50%, #2a1c14 100%);
  border-radius: 0;
}
.scn-socrates-reproves-xenophon .pedestal {
  position: absolute; bottom: 10%; left: 35%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-socrates-reproves-xenophon .statue {
  position: absolute; bottom: 18%; left: 35%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.7;
}
.scn-socrates-reproves-xenophon .lamp-reprove {
  position: absolute; bottom: 55%; left: 50%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #ffaa44 0%, #994400 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #994400;
  animation: sr-lamp 4s ease-in-out infinite alternate;
}
.scn-socrates-reproves-xenophon .socrates-reproving {
  position: absolute; bottom: 0; left: 42%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-socrates 6s ease-in-out infinite;
}
.scn-socrates-reproves-xenophon .xenophon-bowed {
  position: absolute; bottom: 0; left: 55%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-xenophon 8s ease-in-out infinite 0.5s;
}

@keyframes sr-lamp {
  0% { transform: scale(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.1) rotate(4deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-2deg); opacity: 0.7; }
}
@keyframes sr-socrates {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  25% { transform: translateY(-1px) rotate(3deg) scaleY(1.02); }
  50% { transform: translateY(-2px) rotate(-2deg) scaleY(0.98); }
  75% { transform: translateY(-3px) rotate(5deg) scaleY(1.01); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes sr-xenophon {
  0% { transform: translateY(0) rotate(0deg) skewX(0deg); }
  30% { transform: translateY(-5px) rotate(2deg) skewX(-3deg); }
  60% { transform: translateY(-2px) rotate(-1deg) skewX(2deg); }
  100% { transform: translateY(0) rotate(0deg) skewX(0deg); }
}

.scn-enemy-advances-silently {
  background: linear-gradient(180deg, #f2c94c 0%, #e2a829 30%, #c4882a 60%, #8b5a2b 100%), 
              radial-gradient(ellipse at 50% 0%, #ffe066 0%, transparent 70%);
}
.scn-enemy-advances-silently .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f9e79f 0%, #f4d03f 60%, transparent 100%); animation: ea-sky 12s ease-in-out infinite alternate; }
.scn-enemy-advances-silently .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle at 30% 30%, #fff4b0 0%, #ffd700 40%, #ffaa00 100%); border-radius:50%; box-shadow: 0 0 80px 30px #ffaa00, 0 0 160px 60px rgba(255,170,0,.3); animation: ea-sun 20s ease-in-out infinite; }
.scn-enemy-advances-silently .dust { position:absolute; bottom:35%; left:10%; width:80%; height:15%; background: radial-gradient(ellipse at 50% 60%, rgba(210,180,140,.6) 0%, transparent 70%); filter: blur(8px); animation: ea-dust 4s ease-in-out infinite alternate; }
.scn-enemy-advances-silently .horse { position:absolute; bottom:30%; left:20%; width:40px; height:30px; background: linear-gradient(135deg, #5a3e1b 0%, #3a2a0e 100%); border-radius: 40% 50% 30% 40% / 60% 50% 40% 30%; box-shadow: -4px 0 8px rgba(0,0,0,.4); animation: ea-horse 3s ease-in-out infinite; }
.scn-enemy-advances-silently .rider { position:absolute; bottom:45%; left:22%; width:16px; height:28px; background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ea-rider 2s ease-in-out infinite; }
.scn-enemy-advances-silently .spear { position:absolute; bottom:48%; left:21%; width:4px; height:48px; background: linear-gradient(180deg, #b08d5b 0%, #6b4f2e 100%); border-radius: 2px; transform: rotate(25deg); transform-origin: bottom center; animation: ea-spear 2s ease-in-out infinite; }
.scn-enemy-advances-silently .enemy-line { position:absolute; bottom:30%; right:5%; width:60%; height:20%; background: linear-gradient(180deg, rgba(30,25,20,.8) 0%, rgba(50,40,30,.6) 100%); clip-path: polygon(0% 100%, 6% 40%, 12% 100%, 18% 30%, 24% 100%, 30% 20%, 36% 100%, 42% 20%, 48% 100%, 54% 30%, 60% 100%, 66% 40%, 72% 100%, 78% 20%, 84% 100%, 90% 30%, 96% 100%, 100% 30%, 100% 100%); animation: ea-enemy 8s ease-in-out infinite alternate; }
.scn-enemy-advances-silently .enemy-line-2 { position:absolute; bottom:25%; right:0; width:70%; height:15%; background: linear-gradient(180deg, rgba(20,15,10,.7) 0%, rgba(40,30,20,.5) 100%); clip-path: polygon(0% 100%, 8% 50%, 16% 100%, 24% 40%, 32% 100%, 40% 30%, 48% 100%, 56% 50%, 64% 100%, 72% 40%, 80% 100%, 88% 50%, 100% 100%); animation: ea-enemy 10s ease-in-out infinite alternate; }
.scn-enemy-advances-silently .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b5a2b 0%, #5a3e1b 80%, #3a2a0e 100%); border-radius: 20% 40% 0 0 / 40% 60% 0 0; }
@keyframes ea-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ea-sun { 0%,100% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.05) translate(5px,-5px) } }
@keyframes ea-dust { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.2) } 100% { transform: translateX(-10px) scaleX(1) } }
@keyframes ea-horse { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes ea-rider { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 75% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes ea-spear { 0%,100% { transform: rotate(25deg) } 50% { transform: rotate(20deg) } }
@keyframes ea-enemy { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(5px) } }

.scn-clearchus-hesitates {
  background: linear-gradient(180deg, #e8c55a 0%, #d4a843 40%, #b8862d 70%, #7a5a1e 100%),
              radial-gradient(ellipse at 50% 80%, #f5d68a 0%, transparent 60%);
}
.scn-clearchus-hesitates .bg-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffeaa7 0%, #fdcb6e 60%, transparent 100%); animation: ch-sky 15s ease-in-out infinite alternate; }
.scn-clearchus-hesitates .bg-sun { position:absolute; top:5%; right:15%; width:55px; height:55px; background: radial-gradient(circle at 40% 40%, #ffe066 0%, #ffb347 40%, #cc7000 100%); border-radius:50%; box-shadow: 0 0 70px 20px #ffb347, 0 0 140px 50px rgba(255,179,71,.3); animation: ch-sun 18s ease-in-out infinite; }
.scn-clearchus-hesitates .figure-clearchus { position:absolute; bottom:30%; left:35%; width:22px; height:48px; background: linear-gradient(180deg, #a65634 0%, #6b2e1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: ch-figure 3s ease-in-out infinite; }
.scn-clearchus-hesitates .cloak { position:absolute; bottom:30%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; clip-path: polygon(0 0, 100% 10%, 80% 100%, 20% 100%); animation: ch-cloak 4s ease-in-out infinite; }
.scn-clearchus-hesitates .sword { position:absolute; bottom:40%; left:45%; width:4px; height:40px; background: linear-gradient(180deg, #d4af37 0%, #a67c00 100%); border-radius: 2px; transform: rotate(30deg); transform-origin: bottom center; animation: ch-sword 2.5s ease-in-out infinite; }
.scn-clearchus-hesitates .soldier-left { position:absolute; bottom:25%; left:10%; width:18px; height:35px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: ch-soldier-l 5s ease-in-out infinite; }
.scn-clearchus-hesitates .soldier-right { position:absolute; bottom:25%; right:15%; width:18px; height:35px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: ch-soldier-r 6s ease-in-out infinite reverse; }
.scn-clearchus-hesitates .shadow-fall { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 60%); animation: ch-shadow 8s ease-in-out infinite alternate; }
@keyframes ch-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ch-sun { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.03) rotate(10deg) } }
@keyframes ch-figure { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(5deg) } 70% { transform: translateY(-1px) rotate(-3deg) } }
@keyframes ch-cloak { 0%,100% { transform: rotate(0) } 50% { transform: rotate(4deg) } }
@keyframes ch-sword { 0%,100% { transform: rotate(30deg) } 50% { transform: rotate(25deg) } }
@keyframes ch-soldier-l { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-2px) } }
@keyframes ch-soldier-r { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(2px) } }
@keyframes ch-shadow { 0% { opacity:.6 } 50% { opacity:.3 } 100% { opacity:.7 } }

.scn-xenophon-meets-cyrus {
  background: linear-gradient(180deg, #f0c040 0%, #d4a020 35%, #b08020 65%, #704818 100%),
              radial-gradient(ellipse at 30% 20%, #fff080 0%, transparent 60%);
}
.scn-xenophon-meets-cyrus .sky-horizon { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffe680 0%, #f0c040 50%, transparent 100%); animation: xm-sky 16s ease-in-out infinite alternate; }
.scn-xenophon-meets-cyrus .ground-warm { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b08020 0%, #704818 100%); border-radius: 30% 10% 0 0 / 50% 20% 0 0; }
.scn-xenophon-meets-cyrus .cyrus-figure { position:absolute; bottom:28%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #a65634 0%, #6b2e1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: xm-cyrus 4s ease-in-out infinite; }
.scn-xenophon-meets-cyrus .xenophon-figure { position:absolute; bottom:28%; right:30%; width:20px; height:45px; background: linear-gradient(180deg, #7a4a2a 0%, #4a2a12 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: xm-xeno 4.5s ease-in-out infinite; }
.scn-xenophon-meets-cyrus .horse-cyrus { position:absolute; bottom:25%; left:23%; width:45px; height:32px; background: linear-gradient(135deg, #5a3e1b 0%, #3a2a0e 100%); border-radius: 40% 50% 30% 40% / 60% 50% 40% 30%; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: xm-horse-c 3s ease-in-out infinite; }
.scn-xenophon-meets-cyrus .horse-xenophon { position:absolute; bottom:25%; right:28%; width:45px; height:32px; background: linear-gradient(135deg, #4a3520 0%, #2a1a0e 100%); border-radius: 40% 50% 30% 40% / 60% 50% 40% 30%; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: xm-horse-x 3.5s ease-in-out infinite reverse; }
.scn-xenophon-meets-cyrus .spear-cyrus { position:absolute; bottom:45%; left:24%; width:4px; height:50px; background: linear-gradient(180deg, #b08d5b 0%, #6b4f2e 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: bottom center; animation: xm-spear-c 2s ease-in-out infinite; }
.scn-xenophon-meets-cyrus .spear-xenophon { position:absolute; bottom:45%; right:31%; width:4px; height:50px; background: linear-gradient(180deg, #b08d5b 0%, #6b4f2e 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom center; animation: xm-spear-x 2.2s ease-in-out infinite; }
.scn-xenophon-meets-cyrus .dust-cloud { position:absolute; bottom:30%; left:40%; width:120px; height:40px; background: radial-gradient(ellipse at 50% 60%, rgba(200,170,120,.7) 0%, transparent 70%); filter: blur(10px); animation: xm-dust 5s ease-in-out infinite alternate; }
@keyframes xm-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes xm-cyrus { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes xm-xeno { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-3deg) } 70% { transform: translateY(-2px) rotate(2deg) } }
@keyframes xm-horse-c { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes xm-horse-x { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes xm-spear-c { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } }
@keyframes xm-spear-x { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } }
@keyframes xm-dust { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(15px) scaleX(1.3) } 100% { transform: translateX(-10px) scaleX(1) } }

.scn-watchword-zeus-saviour {
  background: linear-gradient(180deg, #e8c55a 0%, #c49a2a 40%, #9a7020 70%, #6a4a18 100%),
              radial-gradient(ellipse at 50% 100%, #d4a020 0%, transparent 50%);
}
.scn-watchword-zeus-saviour .bg-warm { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f7dc6f 0%, #f1c40f 50%, transparent 100%); animation: wz-bg 14s ease-in-out infinite alternate; }
.scn-watchword-zeus-saviour .soldier-front { position:absolute; bottom:25%; left:30%; width:20px; height:42px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: wz-front 3s ease-in-out infinite; }
.scn-watchword-zeus-saviour .soldier-back { position:absolute; bottom:25%; right:35%; width:20px; height:42px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: wz-back 3.5s ease-in-out infinite reverse; }
.scn-watchword-zeus-saviour .whisper-arc { position:absolute; bottom:45%; left:35%; width:30px; height:20px; border: 2px solid rgba(255,255,200,.6); border-radius: 50%; border-color: transparent transparent rgba(255,255,200,.6) transparent; transform: rotate(-30deg); animation: wz-whisper 2s ease-in-out infinite; }
.scn-watchword-zeus-saviour .shield-front { position:absolute; bottom:28%; left:28%; width:16px; height:24px; background: radial-gradient(circle at 50% 50%, #a6792a 0%, #604818 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: wz-shield-f 4s ease-in-out infinite; }
.scn-watchword-zeus-saviour .shield-back { position:absolute; bottom:28%; right:33%; width:16px; height:24px; background: radial-gradient(circle at 50% 50%, #a6792a 0%, #604818 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: wz-shield-b 4.5s ease-in-out infinite reverse; }
.scn-watchword-zeus-saviour .spear-shadow { position:absolute; bottom:40%; left:32%; width:3px; height:35px; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); transform: rotate(20deg); animation: wz-spear 2.8s ease-in-out infinite; }
.scn-watchword-zeus-saviour .murmur-lines { position:absolute; top:30%; left:20%; width:30px; height:2px; background: rgba(255,255,200,.3); border-radius: 2px; box-shadow: 0 10px 0 rgba(255,255,200,.2), 0 20px 0 rgba(255,255,200,.1); animation: wz-murmur 1.5s ease-in-out infinite; }
@keyframes wz-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes wz-front { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(4deg) } 70% { transform: translateY(-1px) rotate(-3deg) } }
@keyframes wz-back { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-4deg) } 70% { transform: translateY(-1px) rotate(3deg) } }
@keyframes wz-whisper { 0%,100% { opacity:.2; transform: scale(1) rotate(-30deg) } 50% { opacity:.8; transform: scale(1.1) rotate(-25deg) } }
@keyframes wz-shield-f { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes wz-shield-b { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) } }
@keyframes wz-spear { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } }
@keyframes wz-murmur { 0%,100% { opacity:.2; transform: translateX(0) } 50% { opacity:.6; transform: translateX(5px) } }

/* Scene 1: Xenophon Speech Victory and Death (tense, sunlit) */
.scn-xenophon-speech-victory-and-death {
  background: linear-gradient(180deg, #4a6a8a 0%, #b0c8d8 30%, #d4d49a 60%, #9a7a4a 100%), radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 60%);
}
.scn-xenophon-speech-victory-and-death .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a5a7a 0%, #90b0c0 50%, transparent 100%);
  animation: xsv-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-speech-victory-and-death .sun {
  position: absolute; top: 8%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #fedc88 40%, transparent 70%);
  border-radius: 50%;
  animation: xsv-sun 12s ease-in-out infinite;
}
.scn-xenophon-speech-victory-and-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: xsv-ground 8s ease-in-out infinite alternate;
}
.scn-xenophon-speech-victory-and-death .figure-orator {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: xsv-orator 4s ease-in-out infinite;
}
.scn-xenophon-speech-victory-and-death .spear {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #6a5a3a, #3a2a1a);
  transform: translateX(-50%) rotate(-10deg);
  animation: xsv-spear 4s ease-in-out infinite alternate;
}
.scn-xenophon-speech-victory-and-death .soldier-left {
  position: absolute; bottom: 28%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: xsv-soldier 5s ease-in-out infinite;
}
.scn-xenophon-speech-victory-and-death .soldier-right {
  position: absolute; bottom: 28%; left: 60%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xsv-soldier 5s ease-in-out infinite 0.5s;
}
.scn-xenophon-speech-victory-and-death .shadow-bands {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4), transparent);
  filter: blur(4px);
  animation: xsv-shadows 10s ease-in-out infinite alternate;
}
@keyframes xsv-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes xsv-sun { 0% { transform: scale(0.95); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(1); opacity: 0.95; } }
@keyframes xsv-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes xsv-orator { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } }
@keyframes xsv-spear { 0% { transform: translateX(-50%) rotate(-12deg); } 50% { transform: translateX(-50%) rotate(-8deg); } 100% { transform: translateX(-50%) rotate(-14deg); } }
@keyframes xsv-soldier { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } }
@keyframes xsv-shadows { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene 2: Xenophon Speech Noble Death (tense, sunlit) */
.scn-xenophon-speech-noble-death {
  background: linear-gradient(180deg, #3a5a7a 0%, #7a9a9a 40%, #9a8a5a 70%, #5a4a2a 100%), radial-gradient(ellipse at 40% 15%, #fff0c0 0%, transparent 60%);
}
.scn-xenophon-speech-noble-death .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a7a9a 0%, #b0c8d0 40%, transparent 100%);
  animation: xnd-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-speech-noble-death .sun-haze {
  position: absolute; top: 5%; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, #ffe8b0 0%, transparent 70%);
  filter: blur(10px);
  animation: xnd-haze 20s ease-in-out infinite;
}
.scn-xenophon-speech-noble-death .bier {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a, #4a3a1a);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: xnd-bier 6s ease-in-out infinite alternate;
}
.scn-xenophon-speech-noble-death .fallen-body {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xnd-body 8s ease-in-out infinite;
}
.scn-xenophon-speech-noble-death .shield {
  position: absolute; bottom: 30%; left: 39%; width: 30px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #b08050, #8a6030);
  border-radius: 50%;
  box-shadow: inset -2px -2px 6px rgba(0,0,0,0.5);
  animation: xnd-shield 5s ease-in-out infinite alternate;
}
.scn-xenophon-speech-noble-death .comrade-left {
  position: absolute; bottom: 24%; left: 28%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: xnd-comrade 7s ease-in-out infinite;
}
.scn-xenophon-speech-noble-death .comrade-right {
  position: absolute; bottom: 24%; left: 58%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xnd-comrade 7s ease-in-out infinite 1s;
}
.scn-xenophon-speech-noble-death .spear-standing {
  position: absolute; bottom: 38%; left: 65%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #5a4a2a, #3a2a1a);
  transform: rotate(5deg);
  animation: xnd-spear 9s ease-in-out infinite alternate;
}
@keyframes xnd-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes xnd-haze { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(0.95); } }
@keyframes xnd-bier { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes xnd-body { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } }
@keyframes xnd-shield { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes xnd-comrade { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes xnd-spear { 0% { transform: rotate(3deg); } 50% { transform: rotate(7deg); } 100% { transform: rotate(2deg); } }

/* Scene 3: Xenophon Speech Season to Be Brave (tense, sunlit) */
.scn-xenophon-speech-season-to-be-brave {
  background: linear-gradient(180deg, #2a4a6a 0%, #6a8a9a 35%, #b0b080 65%, #7a6a3a 100%), radial-gradient(ellipse at 60% 10%, #fff0b0 0%, transparent 50%);
}
.scn-xenophon-speech-season-to-be-brave .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a6a8a 0%, #90b0b0 40%, transparent 100%);
  animation: xst-sky 14s ease-in-out infinite alternate;
}
.scn-xenophon-speech-season-to-be-brave .sunburst {
  position: absolute; top: 0; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, #fff0c0 0%, #f0c060 30%, transparent 70%);
  filter: blur(8px);
  animation: xst-sunburst 10s ease-in-out infinite;
}
.scn-xenophon-speech-season-to-be-brave .dust-clouds {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent, rgba(180,160,120,0.4), transparent);
  filter: blur(6px);
  animation: xst-dust 20s linear infinite;
}
.scn-xenophon-speech-season-to-be-brave .marching-figures-1 {
  position: absolute; bottom: 25%; left: 10%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a, #2a2a3a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: xst-march 4s ease-in-out infinite;
}
.scn-xenophon-speech-season-to-be-brave .marching-figures-2 {
  position: absolute; bottom: 25%; left: 22%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a3a4a, #2a2a3a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: xst-march 4s ease-in-out infinite 0.3s;
}
.scn-xenophon-speech-season-to-be-brave .marching-figures-3 {
  position: absolute; bottom: 25%; left: 34%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #3a3a4a, #2a2a3a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: xst-march 4s ease-in-out infinite 0.6s;
}
.scn-xenophon-speech-season-to-be-brave .spear-line {
  position: absolute; bottom: 35%; left: 10%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #6a5a3a, #3a2a1a);
  transform: rotate(-5deg);
  box-shadow: 20px 0 0 #5a4a2a, 45px 0 0 #5a4a2a;
  animation: xst-spearline 5s ease-in-out infinite alternate;
}
.scn-xenophon-speech-season-to-be-brave .banner {
  position: absolute; bottom: 40%; left: 55%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #b08050, #8a6030);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%);
  animation: xst-banner 6s ease-in-out infinite alternate;
}
@keyframes xst-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes xst-sunburst { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.95); } }
@keyframes xst-dust { 0% { transform: translateX(-10%); } 100% { transform: translateX(110%); } }
@keyframes xst-march { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(12px) rotate(2deg); } }
@keyframes xst-spearline { 0% { transform: rotate(-7deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(-5deg); } }
@keyframes xst-banner { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1) translateX(2px); } 100% { transform: scaleX(0.95); } }

/* Scene 4: Cheirisophus Praises Xenophon (warm, sunlit) */
.scn-cheirisophus-praises-xenophon {
  background: linear-gradient(180deg, #8a6a3a 0%, #c0a060 30%, #d4c080 60%, #9a7a4a 100%), radial-gradient(ellipse at 50% 0%, #fff0b0 0%, transparent 50%);
}
.scn-cheirisophus-praises-xenophon .sky-warm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a08050 0%, #d4b870 50%, transparent 100%);
  animation: cpx-sky 16s ease-in-out infinite alternate;
}
.scn-cheirisophus-praises-xenophon .sun-glow {
  position: absolute; top: 5%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, #ffe8b0 0%, #f0c860 40%, transparent 70%);
  filter: blur(12px);
  animation: cpx-sun 12s ease-in-out infinite;
}
.scn-cheirisophus-praises-xenophon .ground-warm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b0905a 0%, #7a5a2a 100%);
  border-radius: 40% 60% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: cpx-ground 9s ease-in-out infinite alternate;
}
.scn-cheirisophus-praises-xenophon .figure-xenophon {
  position: absolute; bottom: 28%; left: 36%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: cpx-xenophon 5s ease-in-out infinite;
}
.scn-cheirisophus-praises-xenophon .figure-cheirisophus {
  position: absolute; bottom: 28%; left: 54%; width: 28px; height: 54px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: cpx-cheirisophus 5s ease-in-out infinite 0.5s;
}
.scn-cheirisophus-praises-xenophon .olive-branch {
  position: absolute; bottom: 35%; left: 45%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #6a8a3a, #3a5a1a);
  border-radius: 50% 20% 50% 20%;
  transform: rotate(30deg);
  animation: cpx-olive 6s ease-in-out infinite alternate;
}
.scn-cheirisophus-praises-xenophon .shadow-soft {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25), transparent);
  filter: blur(8px);
  animation: cpx-shadow 10s ease-in-out infinite alternate;
}
@keyframes cpx-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cpx-sun { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes cpx-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cpx-xenophon { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(0deg); } }
@keyframes cpx-cheirisophus { 0%,100% { transform: scaleX(-1) translateX(0) rotate(0deg); } 25% { transform: scaleX(-1) translateX(2px) rotate(1deg); } 50% { transform: scaleX(-1) translateX(0) rotate(-1deg); } 75% { transform: scaleX(-1) translateX(-2px) rotate(0deg); } }
@keyframes cpx-olive { 0% { transform: rotate(25deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(28deg); } }
@keyframes cpx-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-cross-to-delta {
  background: linear-gradient(180deg, #73b3e8 0%, #b8d4f0 40%, #1a3a5a 70%), radial-gradient(ellipse at 50% 100%, #1a3a5a 0%, transparent 80%);
}
.scn-cross-to-delta .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b8d4f0 100%); animation: cd-sky 15s ease-in-out infinite alternate; }
.scn-cross-to-delta .sun { position: absolute; top: 12%; left: 65%; width: 50px; height: 50px; background: radial-gradient(circle, #fff5b0 0%, #f0c040 60%, transparent 60%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,200,100,0.4); animation: cd-sun 8s ease-in-out infinite alternate; }
.scn-cross-to-delta .water { position: absolute; bottom: 30%; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: cd-water 12s ease-in-out infinite alternate; }
.scn-cross-to-delta .delta { position: absolute; bottom: 20%; left: 20%; width: 60%; height: 25%; background: linear-gradient(180deg, #6b8e23 0%, #4a6a1a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: 0 -5px 20px rgba(0,0,0,0.2); animation: cd-delta 20s ease-in-out infinite alternate; }
.scn-cross-to-delta .boat { position: absolute; bottom: 35%; left: 30%; width: 60px; height: 20px; background: linear-gradient(90deg, #5a3a1a 0%, #7a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center; animation: cd-boat 6s ease-in-out infinite; }
.scn-cross-to-delta .sail { position: absolute; bottom: 39%; left: 33%; width: 25px; height: 35px; background: linear-gradient(180deg, #e8d8b0 0%, #c0a880 100%); border-radius: 20% 20% 30% 30% / 60% 60% 40% 40%; box-shadow: inset -3px -3px 10px rgba(0,0,0,0.2); animation: cd-sail 6s ease-in-out infinite; }
.scn-cross-to-delta .figure { position: absolute; bottom: 35%; left: 38%; width: 14px; height: 24px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cd-figure 4s ease-in-out infinite; }
.scn-cross-to-delta .oar { position: absolute; bottom: 36%; left: 26%; width: 30px; height: 4px; background: #6b4a2a; border-radius: 20%; transform-origin: left center; animation: cd-oar 1.5s ease-in-out infinite alternate; }

@keyframes cd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cd-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes cd-water { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.85; } }
@keyframes cd-delta { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes cd-boat { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-3deg); } 50% { transform: translateX(10px) rotate(2deg); } 75% { transform: translateX(5px) rotate(-1deg); } }
@keyframes cd-sail { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes cd-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cd-oar { 0% { transform: rotate(-30deg); } 100% { transform: rotate(30deg); } }

.scn-divide-spoils {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #b8860b 80%), radial-gradient(ellipse at 50% 100%, #b8860b 0%, transparent 60%);
}
.scn-divide-spoils .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6b8e23 0%, #3a5a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); }
.scn-divide-spoils .tent { position: absolute; bottom: 35%; left: 15%; width: 90px; height: 50px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 10% 10% 30% 30% / 60% 60% 40% 40%; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: ds-tent 10s ease-in-out infinite alternate; }
.scn-divide-spoils .mule-left { position: absolute; bottom: 25%; left: 30%; width: 24px; height: 30px; background: linear-gradient(180deg, #6b4a2a 0%, #4a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ds-mule 5s ease-in-out infinite; }
.scn-divide-spoils .mule-right { position: absolute; bottom: 25%; left: 50%; width: 24px; height: 30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ds-mule 5s ease-in-out 1.5s infinite; }
.scn-divide-spoils .oxen { position: absolute; bottom: 22%; left: 65%; width: 36px; height: 28px; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ds-ox 7s ease-in-out infinite; }
.scn-divide-spoils .figure-timasion { position: absolute; bottom: 26%; left: 20%; width: 16px; height: 32px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ds-figure 4s ease-in-out infinite; }
.scn-divide-spoils .figure-clea { position: absolute; bottom: 26%; left: 42%; width: 16px; height: 32px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ds-figure 4s ease-in-out 2s infinite; }
.scn-divide-spoils .treasure { position: absolute; bottom: 28%; left: 55%; width: 20px; height: 12px; background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%); border-radius: 20%; box-shadow: 0 0 10px 4px rgba(255,215,0,0.5); animation: ds-treasure 3s ease-in-out infinite alternate; }

@keyframes ds-tent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes ds-mule { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(5deg); } }
@keyframes ds-ox { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-3deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(4px) rotate(-1deg); } }
@keyframes ds-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ds-treasure { 0% { opacity: 0.6; box-shadow: 0 0 10px 2px rgba(255,215,0,0.3); } 100% { opacity: 1; box-shadow: 0 0 20px 8px rgba(255,215,0,0.7); } }

.scn-xenophon-reproaches-heraclides {
  background: linear-gradient(180deg, #f0c060 0%, #d4a040 50%, #8a5a1a 100%), radial-gradient(ellipse at 70% 30%, #f0d080 0%, transparent 50%);
}
.scn-xenophon-reproaches-heraclides .bg { position: absolute; inset: 0; background: linear-gradient(135deg, #f0d080 0%, #c08030 100%); opacity: 0.4; animation: xr-bg 8s ease-in-out infinite alternate; }
.scn-xenophon-reproaches-heraclides .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-xenophon-reproaches-heraclides .shadow { position: absolute; bottom: 12%; left: 10%; width: 80%; height: 10px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(6px); animation: xr-shadow 10s ease-in-out infinite alternate; }
.scn-xenophon-reproaches-heraclides .figure-xenophon { position: absolute; bottom: 17%; left: 25%; width: 28px; height: 56px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: xr-xen 4s ease-in-out infinite; }
.scn-xenophon-reproaches-heraclides .figure-heraclides { position: absolute; bottom: 17%; left: 55%; width: 26px; height: 52px; background: linear-gradient(180deg, #2a2a2a 0%, #151515 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: xr-hera 5s ease-in-out infinite; }
.scn-xenophon-reproaches-heraclides .arm { position: absolute; bottom: 38%; left: 32%; width: 20px; height: 6px; background: #1a1a1a; border-radius: 30%; transform-origin: left center; animation: xr-arm 2s ease-in-out infinite alternate; }

@keyframes xr-bg { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes xr-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }
@keyframes xr-xen { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(5deg); } }
@keyframes xr-hera { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(4deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(4px) rotate(-4deg); } }
@keyframes xr-arm { 0% { transform: rotate(-20deg); } 100% { transform: rotate(40deg); } }

.scn-heraclides-calumniates {
  background: linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a1a3a 0%, transparent 70%);
}
.scn-heraclides-calumniates .bg { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%); animation: hc-bg 12s ease-in-out infinite alternate; }
.scn-heraclides-calumniates .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-heraclides-calumniates .wall { position: absolute; bottom: 30%; left: 0; right: 0; height: 70%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 60%, #0a000a 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; }
.scn-heraclides-calumniates .lamp { position: absolute; top: 15%; left: 50%; width: 20px; height: 20px; background: radial-gradient(circle, #ffe080 0%, #d09040 60%, transparent 60%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,200,100,0.6), 0 0 80px 30px rgba(255,200,100,0.3); animation: hc-lamp 4s ease-in-out infinite alternate; }
.scn-heraclides-calumniates .table { position: absolute; bottom: 18%; left: 35%; width: 60px; height: 10px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%); border-radius: 10%; box-shadow: 0 2px 10px rgba(0,0,0,0.5); animation: hc-table 6s ease-in-out infinite alternate; }
.scn-heraclides-calumniates .figure-heraclides { position: absolute; bottom: 16%; left: 20%; width: 22px; height: 44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; box-shadow: -5px 0 15px rgba(0,0,0,0.5); animation: hc-hera 5s ease-in-out infinite; }
.scn-heraclides-calumniates .figure-xenophon-silhouette { position: absolute; bottom: 16%; left: 55%; width: 20px; height: 40px; background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; box-shadow: 5px 0 15px rgba(0,0,0,0.5); animation: hc-xen 6s ease-in-out infinite; }
.scn-heraclides-calumniates .shadow-scheme { position: absolute; bottom: 10%; left: 15%; width: 70%; height: 25px; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(8px); animation: hc-shadow 10s ease-in-out infinite alternate; }

@keyframes hc-bg { 0% { opacity: 0.7; } 50% { opacity: 0.5; } 100% { opacity: 0.8; } }
@keyframes hc-lamp { 0% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.4); } 50% { box-shadow: 0 0 60px 20px rgba(255,200,100,0.8); } 100% { box-shadow: 0 0 40px 15px rgba(255,200,100,0.5); } }
@keyframes hc-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes hc-hera { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-5deg); } }
@keyframes hc-xen { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-4deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(4deg); } }
@keyframes hc-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.5; transform: scaleX(0.9); } }

.scn-xenophon-recounts-offers {
  background:
    linear-gradient(180deg, #3a1c0e 0%, #2a140a 40%, #1a0e06 100%),
    radial-gradient(ellipse at 20% 80%, #5a2a14 0%, transparent 60%);
}
.scn-xenophon-recounts-offers .tent-wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-xenophon-recounts-offers .floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
}
.scn-xenophon-recounts-offers .fire-glow {
  position:absolute; bottom:38%; left:50%; width:60px; height:50px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, #c8553d 0%, #8a2e1a 40%, transparent 70%);
  border-radius:50%;
  animation: xro-glow 3s ease-in-out infinite;
}
.scn-xenophon-recounts-offers .fire-core {
  position:absolute; bottom:40%; left:50%; width:16px; height:22px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, #ffa060 0%, #d06030 60%, transparent 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: xro-fire 0.8s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 10px #d06030, 0 0 60px 20px rgba(208,96,48,.4);
}
.scn-xenophon-recounts-offers .figure-left {
  position:absolute; bottom:30%; left:30%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: xro-figure-l 6s ease-in-out infinite;
}
.scn-xenophon-recounts-offers .figure-right {
  position:absolute; bottom:30%; right:28%; width:24px; height:52px;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: xro-figure-r 6s ease-in-out infinite reverse;
}
.scn-xenophon-recounts-offers .table {
  position:absolute; bottom:25%; left:42%; width:60px; height:14px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1408 100%);
  border-radius: 4px;
  transform:translateX(-50%);
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-xenophon-recounts-offers .scroll {
  position:absolute; bottom:24%; left:48%; width:10px; height:6px;
  background: #a86648;
  border-radius: 3px;
  transform:rotate(-10deg);
  animation: xro-scroll 8s ease-in-out infinite alternate;
}
@keyframes xro-glow {
  0%,100% { opacity:.6; transform:translateX(-50%) scale(1); }
  50% { opacity:.9; transform:translateX(-50%) scale(1.1); }
}
@keyframes xro-fire {
  0% { transform:translateX(-50%) scaleY(1); }
  50% { transform:translateX(-50%) scaleY(1.2) rotate(3deg); }
  100% { transform:translateX(-50%) scaleY(0.9) rotate(-2deg); }
}
@keyframes xro-figure-l {
  0%,100% { transform:translate(0,0) rotate(-2deg); }
  30% { transform:translate(2px,-2px) rotate(1deg); }
  60% { transform:translate(-1px,-1px) rotate(-3deg); }
}
@keyframes xro-figure-r {
  0%,100% { transform:translate(0,0) rotate(2deg); }
  30% { transform:translate(-2px,-2px) rotate(-1deg); }
  60% { transform:translate(1px,-1px) rotate(3deg); }
}
@keyframes xro-scroll {
  0% { transform:rotate(-10deg) translate(0); }
  50% { transform:rotate(-5deg) translate(1px,-1px); }
  100% { transform:rotate(-12deg) translate(-1px,1px); }
}

.scn-xenophon-recalls-answers {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0e06 50%, #0e0602 100%),
    radial-gradient(ellipse at 50% 70%, #3a1c0e 0%, transparent 60%);
}
.scn-xenophon-recalls-answers .tent-bg {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-xenophon-recalls-answers .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #1a100a 0%, #0e0804 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-xenophon-recalls-answers .fire-pool {
  position:absolute; bottom:32%; left:50%; width:40px; height:30px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, #c8553d 0%, #6a2210 50%, transparent 80%);
  border-radius:50%;
  animation: xra-fireglow 4s ease-in-out infinite;
}
.scn-xenophon-recalls-answers .figure-center {
  position:absolute; bottom:26%; left:50%; width:20px; height:46px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: xra-speaker 8s ease-in-out infinite;
}
.scn-xenophon-recalls-answers .audience-left {
  position:absolute; bottom:24%; left:25%; width:18px; height:38px;
  background: linear-gradient(180deg, #201008 0%, #100804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xra-audience 12s ease-in-out infinite alternate;
}
.scn-xenophon-recalls-answers .audience-right {
  position:absolute; bottom:24%; right:25%; width:18px; height:38px;
  background: linear-gradient(180deg, #201008 0%, #100804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xra-audience 12s ease-in-out infinite alternate-reverse;
  animation-delay: -3s;
}
.scn-xenophon-recalls-answers .cup {
  position:absolute; bottom:24%; left:48%; width:8px; height:10px;
  background: #a0461a;
  border-radius: 2px 2px 4px 4px;
  transform:translateX(-50%);
  animation: xra-cup 6s ease-in-out infinite;
}
@keyframes xra-fireglow {
  0%,100% { opacity:.7; transform:translateX(-50%) scale(1); }
  50% { opacity:1; transform:translateX(-50%) scale(1.05); }
}
@keyframes xra-speaker {
  0%,100% { transform:translateX(-50%) translateY(0) rotate(-1deg); }
  30% { transform:translateX(-50%) translateY(-2px) rotate(1deg); }
  60% { transform:translateX(-50%) translateY(0) rotate(0); }
}
@keyframes xra-audience {
  0% { transform:translateY(0) rotate(0); }
  50% { transform:translateY(-1px) rotate(2deg); }
  100% { transform:translateY(0) rotate(-1deg); }
}
@keyframes xra-cup {
  0%,100% { transform:translateX(-50%) rotate(-5deg); }
  50% { transform:translateX(-50%) rotate(5deg) translateY(-1px); }
}

.scn-xenophon-now-ready {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 60%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a0e 0%, transparent 50%);
}
.scn-xenophon-now-ready .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #1e1e32 0%, #121224 100%);
  animation: xnr-skydim 15s ease-in-out infinite alternate;
}
.scn-xenophon-now-ready .tent-silhouette {
  position:absolute; bottom:30%; left:20%; right:20%; height:40%;
  background: linear-gradient(180deg, #1a0e06 0%, #0e0602 100%);
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
  animation: xnr-tent 20s ease-in-out infinite;
}
.scn-xenophon-now-ready .fire-pit {
  position:absolute; bottom:28%; left:50%; width:50px; height:40px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, #d06830 0%, #a04020 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 40px 15px #a04020;
  animation: xnr-fire 1.5s ease-in-out infinite alternate;
}
.scn-xenophon-now-ready .figure-xenophon {
  position:absolute; bottom:20%; left:30%; width:22px; height:48px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: xnr-fig-x 5s ease-in-out infinite;
}
.scn-xenophon-now-ready .figure-phryniscus {
  position:absolute; bottom:20%; left:40%; width:20px; height:44px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xnr-fig-p 6s ease-in-out infinite 0.5s;
}
.scn-xenophon-now-ready .figure-polycrates {
  position:absolute; bottom:20%; left:52%; width:20px; height:44px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xnr-fig-p 6s ease-in-out infinite 1s;
}
.scn-xenophon-now-ready .spear {
  position:absolute; bottom:24%; left:62%; width:3px; height:36px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1408 100%);
  border-radius: 2px;
  transform:rotate(10deg);
  animation: xnr-spear 4s ease-in-out infinite alternate;
}
@keyframes xnr-skydim {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.7; }
}
@keyframes xnr-tent {
  0%,100% { transform:scaleX(1) translateY(0); }
  50% { transform:scaleX(0.97) translateY(-2px); }
}
@keyframes xnr-fire {
  0% { transform:translateX(-50%) scale(1); opacity:.8; }
  50% { transform:translateX(-50%) scale(1.15); opacity:1; }
  100% { transform:translateX(-50%) scale(0.9); opacity:.7; }
}
@keyframes xnr-fig-x {
  0%,100% { transform:translate(0,0) rotate(0); }
  30% { transform:translate(1px,-2px) rotate(2deg); }
  60% { transform:translate(-1px,-1px) rotate(-1deg); }
}
@keyframes xnr-fig-p {
  0%,100% { transform:translate(0,0) rotate(0); }
  40% { transform:translate(0,-2px) rotate(1deg); }
  80% { transform:translate(0,0) rotate(-1deg); }
}
@keyframes xnr-spear {
  0% { transform:rotate(8deg) translateX(0); }
  50% { transform:rotate(14deg) translateX(2px); }
  100% { transform:rotate(6deg) translateX(-1px); }
}

.scn-seuthes-expresses-trust {
  background:
    linear-gradient(180deg, #3a1c0e 0%, #2a1408 50%, #1a0a04 100%),
    radial-gradient(ellipse at 50% 60%, #5a2a14 0%, transparent 60%);
}
.scn-seuthes-expresses-trust .chamber-bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.5);
}
.scn-seuthes-expresses-trust .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-seuthes-expresses-trust .fire-luxury {
  position:absolute; bottom:30%; left:50%; width:70px; height:50px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, #e08040 0%, #a04020 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 50px 20px #a04020, 0 0 100px 40px rgba(160,64,32,.3);
  animation: set-glow 3s ease-in-out infinite;
}
.scn-seuthes-expresses-trust .figure-king {
  position:absolute; bottom:20%; left:35%; width:28px; height:56px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: set-king 7s ease-in-out infinite;
}
.scn-seuthes-expresses-trust .figure-xenophon {
  position:absolute; bottom:20%; right:30%; width:22px; height:48px;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: set-xen 9s ease-in-out infinite alternate;
}
.scn-seuthes-expresses-trust .goblet {
  position:absolute; bottom:22%; left:52%; width:10px; height:14px;
  background: linear-gradient(180deg, #a86648 0%, #6a4028 100%);
  border-radius: 3px 3px 5px 5px;
  transform:translateX(-50%);
  animation: set-goblet 5s ease-in-out infinite;
}
.scn-seuthes-expresses-trust .smoke-curl {
  position:absolute; bottom:38%; left:48%; width:12px; height:30px;
  background: radial-gradient(ellipse at top, rgba(200,150,100,.3) 0%, transparent 70%);
  border-radius:50%;
  filter: blur(4px);
  animation: set-smoke 12s linear infinite;
}
@keyframes set-glow {
  0%,100% { transform:translateX(-50%) scale(1); opacity:.8; }
  50% { transform:translateX(-50%) scale(1.08); opacity:1; }
}
@keyframes set-king {
  0%,100% { transform:translate(0,0) rotate(-1deg); }
  40% { transform:translate(2px,-2px) rotate(2deg); }
  80% { transform:translate(-1px,0) rotate(0); }
}
@keyframes set-xen {
  0% { transform:translate(0,0) rotate(0); }
  50% { transform:translate(-2px,-1px) rotate(1deg); }
  100% { transform:translate(0,0) rotate(0); }
}
@keyframes set-goblet {
  0%,100% { transform:translateX(-50%) rotate(-3deg) scale(1); }
  50% { transform:translateX(-50%) rotate(3deg) scale(1.02) translateY(-1px); }
}
@keyframes set-smoke {
  0% { transform:translate(0,0) scaleY(1); opacity:.4; }
  50% { transform:translate(-3px,-8px) scaleY(1.5); opacity:.2; }
  100% { transform:translate(2px,-16px) scaleY(2); opacity:0; }
}

.scn-embassy-from-sinope {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #3d2b22 40%, #1f1210 100%),
    radial-gradient(ellipse at 50% 70%, #8a4a2a 0%, transparent 60%);
}
.scn-embassy-from-sinope .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1410 0%, #2a1e1a 100%);
}
.scn-embassy-from-sinope .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a100a 100%);
}
.scn-embassy-from-sinope .fire-pit {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 30px;
  background: radial-gradient(circle, #d06030 0%, #b04020 50%, #4a1a0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(200,80,30,.5), 0 0 80px 30px rgba(200,80,30,.2);
  animation: es-flicker 0.8s ease-in-out infinite alternate;
}
.scn-embassy-from-sinope .smoke {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: es-smoke 4s ease-in-out infinite alternate;
}
.scn-embassy-from-sinope .figure-left {
  position: absolute; bottom: 22%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: es-bow 3s ease-in-out infinite alternate;
}
.scn-embassy-from-sinope .figure-center {
  position: absolute; bottom: 24%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1e1a 0%, #12100a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  animation: es-standstill 0s;
}
.scn-embassy-from-sinope .figure-right {
  position: absolute; bottom: 20%; right: 28%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0c0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: es-bow-rev 3.5s ease-in-out infinite alternate;
}
.scn-embassy-from-sinope .glow {
  position: absolute; inset: 20% 15% 10% 15%;
  background: radial-gradient(ellipse at 50% 80%, rgba(180,90,40,.15) 0%, transparent 60%);
  pointer-events: none;
  animation: es-glowbreathe 2s ease-in-out infinite alternate;
}
@keyframes es-flicker {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  25% { transform: translateX(-50%) scale(1.02); opacity: 1; }
  50% { transform: translateX(-50%) scale(0.98); opacity: 0.85; }
  75% { transform: translateX(-50%) scale(1.01); opacity: 0.95; }
  100% { transform: translateX(-50%) scale(0.99); opacity: 0.8; }
}
@keyframes es-smoke {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(-50%) translateY(-10px) scale(1.2); opacity: 0.2; }
  100% { transform: translateX(-50%) translateY(5px) scale(0.9); opacity: 0.3; }
}
@keyframes es-bow {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(5deg); }
  60% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes es-bow-rev {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(-5deg); }
  60% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes es-glowbreathe {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

.scn-hecatonymus-speech {
  background:
    linear-gradient(180deg, #1f1814 0%, #32251d 40%, #1a120e 100%),
    radial-gradient(ellipse at 50% 60%, #7a3a1a 0%, transparent 70%);
}
.scn-hecatonymus-speech .wall-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1c1410 0%, #2a1e18 100%);
}
.scn-hecatonymus-speech .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e12 0%, #150e0a 100%);
}
.scn-hecatonymus-speech .table {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 12px;
  background: linear-gradient(180deg, #4a3628 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-hecatonymus-speech .lamp {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #f0b060 0%, #b07030 50%, #4a2010 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,120,40,.6), 0 0 60px 25px rgba(200,120,40,.3);
  animation: hs-lamp 1.2s ease-in-out infinite alternate;
}
.scn-hecatonymus-speech .speaker {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: hs-speak 2s ease-in-out infinite;
}
.scn-hecatonymus-speech .listener-1 {
  position: absolute; bottom: 22%; right: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: hs-listen 3s ease-in-out infinite alternate;
}
.scn-hecatonymus-speech .listener-2 {
  position: absolute; bottom: 22%; right: 18%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1c1814 0%, #100e0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: hs-listen-rev 4s ease-in-out infinite alternate;
}
.scn-hecatonymus-speech .glow {
  position: absolute; inset: 10% 20% 15% 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,120,40,.1) 0%, transparent 60%);
  pointer-events: none;
  animation: hs-ambient 3s ease-in-out infinite alternate;
}
@keyframes hs-lamp {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; box-shadow: 0 0 30px 10px rgba(200,120,40,.6); }
  33% { transform: translateX(-50%) scale(0.97); opacity: 0.8; box-shadow: 0 0 25px 8px rgba(200,120,40,.5); }
  66% { transform: translateX(-50%) scale(1.03); opacity: 1; box-shadow: 0 0 40px 15px rgba(200,120,40,.7); }
  100% { transform: translateX(-50%) scale(0.99); opacity: 0.85; box-shadow: 0 0 28px 9px rgba(200,120,40,.55); }
}
@keyframes hs-speak {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-4px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hs-listen {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hs-listen-rev {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hs-ambient {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

.scn-xeonophon-reply-sinopeans {
  background:
    linear-gradient(180deg, #1e1815 0%, #2d231e 40%, #17120e 100%),
    radial-gradient(ellipse at 50% 55%, #6a3a1a 0%, transparent 70%);
}
.scn-xeonophon-reply-sinopeans .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1410 0%, #251e18 100%);
}
.scn-xeonophon-reply-sinopeans .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #241c14 0%, #140e0a 100%);
}
.scn-xeonophon-reply-sinopeans .scroll {
  position: absolute; bottom: 28%; left: 42%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: xr-scroll 8s ease-in-out infinite;
}
.scn-xeonophon-reply-sinopeans .hand {
  position: absolute; bottom: 28%; left: 48%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #3a2a1e 0%, #201810 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: xr-hand 3s ease-in-out infinite alternate;
}
.scn-xeonophon-reply-sinopeans .figure {
  position: absolute; bottom: 22%; left: 32%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c08 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  animation: xr-figure 5s ease-in-out infinite alternate;
}
.scn-xeonophon-reply-sinopeans .candle {
  position: absolute; bottom: 34%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 60%, #4a2a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,150,60,.5), 0 0 40px 20px rgba(200,150,60,.2);
  animation: xr-candle 2s ease-in-out infinite alternate;
}
.scn-xeonophon-reply-sinopeans .shadow-light {
  position: absolute; inset: 10% 20% 10% 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,120,40,.08) 0%, transparent 60%);
  pointer-events: none;
  animation: xr-shadow 4s ease-in-out infinite alternate;
}
@keyframes xr-scroll {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes xr-hand {
  0% { transform: translateX(0) rotate(-10deg); }
  50% { transform: translateX(5px) rotate(15deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes xr-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  40% { transform: translateY(-3px) rotate(2deg); }
  70% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xr-candle {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.02) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.98) rotate(-2deg); opacity: 0.85; }
}
@keyframes xr-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

.scn-xenophon-continues-defense {
  background:
    linear-gradient(180deg, #1c1612 0%, #2a201a 40%, #16100c 100%),
    radial-gradient(ellipse at 60% 50%, #5a2a12 0%, transparent 70%);
}
.scn-xenophon-continues-defense .wall-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #18120e 0%, #221a14 100%);
}
.scn-xenophon-continues-defense .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #201810 0%, #120c08 100%);
}
.scn-xenophon-continues-defense .staff {
  position: absolute; bottom: 22%; left: 36%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: xc-staff 4s ease-in-out infinite alternate;
}
.scn-xenophon-continues-defense .figure {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c08 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  animation: xc-figure 3s ease-in-out infinite alternate;
}
.scn-xenophon-continues-defense .gesture-arm {
  position: absolute; bottom: 38%; left: 28%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  transform-origin: right center;
  animation: xc-arm 2.5s ease-in-out infinite alternate;
}
.scn-xenophon-continues-defense .listener {
  position: absolute; bottom: 22%; right: 25%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1c1814 0%, #100e0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: xc-listen 5s ease-in-out infinite alternate;
}
.scn-xenophon-continues-defense .torch {
  position: absolute; bottom: 28%; left: 60%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #d07030 0%, #904020 60%, #2a1008 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 25px 10px rgba(200,100,30,.5), 0 0 50px 20px rgba(200,100,30,.2);
  animation: xc-torch 0.9s ease-in-out infinite alternate;
}
.scn-xenophon-continues-defense .glow {
  position: absolute; inset: 10% 15% 10% 25%;
  background: radial-gradient(ellipse at 60% 60%, rgba(180,80,30,.1) 0%, transparent 60%);
  pointer-events: none;
  animation: xc-glow 2s ease-in-out infinite alternate;
}
@keyframes xc-staff {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes xc-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xc-arm {
  0% { transform: rotate(-30deg) scaleX(1); }
  50% { transform: rotate(10deg) scaleX(1.1); }
  100% { transform: rotate(-20deg) scaleX(0.9); }
}
@keyframes xc-listen {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(-2px) rotate(2deg); }
  80% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes xc-torch {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  25% { transform: translateX(-50%) scale(1.02); opacity: 1; }
  50% { transform: translateX(-50%) scale(0.97); opacity: 0.8; }
  75% { transform: translateX(-50%) scale(1.01); opacity: 0.95; }
  100% { transform: translateX(-50%) scale(0.99); opacity: 0.85; }
}
@keyframes xc-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

.scn-heraclides-flees {
  background: linear-gradient(180deg, #fad6a0 0%, #f7b87d 40%, #e3a268 100%), radial-gradient(ellipse at 50% 0%, #ffcc80 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-heraclides-flees .sky-hf {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fce4b8 0%, #f8c48a 50%, transparent 100%);
  animation: hf-sky 12s ease-in-out infinite alternate;
}
.scn-heraclides-flees .sun-hf {
  position: absolute; top: 10%; left: 70%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffe57f 0%, #ffb74d 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255, 183, 77, 0.6);
  animation: hf-sun 3s ease-in-out infinite alternate;
}
.scn-heraclides-flees .hills-hf {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9c7a5a 0%, #7a5c3c 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: hf-hills 18s ease-in-out infinite alternate;
}
.scn-heraclides-flees .ground-hf {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b6f4e 0%, #5c422b 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-heraclides-flees .horse-fore-hf {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 60px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 0 #2a1a0a;
  animation: hf-horse1 2s ease-in-out infinite;
}
.scn-heraclides-flees .horse-back-hf {
  position: absolute; bottom: 23%; left: 10%; width: 60px; height: 45px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 0 #1a0a00;
  animation: hf-horse2 2.5s ease-in-out infinite;
  animation-delay: -0.5s;
}
.scn-heraclides-flees .dust-hf {
  position: absolute; bottom: 20%; left: 5%; width: 40px; height: 20px;
  background: rgba(180, 150, 100, 0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: hf-dust 4s ease-out infinite;
}
.scn-heraclides-flees .cloud-hf {
  position: absolute; top: 12%; right: 20%; width: 120px; height: 25px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hf-cloud 30s linear infinite;
}
@keyframes hf-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hf-sun { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-6px) scale(1.05); } }
@keyframes hf-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes hf-horse1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(-8px) rotate(-2deg); } }
@keyframes hf-horse2 { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(1.5deg); } 70% { transform: translateX(-5px) rotate(-1.5deg); } }
@keyframes hf-dust { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 100% { transform: translateY(-30px) scale(2); opacity: 0; } }
@keyframes hf-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-150vw); } }

.scn-warnings-to-xenophon {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0d0806 100%), radial-gradient(ellipse at 40% 50%, #3d2b22 0%, transparent 70%);
  background-blend-mode: multiply;
}
.scn-warnings-to-xenophon .wall-wz {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #3a2a20 0%, #4a362a 50%, #3a2a20 100%);
  border-bottom: 2px solid #5a463a;
}
.scn-warnings-to-xenophon .floor-wz {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-warnings-to-xenophon .table-wz {
  position: absolute; bottom: 18%; left: 30%; width: 100px; height: 14px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-warnings-to-xenophon .lamp-wz {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #ffb85c 0%, #cc8030 50%, #4a2a10 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255, 184, 92, 0.5), 0 0 80px 30px rgba(204, 128, 48, 0.3);
  animation: wz-flicker 1.5s steps(2) infinite;
}
.scn-warnings-to-xenophon .scroll-wz {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #f0dab0 0%, #d4bc94 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: wz-scroll 6s ease-in-out infinite;
}
.scn-warnings-to-xenophon .figure-wz {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: inset -1px -1px 0 #2a1e1a;
  animation: wz-figure 4s ease-in-out infinite;
}
.scn-warnings-to-xenophon .shadow-wz {
  position: absolute; bottom: 16%; left: 45%; width: 40px; height: 6px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: wz-shadow 4s ease-in-out infinite;
}
@keyframes wz-flicker { 0% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(255,184,92,0.5); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,184,92,0.7); } 100% { opacity: 0.85; box-shadow: 0 0 20px 10px rgba(255,184,92,0.4); } }
@keyframes wz-scroll { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } }
@keyframes wz-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes wz-shadow { 0%,100% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.1); opacity: 0.6; } }

.scn-hellenes-village-quarters {
  background: linear-gradient(180deg, #fde8c4 0%, #f6cb8a 40%, #e0a86e 100%), radial-gradient(ellipse at 50% 0%, #ffd699 0%, transparent 70%);
  background-blend-mode: screen;
}
.scn-hellenes-village-quarters .sky-hv {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fce8c4 0%, #f8d8a0 50%, transparent 100%);
  animation: hv-sky 20s ease-in-out infinite alternate;
}
.scn-hellenes-village-quarters .sun-hv {
  position: absolute; top: 12%; left: 80%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe082 0%, #ffb74d 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 70px 30px rgba(255, 183, 77, 0.5);
  animation: hv-sun 5s ease-in-out infinite alternate;
}
.scn-hellenes-village-quarters .mountains-hv {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b8a080 0%, #8c7658 100%);
  border-radius: 40% 60% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: hv-mtn 25s ease-in-out infinite alternate;
}
.scn-hellenes-village-quarters .village-hut1-hv {
  position: absolute; bottom: 30%; left: 15%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #a08060 0%, #706050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: hv-huts 8s ease-in-out infinite;
}
.scn-hellenes-village-quarters .village-hut2-hv {
  position: absolute; bottom: 28%; left: 35%; width: 45px; height: 32px;
  background: linear-gradient(180deg, #907050 0%, #605040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: hv-huts 8s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-hellenes-village-quarters .village-hut3-hv {
  position: absolute; bottom: 32%; left: 55%; width: 55px; height: 38px;
  background: linear-gradient(180deg, #b09070 0%, #807060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: hv-huts 8s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-hellenes-village-quarters .smoke-hv {
  position: absolute; bottom: 58%; left: 20%; width: 20px; height: 40px;
  background: rgba(200, 180, 160, 0.3);
  border-radius: 50%;
  filter: blur(10px);
  animation: hv-smoke 10s ease-out infinite;
}
.scn-hellenes-village-quarters .figure-hv {
  position: absolute; bottom: 22%; left: 65%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a1e10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hv-fig 6s ease-in-out infinite;
}
@keyframes hv-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hv-sun { 0% { transform: translateY(0); } 100% { transform: translateY(-8px) scale(1.02); } }
@keyframes hv-mtn { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hv-huts { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hv-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }
@keyframes hv-fig { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }

.scn-medosades-confronts {
  background: linear-gradient(180deg, #fccb8a 0%, #f7a860 40%, #dc8540 100%), radial-gradient(ellipse at 50% 100%, #e09050 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-medosades-confronts .sky-mc {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fee3b8 0%, #fcc68a 60%, transparent 100%);
  animation: mc-sky 15s ease-in-out infinite alternate;
}
.scn-medosades-confronts .sun-mc {
  position: absolute; top: 8%; left: 75%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe57f 0%, #ffb74d 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255, 183, 77, 0.7);
  animation: mc-sun 4s ease-in-out infinite alternate;
}
.scn-medosades-confronts .ground-mc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #a07650 0%, #705030 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-medosades-confronts .figure-left-mc {
  position: absolute; bottom: 28%; left: 22%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: mc-fig-left 4s ease-in-out infinite;
}
.scn-medosades-confronts .figure-right-mc {
  position: absolute; bottom: 30%; right: 22%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mc-fig-right 4.5s ease-in-out infinite;
}
.scn-medosades-confronts .spear-mc {
  position: absolute; bottom: 35%; right: 28%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  transform-origin: bottom;
  animation: mc-spear 3s ease-in-out infinite;
}
.scn-medosades-confronts .wind-mc {
  position: absolute; top: 25%; left: 10%; width: 150px; height: 10px;
  background: linear-gradient(90deg, rgba(255,200,150,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mc-wind 8s linear infinite;
}
@keyframes mc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mc-sun { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-5px) scale(1.03); } }
@keyframes mc-fig-left { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-5px); } }
@keyframes mc-fig-right { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes mc-spear { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } }
@keyframes mc-wind { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-god-forbids-generalship {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a15 40%, #3a2218 100%), radial-gradient(ellipse at 50% 30%, #6a3818 0%, transparent 70%);
}
.scn-god-forbids-generalship .temple-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); opacity: 0.5; animation: sc1-wall 8s ease-in-out infinite alternate;
}
.scn-god-forbids-generalship .altar {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 15px rgba(0,0,0,0.7); animation: sc1-altar 6s ease-in-out infinite;
}
.scn-god-forbids-generalship .flame {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 30px; transform: translateX(-60%); background: radial-gradient(ellipse at 50% 80%, #d08040 0%, #b06020 40%, #803010 70%, transparent 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px #b06020, 0 0 40px 14px rgba(176,96,32,0.5); animation: sc1-flame 1.5s ease-in-out infinite alternate;
}
.scn-god-forbids-generalship .eagle-silhouette {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 30px; background: #1a0a0a; border-radius: 50% 50% 0 0 / 80% 80% 0 0; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); filter: blur(2px); opacity: 0.4; animation: sc1-eagle 4s ease-in-out infinite alternate;
}
.scn-god-forbids-generalship .figure-xenophon {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 40px; background: linear-gradient(180deg, #2a1a10 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc1-figure 3s ease-in-out infinite;
}
.scn-god-forbids-generalship .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 10px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%); opacity: 0.7; animation: sc1-shadow 3s ease-in-out infinite;
}
.scn-god-forbids-generalship .flicker-light {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, rgba(200,120,40,0.3) 0%, transparent 60%); animation: sc1-flicker 2s ease-in-out infinite alternate;
}
@keyframes sc1-wall { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes sc1-altar { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes sc1-flame { 0% { transform: translateX(-60%) scaleY(1); opacity: 0.9; } 50% { transform: translateX(-60%) scaleY(1.2); opacity: 1; } 100% { transform: translateX(-60%) scaleY(0.95); opacity: 0.85; } }
@keyframes sc1-eagle { 0% { transform: translateY(0) rotate(-5deg); opacity: 0.3; } 50% { transform: translateY(-8px) rotate(0deg); opacity: 0.5; } 100% { transform: translateY(2px) rotate(5deg); opacity: 0.35; } }
@keyframes sc1-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-2deg); } 70% { transform: translateX(-1px) rotate(1deg); } }
@keyframes sc1-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } }
@keyframes sc1-flicker { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }

.scn-xenophon-declines-generalship {
  background: linear-gradient(180deg, #a8c8e0 0%, #e0e8f0 40%, #f0e8d0 100%), radial-gradient(ellipse at 50% 100%, #d0c0a0 0%, transparent 70%);
}
.scn-xenophon-declines-generalship .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #88b0d0 0%, #b0d0e0 100%); animation: sc2-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-declines-generalship .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 20% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); animation: sc2-ground 12s ease-in-out infinite alternate;
}
.scn-xenophon-declines-generalship .crowd-left {
  position: absolute; bottom: 10%; left: 5%; width: 30%; height: 60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 20% 20% 0 0; clip-path: polygon(0% 100%, 20% 40%, 40% 100%, 60% 50%, 80% 100%, 100% 60%, 100% 0%, 0% 0%); opacity: 0.6; animation: sc2-crowd 8s ease-in-out infinite;
}
.scn-xenophon-declines-generalship .crowd-right {
  position: absolute; bottom: 10%; right: 5%; width: 30%; height: 60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 20% 20% 0 0; clip-path: polygon(0% 60%, 20% 100%, 40% 50%, 60% 100%, 80% 40%, 100% 100%, 100% 0%, 0% 0%); opacity: 0.6; animation: sc2-crowd 9s ease-in-out infinite reverse;
}
.scn-xenophon-declines-generalship .xenophon {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc2-xenophon 3s ease-in-out infinite;
}
.scn-xenophon-declines-generalship .hand {
  position: absolute; bottom: 22%; left: 55%; width: 10px; height: 20px; transform-origin: bottom left; background: linear-gradient(180deg, #2a1a10 0%, #1a100a 100%); border-radius: 40% 40% 20% 20%; animation: sc2-hand 2.5s ease-in-out infinite alternate;
}
.scn-xenophon-declines-generalship .shadow {
  position: absolute; bottom: 18%; left: 46%; width: 50px; height: 8px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%); animation: sc2-shadow 3s ease-in-out infinite;
}
@keyframes sc2-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sc2-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sc2-crowd { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } }
@keyframes sc2-xenophon { 0%,100% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(-3deg); } 70% { transform: translateX(-50%) rotate(2deg); } }
@keyframes sc2-hand { 0% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-15deg); } }
@keyframes sc2-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } }

.scn-xenophon-warns-of-lacedaemonian-anger {
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9aa0 30%, #b0b8b0 100%), radial-gradient(ellipse at 50% 0%, #d0d8d0 0%, transparent 70%);
}
.scn-xenophon-warns-of-lacedaemonian-anger .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #5a6a7a 0%, #8a9aa0 100%); animation: sc3-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-lacedaemonian-anger .clouds {
  position: absolute; top: 10%; left: -20%; width: 140%; height: 30%; background: linear-gradient(180deg, rgba(100,110,120,0.6) 0%, rgba(150,160,170,0.2) 100%); filter: blur(8px); animation: sc3-clouds 40s linear infinite;
}
.scn-xenophon-warns-of-lacedaemonian-anger .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 30% 70% 0 0; animation: sc3-ground 14s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-lacedaemonian-anger .figures {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 40%; background: linear-gradient(180deg, #2a1a10 0%, #0a0a0a 100%); clip-path: polygon(0% 100%, 10% 60%, 20% 100%, 30% 50%, 40% 100%, 55% 40%, 70% 100%, 80% 55%, 90% 100%, 100% 70%, 100% 0%, 0% 0%); opacity: 0.5; animation: sc3-figures 6s ease-in-out infinite;
}
.scn-xenophon-warns-of-lacedaemonian-anger .xenophon {
  position: absolute; bottom: 10%; left: 50%; width: 22px; height: 48px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc3-xenophon 4s ease-in-out infinite;
}
.scn-xenophon-warns-of-lacedaemonian-anger .storm-approach {
  position: absolute; top: 5%; right: -10%; width: 60%; height: 30%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); clip-path: polygon(0% 100%, 20% 60%, 40% 100%, 60% 70%, 80% 100%, 100% 80%, 100% 0%, 0% 0%); opacity: 0.4; filter: blur(4px); animation: sc3-storm 25s linear infinite;
}
.scn-xenophon-warns-of-lacedaemonian-anger .spear {
  position: absolute; bottom: 25%; left: 48%; width: 4px; height: 60px; transform-origin: bottom center; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 2px; animation: sc3-spear 5s ease-in-out infinite;
}
@keyframes sc3-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes sc3-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(50%); } }
@keyframes sc3-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes sc3-figures { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } }
@keyframes sc3-xenophon { 0%,100% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(-4deg) translateY(-2px); } 70% { transform: translateX(-50%) rotate(3deg) translateY(1px); } }
@keyframes sc3-storm { 0% { transform: translateX(60%); } 100% { transform: translateX(-100%); } }
@keyframes sc3-spear { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(5deg); } }

.scn-agasias-defends-xenophon {
  background: linear-gradient(180deg, #f0e8c0 0%, #f8f0d0 30%, #e8d8a0 100%), radial-gradient(ellipse at 50% 100%, #d0c080 0%, transparent 70%);
}
.scn-agasias-defends-xenophon .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #f0e8d0 0%, #f8f0e0 100%); animation: sc4-sky 10s ease-in-out infinite alternate;
}
.scn-agasias-defends-xenophon .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius: 30% 50% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.15); animation: sc4-ground 8s ease-in-out infinite alternate;
}
.scn-agasias-defends-xenophon .speaker {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 55px; transform-origin: bottom center; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc4-speaker 2s ease-in-out infinite;
}
.scn-agasias-defends-xenophon .listeners {
  position: absolute; bottom: 12%; left: 50%; width: 80px; height: 30px; background: linear-gradient(180deg, #2a1a10 0%, #0a0a0a 100%); clip-path: polygon(0% 100%, 15% 50%, 30% 100%, 45% 60%, 60% 100%, 75% 55%, 90% 100%, 100% 70%, 100% 0%, 0% 0%); opacity: 0.5; animation: sc4-listeners 3s ease-in-out infinite;
}
.scn-agasias-defends-xenophon .xenophon {
  position: absolute; bottom: 15%; left: 60%; width: 20px; height: 45px; transform-origin: bottom center; background: linear-gradient(180deg, #2a1a10 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc4-xenophon 4s ease-in-out infinite;
}
.scn-agasias-defends-xenophon .rays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.4) 0%, transparent 60%); animation: sc4-rays 6s ease-in-out infinite alternate;
}
.scn-agasias-defends-xenophon .laughter-burst {
  position: absolute; bottom: 25%; left: 40%; width: 12px; height: 12px; background: radial-gradient(circle, #c0a070 0%, transparent 100%); border-radius: 50%; animation: sc4-laugh 1s ease-in-out infinite;
}
@keyframes sc4-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sc4-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sc4-speaker { 0%,100% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(-8deg) scaleX(1.1); } 50% { transform: rotate(8deg) scaleX(1.1); } 75% { transform: rotate(-8deg) scaleX(1); } }
@keyframes sc4-listeners { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(2px) rotate(-1deg); } }
@keyframes sc4-xenophon { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg) translateY(-2px); } }
@keyframes sc4-rays { 0% { opacity: 0.3; transform: scaleY(0.8); } 50% { opacity: 0.6; transform: scaleY(1.2); } 100% { opacity: 0.4; transform: scaleY(0.9); } }
@keyframes sc4-laugh { 0%,100% { transform: scale(0.5); opacity: 0.2; } 25% { transform: scale(1.2); opacity: 0.7; } 50% { transform: scale(0.8); opacity: 0.4; } 75% { transform: scale(1.5); opacity: 0.6; } }

.scn-cyrus-levies-troops-pretext {
  background:
    linear-gradient(180deg, #3e2a1a 0%, #2a1a0e 60%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 0%, #5a3a20 0%, transparent 70%);
}

.scn-cyrus-levies-troops-pretext .wall-left {
  position: absolute;
  left: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.6);
  animation: clt-wall 12s ease-in-out infinite alternate;
}

.scn-cyrus-levies-troops-pretext .wall-right {
  position: absolute;
  right: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.6);
  animation: clt-wall 12s ease-in-out infinite alternate-reverse;
}

.scn-cyrus-levies-troops-pretext .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2515 0%, #1a0e05 100%);
  border-top: 2px solid #4a3020;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}

.scn-cyrus-levies-troops-pretext .table {
  position: absolute;
  bottom: 18%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2515 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(5deg);
  animation: clt-table 8s ease-in-out infinite;
}

.scn-cyrus-levies-troops-pretext .map {
  position: absolute;
  bottom: 24%; left: 38%; width: 22%; height: 6%;
  background: linear-gradient(135deg, #b8a080 0%, #8a7050 50%, #5a4028 100%);
  border-radius: 2px;
  transform: perspective(300px) rotateX(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: clt-map 15s ease-in-out infinite alternate;
}

.scn-cyrus-levies-troops-pretext .hand {
  position: absolute;
  bottom: 22%; left: 42%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #d4a070 0%, #b08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: clt-point 3s ease-in-out infinite;
}

.scn-cyrus-levies-troops-pretext .candle {
  position: absolute;
  bottom: 28%; left: 48%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #e0c080 0%, #a08040 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 -2px 6px #ffd060;
}

.scn-cyrus-levies-troops-pretext .glow {
  position: absolute;
  bottom: 30%; left: 46%; width: 12%; height: 20%;
  background: radial-gradient(circle, rgba(255,208,96,0.3) 0%, transparent 70%);
  animation: clt-glow 4s ease-in-out infinite alternate;
}

@keyframes clt-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes clt-table {
  0%, 100% { transform: perspective(400px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(5deg) translateY(-2px); }
}

@keyframes clt-map {
  0% { transform: perspective(300px) rotateX(-10deg) scale(1); }
  50% { transform: perspective(300px) rotateX(-12deg) scale(1.02); }
  100% { transform: perspective(300px) rotateX(-8deg) scale(0.98); }
}

@keyframes clt-point {
  0% { transform: translateX(0) rotate(-5deg); }
  25% { transform: translateX(4px) rotate(0deg); }
  50% { transform: translateX(8px) rotate(5deg); }
  75% { transform: translateX(4px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}

@keyframes clt-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

/* --- */

.scn-miletus-revolt-and-siege {
  background:
    linear-gradient(180deg, #7ba0c0 0%, #4a7a9a 40%, #2a5a7a 70%, #1a3a5a 100%),
    radial-gradient(ellipse at 50% 0%, #d0e0f0 0%, transparent 60%);
}

.scn-miletus-revolt-and-siege .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d0e8 0%, #7aa0c0 100%);
  animation: mrs-sky 20s ease-in-out infinite alternate;
}

.scn-miletus-revolt-and-siege .fortress {
  position: absolute;
  bottom: 30%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #c8b898 0%, #9a8a6a 30%, #6a5a3a 100%);
  border-radius: 12% 12% 4% 4%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.3), 0 8px 16px rgba(0,0,0,0.4);
  animation: mrs-fortress 10s ease-in-out infinite alternate;
}

.scn-miletus-revolt-and-siege .sea {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a6a8a 0%, #1a3a5a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: mrs-sea 15s ease-in-out infinite alternate;
}

.scn-miletus-revolt-and-siege .ship-1 {
  position: absolute;
  bottom: 20%; left: 15%; width: 18%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: center bottom;
  animation: mrs-ship 8s ease-in-out infinite;
}

.scn-miletus-revolt-and-siege .ship-2 {
  position: absolute;
  bottom: 22%; right: 20%; width: 14%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: center bottom;
  animation: mrs-ship 10s ease-in-out infinite -3s;
}

.scn-miletus-revolt-and-siege .soldier {
  position: absolute;
  bottom: 32%; left: 42%; width: 10px; height: 26px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 40%, #705028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: mrs-soldier 4s ease-in-out infinite alternate;
}

.scn-miletus-revolt-and-siege .dust {
  position: absolute;
  bottom: 25%; left: 20%; width: 60%; height: 2%;
  background: linear-gradient(90deg, transparent, rgba(200,180,140,0.6) 30%, rgba(200,180,140,0.2) 70%, transparent);
  filter: blur(4px);
  animation: mrs-dust 12s linear infinite;
}

.scn-miletus-revolt-and-siege .banner {
  position: absolute;
  bottom: 48%; left: 42%; width: 4px; height: 10%;
  background: #5a3a1a;
  border-radius: 1px;
}

.scn-miletus-revolt-and-siege .banner::after {
  content: '';
  position: absolute;
  top: 0; left: 4px; width: 16px; height: 8px;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  animation: mrs-flag 2s ease-in-out infinite alternate;
}

@keyframes mrs-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes mrs-fortress {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}

@keyframes mrs-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(-2px); }
}

@keyframes mrs-ship {
  0% { transform: rotate(-2deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(5px); }
  50% { transform: rotate(-3deg) translateX(10px); }
  75% { transform: rotate(1deg) translateX(5px); }
  100% { transform: rotate(-2deg) translateX(0); }
}

@keyframes mrs-soldier {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes mrs-dust {
  0% { transform: translateX(-10%); opacity: 0; }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { transform: translateX(110%); opacity: 0; }
}

@keyframes mrs-flag {
  0% { transform: skewX(5deg); }
  100% { transform: skewX(-5deg); }
}

/* --- */

.scn-cyrus-negotiates-with-king {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 50%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 0%, #6a5040 0%, transparent 70%);
}

.scn-cyrus-negotiates-with-king .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e05 100%);
  animation: cnk-bg 20s ease-in-out infinite alternate;
}

.scn-cyrus-negotiates-with-king .throne {
  position: absolute;
  bottom: 10%; left: 50%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4028 50%, #3a2515 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}

.scn-cyrus-negotiates-with-king .figure-left {
  position: absolute;
  bottom: 15%; left: 22%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #c8b898 0%, #a08860 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cnk-figure-l 6s ease-in-out infinite alternate;
}

.scn-cyrus-negotiates-with-king .figure-right {
  position: absolute;
  bottom: 15%; right: 22%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #c8b898 0%, #a08860 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cnk-figure-r 6s ease-in-out infinite alternate-reverse;
}

.scn-cyrus-negotiates-with-king .torch-l {
  position: absolute;
  bottom: 30%; left: 15%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #c08040 0%, #8a6030 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #ffb040;
  animation: cnk-torch 3s ease-in-out infinite alternate;
}

.scn-cyrus-negotiates-with-king .torch-r {
  position: absolute;
  bottom: 30%; right: 15%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #c08040 0%, #8a6030 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #ffb040;
  animation: cnk-torch 3s ease-in-out infinite alternate-reverse;
}

.scn-cyrus-negotiates-with-king .glow {
  position: absolute;
  bottom: 20%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,176,64,0.15) 0%, transparent 70%);
  animation: cnk-glow 5s ease-in-out infinite alternate;
}

@keyframes cnk-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes cnk-figure-l {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes cnk-figure-r {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}

@keyframes cnk-torch {
  0% { opacity: 0.7; box-shadow: 0 0 8px 2px #ffb040; }
  50% { opacity: 1; box-shadow: 0 0 18px 6px #ffb040; }
  100% { opacity: 0.8; box-shadow: 0 0 12px 4px #ffb040; }
}

@keyframes cnk-glow {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(1); }
}

/* --- */

.scn-cyrus-pays-tribute {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 50%, #5a4030 0%, transparent 70%);
}

.scn-cyrus-pays-tribute .floor {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%);
}

.scn-cyrus-pays-tribute .table {
  position: absolute;
  bottom: 15%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3020 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%;
  transform: perspective(500px) rotateX(20deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}

.scn-cyrus-pays-tribute .coin-1 {
  position: absolute;
  bottom: 28%; left: 30%; width: 14px; height: 14px;
  background: radial-gradient(circle, #d4a060 0%, #b08040 50%, #805020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cpt-coin 6s ease-in-out infinite;
}

.scn-cyrus-pays-tribute .coin-2 {
  position: absolute;
  bottom: 30%; left: 40%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d4a060 0%, #b08040 50%, #805020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cpt-coin 7s ease-in-out infinite -2s;
}

.scn-cyrus-pays-tribute .coin-3 {
  position: absolute;
  bottom: 26%; left: 55%; width: 16px; height: 16px;
  background: radial-gradient(circle, #d4a060 0%, #b08040 50%, #805020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cpt-coin 5s ease-in-out infinite -4s;
}

.scn-cyrus-pays-tribute .scroll {
  position: absolute;
  bottom: 32%; left: 50%; width: 30%; height: 6%;
  background: linear-gradient(135deg, #c8b080 0%, #a08860 50%, #806840 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cpt-scroll 12s ease-in-out infinite alternate;
}

.scn-cyrus-pays-tribute .hand {
  position: absolute;
  bottom: 24%; left: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #d4a070 0%, #b08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpt-hand 4s ease-in-out infinite alternate;
}

.scn-cyrus-pays-tribute .lantern {
  position: absolute;
  top: 10%; left: 50%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #d0a050 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,176,64,0.3);
  animation: cpt-lantern 5s ease-in-out infinite alternate;
}

@keyframes cpt-coin {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(10deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}

@keyframes cpt-scroll {
  0% { transform: perspective(200px) rotateX(-15deg) scaleX(1); }
  50% { transform: perspective(200px) rotateX(-17deg) scaleX(1.02); }
  100% { transform: perspective(200px) rotateX(-13deg) scaleX(0.98); }
}

@keyframes cpt-hand {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(6px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

@keyframes cpt-lantern {
  0% { opacity: 0.6; box-shadow: 0 0 12px 4px rgba(255,176,64,0.2); }
  50% { opacity: 0.9; box-shadow: 0 0 24px 8px rgba(255,176,64,0.4); }
  100% { opacity: 0.7; box-shadow: 0 0 16px 6px rgba(255,176,64,0.3); }
}

.scn-cheirisophus-orders-elections {
  background:
    linear-gradient(180deg, #ffd080 0%, #ffe0a0 30%, #ffcc80 60%, #c09050 100%);
}
.scn-cheirisophus-orders-elections .sun-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #ffc060 70%, transparent 100%);
  animation: che1-sky 8s ease-in-out infinite alternate;
}
.scn-cheirisophus-orders-elections .sun-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #a08050 0%, #604020 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-cheirisophus-orders-elections .sun-tent {
  position: absolute; bottom: 35%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  animation: che1-tent 10s ease-in-out infinite;
}
.scn-cheirisophus-orders-elections .sun-tent.left {
  left: 20%;
  transform: rotate(-8deg);
  animation-delay: 0s;
}
.scn-cheirisophus-orders-elections .sun-tent.right {
  right: 20%;
  transform: rotate(8deg);
  animation-delay: -3s;
}
.scn-cheirisophus-orders-elections .sun-officers {
  position: absolute; bottom: 38%; left: 35%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, #3a2a1a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: che1-officers 6s ease-in-out infinite;
}
.scn-cheirisophus-orders-elections .sun-speaker {
  position: absolute; bottom: 36%; left: 48%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: che1-speaker 4s ease-in-out infinite;
}
.scn-cheirisophus-orders-elections .sun-ray {
  position: absolute; top: 10%; width: 60%; height: 2px;
  background: linear-gradient(90deg, rgba(255,230,180,0.6) 0%, transparent 100%);
  animation: che1-ray 6s linear infinite;
}
.scn-cheirisophus-orders-elections .sun-ray.ray-a { left: 0; transform: rotate(15deg); animation-delay: 0s; }
.scn-cheirisophus-orders-elections .sun-ray.ray-b { left: 20%; transform: rotate(-10deg); animation-delay: -2s; }
@keyframes che1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes che1-tent { 0%,100% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } }
@keyframes che1-officers { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes che1-speaker { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-5deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes che1-ray { 0% { opacity: 0; width: 40%; } 50% { opacity: 0.7; width: 60%; } 100% { opacity: 0; width: 80%; } }

.scn-cheirisophus-rises {
  background:
    linear-gradient(180deg, #ffe8c0 0%, #ffd8a0 30%, #e0b080 60%, #a07850 100%);
}
.scn-cheirisophus-rises .calm-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe0c0 0%, #ffd0a0 70%, transparent 100%);
  animation: che2-sky 12s ease-in-out infinite alternate;
}
.scn-cheirisophus-rises .calm-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #b08050 0%, #704020 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-cheirisophus-rises .calm-figure {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: che2-rise 8s ease-in-out infinite;
  transform: translateX(-50%);
}
.scn-cheirisophus-rises .calm-shadow {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 4px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: che2-shadow 8s ease-in-out infinite;
}
.scn-cheirisophus-rises .calm-staff {
  position: absolute; bottom: 32%; left: 52%; width: 3px; height: 40px;
  background: #4a2a1a;
  border-radius: 2px;
  transform-origin: bottom;
  animation: che2-staff 8s ease-in-out infinite;
}
.scn-cheirisophus-rises .calm-breath {
  position: absolute; bottom: 50%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: che2-breath 4s ease-in-out infinite;
}
@keyframes che2-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes che2-rise { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes che2-shadow { 0%,100% { width: 24px; opacity: 0.3; } 50% { width: 28px; opacity: 0.2; } }
@keyframes che2-staff { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes che2-breath { 0%,100% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } }

.scn-dawn-glimmer {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 20%, #7a7a5a 40%, #a09070 60%);
}
.scn-dawn-glimmer .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #5a6a7a 30%, #9a8a6a 60%, transparent 100%);
  animation: che3-sky 15s ease-in-out infinite alternate;
}
.scn-dawn-glimmer .dawn-hill {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  opacity: 0.6;
}
.scn-dawn-glimmer .dawn-tent {
  position: absolute; bottom: 48%; width: 30px; height: 25px;
  background: #1a1a1a;
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  animation: che3-tent 3s ease-in-out infinite;
}
.scn-dawn-glimmer .dawn-tent.tiny-a { left: 30%; }
.scn-dawn-glimmer .dawn-tent.tiny-b { right: 30%; animation-delay: -1.5s; }
.scn-dawn-glimmer .dawn-silhouette {
  position: absolute; bottom: 35%; width: 8px; height: 20px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: che3-fig 5s ease-in-out infinite;
}
.scn-dawn-glimmer .dawn-silhouette.figure-a { left: 20%; }
.scn-dawn-glimmer .dawn-silhouette.figure-b { right: 25%; animation-delay: -2s; }
.scn-dawn-glimmer .dawn-fire {
  position: absolute; bottom: 42%; left: 50%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ff8040 0%, #cc4000 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(255,128,64,0.4);
  animation: che3-fire 2s ease-in-out infinite;
}
.scn-dawn-glimmer .dawn-cloud {
  position: absolute; top: 20%; left: 10%; width: 120px; height: 12px;
  background: linear-gradient(90deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0.15) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: che3-cloud 40s linear infinite;
}
@keyframes che3-sky { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes che3-tent { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes che3-fig { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes che3-fire { 0% { opacity: 0.6; transform: translateX(-50%) scale(0.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.2); } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.9); } }
@keyframes che3-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(200%); } }

.scn-cheirisophus-address-troops {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 20%, #6a6a5a 40%, #4a3a2a 100%);
}
.scn-cheirisophus-address-troops .tense-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #5a6a7a 30%, #8a7a6a 60%, transparent 100%);
  animation: che4-sky 12s ease-in-out infinite alternate;
}
.scn-cheirisophus-address-troops .tense-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 30px 50px rgba(0,0,0,0.5);
}
.scn-cheirisophus-address-troops .tense-speaker {
  position: absolute; bottom: 35%; left: 50%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: che4-speak 4s ease-in-out infinite;
}
.scn-cheirisophus-address-troops .tense-troops {
  position: absolute; bottom: 30%; width: 100%; height: 40%;
  display: flex;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}
.scn-cheirisophus-address-troops .tense-troops.layer-a {
  bottom: 32%;
  animation: che4-troops 6s ease-in-out infinite;
  opacity: 0.6;
}
.scn-cheirisophus-address-troops .tense-troops.layer-b {
  bottom: 28%;
  animation: che4-troops 6s ease-in-out infinite reverse;
  animation-delay: -3s;
  opacity: 0.3;
}
.scn-cheirisophus-address-troops .tense-troops::before,
.scn-cheirisophus-address-troops .tense-troops::after {
  content: '';
  display: inline-block;
  width: 8px; height: 16px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
}
/* Since pseudo-elements per layer are not separate children, we'll add extra divs. Actually we already have two layers as separate divs, but they need inner figures. We'll adjust JS to include figures as children. For simplicity, we'll use background patterns. */

/* Let's define the children better in JS: replace .tense-troops with .troop-fig n */
/* For brevity, I'll use a flexible approach: give each layer a background-image with radial gradients to represent troops. */
.scn-cheirisophus-address-troops .tense-troops {
  background-image:
    radial-gradient(circle, #0a0a0a 2px, transparent 2px),
    radial-gradient(circle, #0a0a0a 2px, transparent 2px);
  background-size: 14px 20px, 14px 20px;
  background-position: 10% 60%, 30% 40%, 50% 70%, 70% 30%, 90% 50%;
}
.scn-cheirisophus-address-troops .tense-flag {
  position: absolute; bottom: 40%; left: 52%; width: 4px; height: 20px;
  background: #3a2a1a;
  animation: che4-flag 4s ease-in-out infinite;
}
.scn-cheirisophus-address-troops .tense-flag::after {
  content: '';
  position: absolute; top: 2px; left: 4px; width: 14px; height: 8px;
  background: #6a4a3a;
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}
.scn-cheirisophus-address-troops .tense-stone {
  position: absolute; bottom: 40%; left: 46%; width: 20px; height: 10px;
  background: #4a3a2a;
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: che4-stone 8s ease-in-out infinite;
}
@keyframes che4-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes che4-speak { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-4deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(3deg); } 75% { transform: translateX(-50%) rotate(-2deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes che4-troops { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.7; transform: translateY(-2px); } 100% { opacity: 0.3; transform: translateY(0); } }
@keyframes che4-flag { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes che4-stone { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }

.scn-xenophon-warns-of-banishment {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2010 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 70%);
  animation: xwb-bg 8s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-banishment .wall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); }
.scn-xenophon-warns-of-banishment .gate { position:absolute; bottom:10%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border:4px solid #4a3020; border-radius:10% 10% 0 0; box-shadow: inset 0 0 20px #000; animation: xwb-gate 12s ease-in-out infinite alternate; }
.scn-xenophon-warns-of-banishment .figure-xenophon { position:absolute; bottom:15%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: xwb-figure 4s ease-in-out infinite; }
.scn-xenophon-warns-of-banishment .torch { position:absolute; bottom:20%; left:55%; width:6px; height:30px; background: linear-gradient(180deg, #4a2010 0%, #1a0a00 100%); border-radius:50%; animation: xwb-torch 1s ease-in-out infinite alternate; }
.scn-xenophon-warns-of-banishment .torch-glow { position:absolute; bottom:20%; left:55%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffa050 0%, rgba(255,160,80,0.3) 50%, transparent 100%); animation: xwb-glow 1.5s ease-in-out infinite alternate; }
.scn-xenophon-warns-of-banishment .shadow { position:absolute; bottom:10%; left:40%; width:60px; height:20px; background: #0a0500; border-radius:50%; filter: blur(8px); opacity:0.6; animation: xwb-shadow 8s ease-in-out infinite alternate; }
@keyframes xwb-bg { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes xwb-gate { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes xwb-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(2deg); } 75% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes xwb-torch { 0% { transform: scaleY(1); opacity:0.9; } 100% { transform: scaleY(1.2); opacity:1; } }
@keyframes xwb-glow { 0% { transform: translate(-50%,-50%) scale(0.9); opacity:0.8; } 100% { transform: translate(-50%,-50%) scale(1.1); opacity:1; } }
@keyframes xwb-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(0.8); opacity:0.5; } }

.scn-xenophon-absolves-agasias {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2010 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 70%);
  animation: xab-bg 8s ease-in-out infinite alternate;
}
.scn-xenophon-absolves-agasias .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-xenophon-absolves-agasias .wall-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #1a0a00 0%, transparent 100%); }
.scn-xenophon-absolves-agasias .figure-xenophon { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: xab-figure-x 4s ease-in-out infinite; }
.scn-xenophon-absolves-agasias .figure-agasias { position:absolute; bottom:20%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: xab-figure-a 4s ease-in-out infinite 2s; }
.scn-xenophon-absolves-agasias .torch { position:absolute; bottom:20%; left:45%; width:6px; height:30px; background: linear-gradient(180deg, #4a2010 0%, #1a0a00 100%); border-radius:50%; animation: xab-torch 1s ease-in-out infinite alternate; }
.scn-xenophon-absolves-agasias .torch-glow { position:absolute; bottom:20%; left:45%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffa050 0%, rgba(255,160,80,0.3) 50%, transparent 100%); animation: xab-glow 1.5s ease-in-out infinite alternate; }
.scn-xenophon-absolves-agasias .drape { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(180deg, #3a2010 0%, transparent 100%); clip-path: polygon(0 0,100% 0,100% 100%,0 80%); animation: xab-drape 12s ease-in-out infinite; }
@keyframes xab-bg { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes xab-figure-x { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes xab-figure-a { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(0); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes xab-torch { 0% { transform: scaleY(1); opacity:0.9; } 100% { transform: scaleY(1.2); opacity:1; } }
@keyframes xab-glow { 0% { transform: translate(-50%,-50%) scale(0.9); opacity:0.8; } 100% { transform: translate(-50%,-50%) scale(1.1); opacity:1; } }
@keyframes xab-drape { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }

.scn-agasias-surrenders {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2010 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 70%);
  animation: ags-bg 8s ease-in-out infinite alternate;
}
.scn-agasias-surrenders .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); }
.scn-agasias-surrenders .figure-agasias { position:absolute; bottom:15%; left:50%; width:22px; height:38px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: ags-figure 4s ease-in-out infinite; }
.scn-agasias-surrenders .arms { position:absolute; bottom:30%; left:50%; width:40px; height:10px; transform:translateX(-50%); background: linear-gradient(90deg, transparent, #3a2a1a 20%, #3a2a1a 80%, transparent); border-radius:50%; animation: ags-arms 2s ease-in-out infinite alternate; }
.scn-agasias-surrenders .torch { position:absolute; bottom:20%; left:35%; width:6px; height:30px; background: linear-gradient(180deg, #4a2010 0%, #1a0a00 100%); border-radius:50%; animation: ags-torch 1s ease-in-out infinite alternate; }
.scn-agasias-surrenders .torch-glow { position:absolute; bottom:20%; left:35%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffa050 0%, rgba(255,160,80,0.3) 50%, transparent 100%); animation: ags-glow 1.5s ease-in-out infinite alternate; }
.scn-agasias-surrenders .shadow { position:absolute; bottom:5%; left:40%; width:70px; height:25px; background: #0a0500; border-radius:50%; filter: blur(8px); opacity:0.6; animation: ags-shadow 8s ease-in-out infinite alternate; }
@keyframes ags-bg { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes ags-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ags-arms { 0% { transform: translateX(-50%) rotate(-10deg); } 100% { transform: translateX(-50%) rotate(10deg); } }
@keyframes ags-torch { 0% { transform: scaleY(1); opacity:0.9; } 100% { transform: scaleY(1.2); opacity:1; } }
@keyframes ags-glow { 0% { transform: translate(-50%,-50%) scale(0.9); opacity:0.8; } 100% { transform: translate(-50%,-50%) scale(1.1); opacity:1; } }
@keyframes ags-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.3); opacity:0.7; } 100% { transform: scaleX(0.8); opacity:0.5; } }

.scn-agasias-pleads {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2010 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 70%);
  animation: agp-bg 8s ease-in-out infinite alternate;
}
.scn-agasias-pleads .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-agasias-pleads .wall-right { position:absolute; top:0; right:0; width:15%; height:100%; background: linear-gradient(270deg, #1a0a00 0%, transparent 100%); }
.scn-agasias-pleads .figure-agasias { position:absolute; bottom:20%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: agp-agasias 4s ease-in-out infinite; }
.scn-agasias-pleads .figure-delegate { position:absolute; bottom:20%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: agp-delegate 4s ease-in-out infinite 2s; }
.scn-agasias-pleads .torch { position:absolute; bottom:20%; left:45%; width:6px; height:30px; background: linear-gradient(180deg, #4a2010 0%, #1a0a00 100%); border-radius:50%; animation: agp-torch 1s ease-in-out infinite alternate; }
.scn-agasias-pleads .torch-glow { position:absolute; bottom:20%; left:45%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffa050 0%, rgba(255,160,80,0.3) 50%, transparent 100%); animation: agp-glow 1.5s ease-in-out infinite alternate; }
.scn-agasias-pleads .scroll { position:absolute; bottom:25%; left:40%; width:14px; height:18px; background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%); border-radius:2px; transform:rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: agp-scroll 6s ease-in-out infinite; }
@keyframes agp-bg { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes agp-agasias { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes agp-delegate { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(0); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes agp-torch { 0% { transform: scaleY(1); opacity:0.9; } 100% { transform: scaleY(1.2); opacity:1; } }
@keyframes agp-glow { 0% { transform: translate(-50%,-50%) scale(0.9); opacity:0.8; } 100% { transform: translate(-50%,-50%) scale(1.1); opacity:1; } }
@keyframes agp-scroll { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

/* ---- cleanor-answers-first (tag: ca) ---- */
.scn-cleanor-answers-first {
  background: 
    linear-gradient(180deg, #f5d6a0 0%, #d4a560 40%, #8a6a3a 70%, #4a3520 100%),
    radial-gradient(ellipse at 80% 20%, #fff6d0 0%, transparent 60%);
}
.scn-cleanor-answers-first .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #d4a560 100%);
  animation: ca-sky 12s ease-in-out infinite alternate;
}
.scn-cleanor-answers-first .sun {
  position: absolute; top: 5%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff6d0 0%, #f5c840 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(245, 200, 64, 0.4);
  animation: ca-sun 8s ease-in-out infinite;
}
.scn-cleanor-answers-first .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4520 100%);
  border-radius: 0 0 0 0;
}
.scn-cleanor-answers-first .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #b89a5a 0%, #7a5e30 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  opacity: 0.6;
  animation: ca-hills 20s ease-in-out infinite alternate;
}
.scn-cleanor-answers-first .figures {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: 
    radial-gradient(ellipse at 30% 100%, #1a1a1a 0%, transparent 70%),
    radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 70%),
    radial-gradient(ellipse at 70% 100%, #1a1a1a 0%, transparent 70%);
  filter: blur(2px);
  animation: ca-figures 6s ease-in-out infinite;
}
.scn-cleanor-answers-first .speaker {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ca-speaker 4s ease-in-out infinite;
}
.scn-cleanor-answers-first .dust-cloud {
  position: absolute; bottom: 15%; left: 35%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(245, 214, 160, 0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ca-dust 10s linear infinite;
}
@keyframes ca-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ca-sun { 0%, 100% { transform: scale(1); box-shadow: 0 0 80px 20px rgba(245, 200, 64, 0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 30px rgba(245, 200, 64, 0.5); } }
@keyframes ca-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ca-figures { 0%, 100% { filter: blur(2px) brightness(1); } 50% { filter: blur(1px) brightness(1.1); } }
@keyframes ca-speaker { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-5deg); } }
@keyframes ca-dust { 0% { transform: translateX(-20px) scale(1); opacity: 0.6; } 50% { transform: translateX(20px) scale(1.2); opacity: 0.3; } 100% { transform: translateX(40px) scale(1); opacity: 0.6; } }

/* ---- phalinus-argues-king-power (tag: ph) ---- */
.scn-phalinus-argues-king-power {
  background: 
    linear-gradient(180deg, #ffd080 0%, #c89040 60%, #5a3a20 100%),
    radial-gradient(ellipse at 50% 30%, #ffe080 0%, transparent 60%);
}
.scn-phalinus-argues-king-power .sun {
  position: absolute; top: 2%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff5d0 0%, #f5c040 50%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 120px 30px rgba(255, 200, 80, 0.5);
  animation: ph-sun 6s ease-in-out infinite;
}
.scn-phalinus-argues-king-power .figure {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform: translateX(-50%);
  animation: ph-figure 5s ease-in-out infinite;
}
.scn-phalinus-argues-king-power .shadow {
  position: absolute; bottom: 15%; left: 40%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform: skewX(-20deg);
  animation: ph-shadow 5s ease-in-out infinite;
}
.scn-phalinus-argues-king-power .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a5a30 0%, #4a3018 100%);
}
.scn-phalinus-argues-king-power .motes {
  position: absolute; top: 10%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255, 230, 180, 0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ph-motes 8s linear infinite;
}
.scn-phalinus-argues-king-power .motes-b {
  position: absolute; top: 40%; left: 60%; width: 15px; height: 15px;
  background: radial-gradient(circle, rgba(255, 230, 180, 0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ph-motes 10s linear infinite reverse;
}
.scn-phalinus-argues-king-power .halo {
  position: absolute; top: 5%; left: 45%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255, 230, 180, 0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: ph-halo 8s ease-in-out infinite;
}
@keyframes ph-sun { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.08); } }
@keyframes ph-figure { 0%, 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } 30% { transform: translateX(-50%) rotate(3deg) translateY(-3px); } 60% { transform: translateX(-50%) rotate(-2deg) translateY(2px); } }
@keyframes ph-shadow { 0%, 100% { transform: skewX(-20deg) scaleX(1); opacity: 0.6; } 50% { transform: skewX(-20deg) scaleX(1.1); opacity: 0.8; } }
@keyframes ph-motes { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 25% { transform: translateY(-20px) scale(1.3); opacity: 0.2; } 100% { transform: translateY(0) scale(1); opacity: 0.4; } }
@keyframes ph-halo { 0%, 100% { opacity: 0.5; } 50% { opacity: 0.8; } }

/* ---- theopompus-speaks (tag: th) ---- */
.scn-theopompus-speaks {
  background: 
    linear-gradient(180deg, #8a6a4a 0%, #5a4028 40%, #3a2818 100%),
    radial-gradient(ellipse at 50% 50%, #5a4028 0%, transparent 70%);
}
.scn-theopompus-speaks .tent-left {
  position: absolute; top: 0; left: 0; width: 40%; height: 100%;
  background: linear-gradient(90deg, #4a3520 0%, transparent 100%);
  animation: th-tent 10s ease-in-out infinite;
}
.scn-theopompus-speaks .tent-right {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(270deg, #4a3520 0%, transparent 100%);
  animation: th-tent 10s ease-in-out infinite reverse;
}
.scn-theopompus-speaks .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
}
.scn-theopompus-speaks .table {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4028 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: th-table 6s ease-in-out infinite;
}
.scn-theopompus-speaks .figures-seated {
  position: absolute; bottom: 22%; left: 25%; right: 25%; height: 20%;
  background:
    radial-gradient(ellipse at 20% 100%, #1a1a1a 0%, transparent 60%),
    radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 60%),
    radial-gradient(ellipse at 80% 100%, #1a1a1a 0%, transparent 60%);
  filter: blur(2px);
  animation: th-figures 5s ease-in-out infinite;
}
.scn-theopompus-speaks .speaker {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: translateX(-50%);
  animation: th-speaker 4s ease-in-out infinite;
}
.scn-theopompus-speaks .light-beam {
  position: absolute; top: 0; bottom: 0;
  background: linear-gradient(180deg, rgba(255, 230, 180, 0.15) 0%, transparent 60%);
  animation: th-beam 12s ease-in-out infinite;
}
.scn-theopompus-speaks .beam-1 {
  left: 30%; width: 8%;
  animation-delay: -2s;
}
.scn-theopompus-speaks .beam-2 {
  left: 55%; width: 6%;
  animation-delay: -8s;
}
@keyframes th-tent { 0%, 100% { opacity: 0.8; } 50% { opacity: 0.9; } }
@keyframes th-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes th-figures { 0%, 100% { filter: blur(2px) brightness(0.9); } 50% { filter: blur(1px) brightness(1.1); } }
@keyframes th-speaker { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-45%) rotate(5deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-55%) rotate(-5deg); } }
@keyframes th-beam { 0%, 100% { opacity: 0.4; } 50% { opacity: 0.7; } }

/* ---- some-weak-answers (tag: we) ---- */
.scn-some-weak-answers {
  background: 
    linear-gradient(180deg, #d4a560 0%, #b89050 50%, #8a6a3a 100%),
    radial-gradient(ellipse at 50% 60%, #b89050 0%, transparent 60%);
}
.scn-some-weak-answers .ground-top {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #8a6a3a 0%, transparent 70%);
  animation: we-ground 10s ease-in-out infinite;
}
.scn-some-weak-answers .ground-bottom {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4028 100%);
}
.scn-some-weak-answers .altar {
  position: absolute; top: 50%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #b89860 0%, #8a6a3a 100%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: we-altar 8s ease-in-out infinite;
}
.scn-some-weak-answers .figures {
  position: absolute; top: 40%; left: 50%; width: 200px; height: 200px;
  background:
    radial-gradient(ellipse at 20% 50%, #1a1a1a 0%, transparent 40%),
    radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, transparent 40%),
    radial-gradient(ellipse at 80% 50%, #1a1a1a 0%, transparent 40%),
    radial-gradient(ellipse at 35% 30%, #1a1a1a 0%, transparent 40%),
    radial-gradient(ellipse at 65% 30%, #1a1a1a 0%, transparent 40%);
  filter: blur(3px);
  animation: we-figures 6s ease-in-out infinite;
}
.scn-some-weak-answers .shadows {
  position: absolute; top: 50%; left: 50%; width: 250px; height: 250px;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(0,0,0,0.3) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 50%, rgba(0,0,0,0.3) 0%, transparent 50%),
    radial-gradient(ellipse at 35% 30%, rgba(0,0,0,0.3) 0%, transparent 50%),
    radial-gradient(ellipse at 65% 30%, rgba(0,0,0,0.3) 0%, transparent 50%);
  transform: translate(-50%, -50%) rotate(0deg);
  animation: we-shadows 12s linear infinite;
}
.scn-some-weak-answers .dust {
  position: absolute; top: 45%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255, 230, 180, 0.1) 0%, transparent 70%);
  filter: blur(6px);
  animation: we-dust 15s linear infinite;
}
@keyframes we-ground { 0%, 100% { opacity: 0.7; } 50% { opacity: 0.9; } }
@keyframes we-altar { 0%, 100% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.05); } }
@keyframes we-figures { 0%, 100% { filter: blur(3px) brightness(1); } 50% { filter: blur(2px) brightness(1.1); } }
@keyframes we-shadows { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes we-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 50% { transform: translate(20px, -20px) scale(1.2); opacity: 0.1; } 100% { transform: translate(0, 0) scale(1); opacity: 0.3; } }

.scn-xenophon-asks-disgrace {
  background:
    linear-gradient(180deg, #3a2a4e 0%, #5a4a6e 30%, #a08060 70%, #e0c080 100%),
    radial-gradient(ellipse at 50% 100%, #a08060 0%, transparent 70%);
}

.scn-xenophon-asks-disgrace .wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 70%);
  opacity: 0.6;
}

.scn-xenophon-asks-disgrace .window-sky {
  position: absolute; top: 8%; left: 30%; width: 35%; height: 40%;
  background: linear-gradient(180deg, #ffd080 0%, #ffb050 40%, #a0586a 100%);
  border-radius: 4px;
  animation: xad-sky 15s ease-in-out infinite alternate;
}

.scn-xenophon-asks-disgrace .window-frame {
  position: absolute; top: 7%; left: 28%; width: 39%; height: 42%;
  border: 6px solid #4a2a1a;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 12px #301010;
}

.scn-xenophon-asks-disgrace .figure-xen {
  position: absolute; bottom: 15%; left: 40%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #1a1010 20%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xad-figure 4s ease-in-out infinite;
}

.scn-xenophon-asks-disgrace .listeners {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 20%;
  background:
    radial-gradient(ellipse at 20% 100%, #0a0505 30%, transparent 40%),
    radial-gradient(ellipse at 50% 100%, #0a0505 20%, transparent 30%),
    radial-gradient(ellipse at 80% 100%, #0a0505 25%, transparent 35%);
  opacity: 0.7;
  animation: xad-listeners 8s ease-in-out infinite alternate;
}

.scn-xenophon-asks-disgrace .brazier {
  position: absolute; bottom: 12%; left: 68%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffa040 0%, #cc6020 60%, #600000 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #ff8040, 0 0 40px 12px rgba(255,128,64,0.3);
  animation: xad-brazier 2s ease-in-out infinite alternate;
}

.scn-xenophon-asks-disgrace .glow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 65% 25%, rgba(255,200,100,0.15) 0%, transparent 60%);
  animation: xad-glow 6s ease-in-out infinite alternate;
}

@keyframes xad-sky { 0%{opacity:0.8;transform:scale(1)} 50%{opacity:1;transform:scale(1.02)} 100%{opacity:0.9;transform:scale(0.98)} }
@keyframes xad-figure { 0%,100%{transform:rotate(0deg) translateX(0)} 25%{transform:rotate(-2deg) translateX(-2px)} 50%{transform:rotate(2deg) translateX(2px)} 75%{transform:rotate(-1deg) translateX(-1px)} }
@keyframes xad-listeners { 0%{opacity:0.5} 50%{opacity:0.7} 100%{opacity:0.6} }
@keyframes xad-brazier { 0%{transform:scale(1);box-shadow:0 0 15px 6px #ff8040} 50%{transform:scale(1.1);box-shadow:0 0 30px 12px #ffa050} 100%{transform:scale(1);box-shadow:0 0 20px 8px #ff8040} }
@keyframes xad-glow { 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.4} }

.scn-xenophon-on-glory {
  background:
    linear-gradient(180deg, #f0c8a0 0%, #e0a070 40%, #b07050 70%, #704030 100%),
    radial-gradient(ellipse at 30% 0%, #ffe8c0 0%, transparent 50%);
}

.scn-xenophon-on-glory .dawn-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 55%;
  background: linear-gradient(180deg, #ffd090 0%, #ffb060 50%, #d0a070 100%);
  animation: xog-sky 20s ease-in-out infinite alternate;
}

.scn-xenophon-on-glory .sun-disk {
  position: absolute; top: 20%; left: 25%; width: 12%; height: 14%;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffc040, 0 0 80px 40px rgba(255,192,64,0.4);
  animation: xog-sun 30s linear infinite;
}

.scn-xenophon-on-glory .horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #a06860 0%, #704840 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

.scn-xenophon-on-glory .figure-xen {
  position: absolute; bottom: 18%; left: 30%; width: 6%; height: 28%;
  background: linear-gradient(180deg, #1a1010 20%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xog-figure 5s ease-in-out infinite;
}

.scn-xenophon-on-glory .soldiers {
  position: absolute; bottom: 15%; left: 40%; width: 50%; height: 20%;
  background:
    radial-gradient(ellipse at 10% 100%, #0a0505 20%, transparent 30%),
    radial-gradient(ellipse at 30% 100%, #0a0505 20%, transparent 30%),
    radial-gradient(ellipse at 50% 100%, #0a0505 20%, transparent 30%),
    radial-gradient(ellipse at 70% 100%, #0a0505 20%, transparent 30%);
  opacity: 0.7;
  animation: xog-soldiers 10s ease-in-out infinite alternate;
}

.scn-xenophon-on-glory .banner {
  position: absolute; bottom: 25%; left: 35%; width: 10%; height: 16%;
  background: linear-gradient(90deg, #a04030 0%, #b06040 100%);
  border-radius: 0 0 10% 10%;
  transform-origin: top left;
  animation: xog-banner 3s ease-in-out infinite alternate;
}

.scn-xenophon-on-glory .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #604838 0%, #302818 100%);
}

@keyframes xog-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes xog-sun { 0%{transform:translateX(-20px)} 50%{transform:translateX(20px)} 100%{transform:translateX(-20px)} }
@keyframes xog-figure { 0%,100%{transform:rotate(0deg) translateY(0)} 25%{transform:rotate(-1deg) translateY(-3px)} 50%{transform:rotate(1deg) translateY(0)} 75%{transform:rotate(-1deg) translateY(-2px)} }
@keyframes xog-soldiers { 0%{opacity:0.5} 50%{opacity:0.8} 100%{opacity:0.6} }
@keyframes xog-banner { 0%{transform:rotate(-5deg); opacity:0.9} 50%{transform:rotate(5deg); opacity:1} 100%{transform:rotate(-5deg); opacity:0.9} }

.scn-xenophon-presses-his-case {
  background:
    linear-gradient(90deg, #1a1a2e 0%, #2a2a4e 40%, #4a3a5e 70%, #2a2a4e 100%),
    radial-gradient(ellipse at 60% 30%, #5a4a6a 0%, transparent 60%);
}

.scn-xenophon-presses-his-case .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 60%, #2a2a3a 100%);
  opacity: 0.6;
}

.scn-xenophon-presses-his-case .light-shaft {
  position: absolute; top: 0; left: 40%; width: 20%; height: 90%;
  background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%);
  transform: skewX(-5deg);
  animation: xpc-shaft 8s ease-in-out infinite alternate;
}

.scn-xenophon-presses-his-case .figure-torso {
  position: absolute; bottom: 10%; left: 35%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #2a2020 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xpc-torso 6s ease-in-out infinite;
}

.scn-xenophon-presses-his-case .hand-point {
  position: absolute; bottom: 35%; left: 42%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: 0% 100%;
  animation: xpc-hand 3s ease-in-out infinite alternate;
}

.scn-xenophon-presses-his-case .shadow-on-wall {
  position: absolute; bottom: 0; left: 20%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.5) 0%, transparent 60%);
  animation: xpc-shadow 7s ease-in-out infinite alternate;
}

.scn-xenophon-presses-his-case .table {
  position: absolute; bottom: 0; left: 30%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}

.scn-xenophon-presses-his-case .dust-particles {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 40%;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,200,150,0.1) 2%, transparent 5%),
    radial-gradient(circle at 60% 50%, rgba(255,200,150,0.1) 2%, transparent 5%),
    radial-gradient(circle at 80% 20%, rgba(255,200,150,0.1) 2%, transparent 5%);
  filter: blur(1px);
  animation: xpc-dust 15s linear infinite;
}

@keyframes xpc-shaft { 0%{opacity:0.3;transform:skewX(-5deg) scaleY(1)} 50%{opacity:0.6;transform:skewX(-3deg) scaleY(1.1)} 100%{opacity:0.4;transform:skewX(-5deg) scaleY(1)} }
@keyframes xpc-torso { 0%,100%{transform:rotate(0deg) translateY(0)} 25%{transform:rotate(-2deg) translateY(-2px)} 50%{transform:rotate(1deg) translateY(0)} 75%{transform:rotate(-1deg) translateY(-1px)} }
@keyframes xpc-hand { 0%{transform:rotate(-10deg) scaleX(0.8)} 50%{transform:rotate(15deg) scaleX(1)} 100%{transform:rotate(-10deg) scaleX(0.8)} }
@keyframes xpc-shadow { 0%{opacity:0.2} 50%{opacity:0.5} 100%{opacity:0.3} }
@keyframes xpc-dust { 0%{background-position:0 0} 100%{background-position:200px 100px} }

.scn-xenophon-bitter-sacrifice {
  background:
    linear-gradient(0deg, #1a0a0a 0%, #4a2020 30%, #8a5050 60%, #c08070 100%),
    radial-gradient(ellipse at 50% 0%, #e0b0a0 0%, transparent 60%);
}

.scn-xenophon-bitter-sacrifice .bright-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #f0c0a0 0%, #d09070 40%, #a06050 100%);
  animation: xbs-sky 25s ease-in-out infinite alternate;
}

.scn-xenophon-bitter-sacrifice .dark-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a1010 0%, #0a0505 100%);
}

.scn-xenophon-bitter-sacrifice .figure-alone {
  position: absolute; bottom: 15%; left: 45%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 20%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xbs-figure 4s ease-in-out infinite;
}

.scn-xenophon-bitter-sacrifice .long-shadow {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(135deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  transform: skewX(-20deg);
  transform-origin: bottom left;
  animation: xbs-shadow 12s ease-in-out infinite alternate;
}

.scn-xenophon-bitter-sacrifice .post {
  position: absolute; bottom: 10%; left: 30%; width: 4%; height: 35%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 15% 15% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.6);
}

.scn-xenophon-bitter-sacrifice .motes {
  position: absolute; top: 10%; left: 5%; width: 90%; height: 50%;
  background:
    radial-gradient(circle at 10% 20%, rgba(255,200,150,0.12) 2%, transparent 4%),
    radial-gradient(circle at 30% 80%, rgba(255,200,150,0.12) 2%, transparent 4%),
    radial-gradient(circle at 70% 40%, rgba(255,200,150,0.12) 2%, transparent 4%),
    radial-gradient(circle at 90% 60%, rgba(255,200,150,0.12) 2%, transparent 4%);
  filter: blur(2px);
  animation: xbs-motes 18s linear infinite;
}

@keyframes xbs-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes xbs-figure { 0%,100%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-3px) rotate(-1deg)} 50%{transform:translateY(0) rotate(1deg)} 75%{transform:translateY(-2px) rotate(-1deg)} }
@keyframes xbs-shadow { 0%{opacity:0.3;transform:skewX(-20deg) scaleY(1)} 50%{opacity:0.7;transform:skewX(-25deg) scaleY(1.2)} 100%{opacity:0.4;transform:skewX(-20deg) scaleY(1)} }
@keyframes xbs-motes { 0%{background-position:0 0} 100%{background-position:300px 200px} }

/* character-cyrus-youth */
.scn-character-cyrus-youth {
  background: 
    linear-gradient(180deg, #2a1f14 0%, #3b2b1f 40%, #1f1610 100%),
    radial-gradient(ellipse at 30% 40%, #5a3d28 0%, transparent 70%);
}
.scn-character-cyrus-youth .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3422, #2a1f14);
  border-radius: 0 0 20% 20%;
  animation: ccy1-wall 12s ease-in-out infinite alternate;
}
.scn-character-cyrus-youth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a, #1a120a);
  border-radius: 30% 30% 0 0;
}
.scn-character-cyrus-youth .figure-cyrus {
  position: absolute; bottom: 18%; left: 45%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1f1610 0%, #0f0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ccy1-breathe 6s ease-in-out infinite;
}
.scn-character-cyrus-youth .lamp {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #e8b868 0%, #c08040 60%, #1f1610 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200, 140, 60, 0.5);
  animation: ccy1-glow 4s ease-in-out infinite alternate;
}
.scn-character-cyrus-youth .shadow {
  position: absolute; bottom: 15%; left: 42%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: ccy1-shadow 6s ease-in-out infinite;
}
.scn-character-cyrus-youth .book {
  position: absolute; bottom: 20%; left: 38%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #6b5030, #3a2818);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.6);
}
.scn-character-cyrus-youth .mat {
  position: absolute; bottom: 21%; left: 35%; width: 70px; height: 8px;
  background: linear-gradient(90deg, #8a6040, #5a3d28, #3a2818);
  border-radius: 20% / 50%;
  opacity: 0.8;
}
@keyframes ccy1-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ccy1-breathe { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ccy1-glow { 0% { box-shadow: 0 0 20px 6px rgba(200,140,60,0.4); } 50% { box-shadow: 0 0 40px 12px rgba(200,140,60,0.7); } 100% { box-shadow: 0 0 25px 8px rgba(200,140,60,0.5); } }
@keyframes ccy1-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.6; } }

/* courtly-training */
.scn-courtly-training {
  background:
    linear-gradient(0deg, #2a1f14 0%, #3b2b1f 50%, #1f1610 100%),
    radial-gradient(ellipse at 60% 60%, #5a3d28 0%, transparent 70%);
}
.scn-courtly-training .bg-arch {
  position: absolute; top: 0; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #4a3422, #2a1f14);
  border-radius: 50% / 100% 100% 0 0;
  animation: cotr2-arch 14s ease-in-out infinite alternate;
}
.scn-courtly-training .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a, #1a120a);
  border-radius: 40% 40% 0 0;
}
.scn-courtly-training .horse-silhouette {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, #1f1610 40%, #0f0a07 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  clip-path: polygon(10% 40%, 20% 20%, 40% 10%, 70% 10%, 85% 30%, 90% 60%, 80% 80%, 60% 90%, 30% 85%, 10% 70%);
  transform: scaleX(-1);
  animation: cotr2-horse 8s ease-in-out infinite;
}
.scn-courtly-training .figure-rider {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1f1610 0%, #0f0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cotr2-rider 8s ease-in-out infinite;
}
.scn-courtly-training .torch {
  position: absolute; bottom: 35%; right: 20%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #e8b868 0%, #c08040 60%, #1f1610 100%);
  border-radius: 40%;
  box-shadow: 0 0 25px 8px rgba(200, 140, 60, 0.5);
  animation: cotr2-torch 3s ease-in-out infinite alternate;
}
.scn-courtly-training .shadow-horse {
  position: absolute; bottom: 6%; left: 28%; width: 110px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: cotr2-shdw 8s ease-in-out infinite;
}
.scn-courtly-training .pillar {
  position: absolute; bottom: 0; right: 10%; width: 16px; height: 70%;
  background: linear-gradient(180deg, #5a3d28, #3a2818);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
}
@keyframes cotr2-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.98); } }
@keyframes cotr2-horse { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-4px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes cotr2-rider { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cotr2-torch { 0% { box-shadow: 0 0 20px 5px rgba(200,140,60,0.4); } 50% { box-shadow: 0 0 35px 10px rgba(200,140,60,0.7); } 100% { box-shadow: 0 0 25px 6px rgba(200,140,60,0.5); } }
@keyframes cotr2-shdw { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.6; } }

/* cyrus-excels-in-arms */
.scn-cyrus-excels-in-arms {
  background:
    linear-gradient(180deg, #2a1f14 0%, #3b2b1f 30%, #1f1610 100%),
    radial-gradient(ellipse at 50% 20%, #5a3d28 0%, transparent 70%);
}
.scn-cyrus-excels-in-arms .bg-pillars {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a1f14, #1f1610);
  display: flex;
}
.scn-cyrus-excels-in-arms .bg-pillars::before,
.scn-cyrus-excels-in-arms .bg-pillars::after {
  content: '';
  position: absolute; bottom: 0; width: 12px; height: 100%;
  background: linear-gradient(180deg, #5a3d28, #3a2818);
}
.scn-cyrus-excels-in-arms .bg-pillars::before { left: 10%; }
.scn-cyrus-excels-in-arms .bg-pillars::after { right: 10%; }
.scn-cyrus-excels-in-arms .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a, #1a120a);
  border-radius: 30% 30% 0 0;
}
.scn-cyrus-excels-in-arms .figure-archer {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #1f1610 40%, #0f0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: cexa3-bow 5s ease-in-out infinite;
}
.scn-cyrus-excels-in-arms .target {
  position: absolute; bottom: 35%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #5a3d28 30%, #c08040 50%, #2a1f14 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(200, 140, 60, 0.3);
  animation: cexa3-target 10s ease-in-out infinite alternate;
}
.scn-cyrus-excels-in-arms .arrow {
  position: absolute; bottom: 45%; left: 40%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #c08040, #2a1f14);
  transform: rotate(20deg);
  transform-origin: left center;
  animation: cexa3-arrow 2s ease-in-out infinite;
}
.scn-cyrus-excels-in-arms .lamp-torch {
  position: absolute; bottom: 30%; left: 10%; width: 14px; height: 22px;
  background: radial-gradient(circle at 50% 30%, #e8b868 0%, #c08040 60%, #1f1610 100%);
  border-radius: 40%;
  box-shadow: 0 0 30px 10px rgba(200, 140, 60, 0.5);
  animation: cexa3-light 4s ease-in-out infinite alternate;
}
.scn-cyrus-excels-in-arms .quiver {
  position: absolute; bottom: 22%; left: 18%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #5a3d28, #3a2818);
  border-radius: 2px;
  transform: rotate(-5deg);
}
@keyframes cexa3-bow { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes cexa3-target { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes cexa3-arrow { 0% { transform: rotate(20deg); opacity: 1; } 50% { transform: rotate(25deg); opacity: 0.7; } 100% { transform: rotate(20deg); opacity: 1; } }
@keyframes cexa3-light { 0% { box-shadow: 0 0 20px 5px rgba(200,140,60,0.4); } 50% { box-shadow: 0 0 40px 12px rgba(200,140,60,0.7); } 100% { box-shadow: 0 0 25px 6px rgba(200,140,60,0.5); } }

/* cyrus-as-satrap */
.scn-cyrus-as-satrap {
  background:
    linear-gradient(180deg, #2a1f14 0%, #3b2b1f 30%, #1f1610 100%),
    radial-gradient(ellipse at 50% 60%, #5a3d28 0%, transparent 70%);
}
.scn-cyrus-as-satrap .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3422, #2a1f14);
  border-radius: 0 0 10% 10%;
}
.scn-cyrus-as-satrap .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a, #1a120a);
  border-radius: 20% 20% 0 0;
}
.scn-cyrus-as-satrap .throne {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #5a3d28, #3a2818);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: perspective(200px) rotateX(5deg);
  animation: csat4-throne 10s ease-in-out infinite alternate;
}
.scn-cyrus-as-satrap .figure-cyrus {
  position: absolute; bottom: 28%; left: 44%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1f1610 0%, #0f0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csat4-sit 8s ease-in-out infinite;
}
.scn-cyrus-as-satrap .attendant {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2818 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csat4-bow 9s ease-in-out infinite alternate;
}
.scn-cyrus-as-satrap .lamp-sconce {
  position: absolute; bottom: 40%; right: 10%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #e8b868 0%, #c08040 60%, #1f1610 100%);
  border-radius: 40%;
  box-shadow: 0 0 25px 8px rgba(200, 140, 60, 0.5);
  animation: csat4-glow 4s ease-in-out infinite alternate;
}
.scn-cyrus-as-satrap .rug {
  position: absolute; bottom: 16%; left: 25%; width: 150px; height: 14px;
  background: linear-gradient(90deg, #6b5030, #8a6040, #5a3d28);
  border-radius: 20% / 50%;
  opacity: 0.7;
}
.scn-cyrus-as-satrap .pillar {
  position: absolute; bottom: 0; left: 10%; width: 14px; height: 80%;
  background: linear-gradient(180deg, #5a3d28, #3a2818);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
}
@keyframes csat4-throne { 0% { transform: perspective(200px) rotateX(5deg) translateY(0); } 50% { transform: perspective(200px) rotateX(7deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(5deg) translateY(0); } }
@keyframes csat4-sit { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes csat4-bow { 0% { transform: rotate(0deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(0deg); } }
@keyframes csat4-glow { 0% { box-shadow: 0 0 20px 5px rgba(200,140,60,0.4); } 50% { box-shadow: 0 0 35px 10px rgba(200,140,60,0.7); } 100% { box-shadow: 0 0 25px 6px rgba(200,140,60,0.5); } }

/* thracian-feast-begins */
.scn-thracian-feast-begins {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 50%, #1a1208 100%),
    radial-gradient(ellipse at 50% 60%, #6a4020 0%, transparent 70%);
}
.scn-thracian-feast-begins .tf-floor {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-thracian-feast-begins .tf-fire-pit {
  position: absolute; top: 40%; left: 50%; width: 60px; height: 30px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, #d06030 0%, #a04020 40%, #602010 80%, #2a1a0e 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #d06030, 0 0 80px 40px rgba(208,96,48,0.4);
  animation: tf-fire 2s ease-in-out infinite alternate;
}
.scn-thracian-feast-begins .tf-table {
  position: absolute; top: 45%; left: 50%; width: 80px; height: 12px;
  transform: translate(-50%, -50%);
  background: linear-gradient(180deg, #5a3a20 0%, #3a2a18 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-thracian-feast-begins .tf-plate {
  position: absolute; top: 44%; left: 50%; width: 30px; height: 8px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, #8a6040 0%, #5a4020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-thracian-feast-begins .tf-stool-1 {
  position: absolute; top: 38%; left: 38%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(-10deg);
  box-shadow: 0 6px 6px rgba(0,0,0,0.5);
  animation: tf-stool 12s ease-in-out infinite;
}
.scn-thracian-feast-begins .tf-stool-2 {
  position: absolute; top: 36%; left: 55%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(8deg);
  box-shadow: 0 6px 6px rgba(0,0,0,0.5);
  animation: tf-stool 14s ease-in-out infinite reverse;
}
.scn-thracian-feast-begins .tf-stool-3 {
  position: absolute; top: 48%; left: 32%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(5deg);
  box-shadow: 0 6px 6px rgba(0,0,0,0.5);
  animation: tf-stool 16s ease-in-out infinite;
}
.scn-thracian-feast-begins .tf-figure-1 {
  position: absolute; top: 36%; left: 36%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-fig 8s ease-in-out infinite alternate;
}
.scn-thracian-feast-begins .tf-figure-2 {
  position: absolute; top: 35%; left: 53%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-fig 9s ease-in-out infinite alternate-reverse;
}
@keyframes tf-fire {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0.9; }
  50% { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.85; }
}
@keyframes tf-stool {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
}
@keyframes tf-fig {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}

/* seuthes-distributes-food */
.scn-seuthes-distributes-food {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a18 40%, #1e140c 100%),
    radial-gradient(ellipse at 50% 30%, #6a4020 0%, transparent 60%);
}
.scn-seuthes-distributes-food .sd-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #4a3020 0%, #2a1a10 100%);
  opacity: 0.5;
}
.scn-seuthes-distributes-food .sd-table {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a20 0%, #3a2a18 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.6);
}
.scn-seuthes-distributes-food .sd-loaf {
  position: absolute; bottom: 42%; left: 38%; width: 40px; height: 24px;
  background: radial-gradient(ellipse at 40% 30%, #b08050 0%, #805030 60%, #503020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sd-loaf 6s ease-in-out infinite alternate;
}
.scn-seuthes-distributes-food .sd-hand-left {
  position: absolute; bottom: 38%; left: 30%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 50% 40% 30% 50% / 60% 50% 50% 40%;
  transform: rotate(20deg);
  animation: sd-hand-l 4s ease-in-out infinite;
}
.scn-seuthes-distributes-food .sd-hand-right {
  position: absolute; bottom: 38%; left: 46%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 40% 50% 50% 30% / 50% 60% 40% 50%;
  transform: rotate(-15deg) scaleX(-1);
  animation: sd-hand-r 4s ease-in-out infinite alternate;
}
.scn-seuthes-distributes-food .sd-fragment-1 {
  position: absolute; bottom: 48%; left: 20%; width: 10px; height: 10px;
  background: #b08050;
  border-radius: 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sd-frag 7s linear infinite;
}
.scn-seuthes-distributes-food .sd-fragment-2 {
  position: absolute; bottom: 50%; left: 60%; width: 12px; height: 8px;
  background: #b08050;
  border-radius: 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sd-frag 8s linear infinite 2s;
}
.scn-seuthes-distributes-food .sd-fragment-3 {
  position: absolute; bottom: 52%; left: 70%; width: 8px; height: 12px;
  background: #b08050;
  border-radius: 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sd-frag 9s linear infinite 4s;
}
.scn-seuthes-distributes-food .sd-plate {
  position: absolute; bottom: 36%; left: 50%; width: 40px; height: 6px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #7a5030 0%, #4a3020 100%);
  border-radius: 50%;
}
@keyframes sd-loaf {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-2deg) scale(0.97); }
  100% { transform: rotate(-8deg) scale(1.03); }
}
@keyframes sd-hand-l {
  0%, 100% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(4px); }
}
@keyframes sd-hand-r {
  0% { transform: rotate(-15deg) scaleX(-1) translateX(0); }
  50% { transform: rotate(-10deg) scaleX(-1) translateX(-3px); }
  100% { transform: rotate(-20deg) scaleX(-1) translateX(2px); }
}
@keyframes sd-frag {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  100% { transform: translateY(-60px) rotate(360deg); opacity: 0; }
}

/* arystas-glutton */
.scn-arystas-glutton {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a18 50%, #1e140c 100%),
    radial-gradient(ellipse at 50% 60%, #6a4020 0%, transparent 70%);
}
.scn-arystas-glutton .ag-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #302018 0%, #1a1008 100%);
  opacity: 0.6;
}
.scn-arystas-glutton .ag-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-arystas-glutton .ag-body {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: ag-body 3s ease-in-out infinite alternate;
}
.scn-arystas-glutton .ag-head {
  position: absolute; bottom: 65%; left: 50%; width: 36px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2218 0%, #1a1008 100%);
  border-radius: 50%;
  animation: ag-head 4s ease-in-out infinite;
}
.scn-arystas-glutton .ag-loaf {
  position: absolute; bottom: 40%; left: 42%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 40% 30%, #c89060 0%, #a06030 60%, #603018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: ag-loaf 5s ease-in-out infinite alternate;
}
.scn-arystas-glutton .ag-meat {
  position: absolute; bottom: 30%; left: 46%; width: 28px; height: 16px;
  background: linear-gradient(180deg, #a85030 0%, #703020 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ag-meat 6s ease-in-out infinite;
}
.scn-arystas-glutton .ag-beaker-1 {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #805040 0%, #4a2820 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(-8deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: ag-beak 7s ease-in-out infinite;
}
.scn-arystas-glutton .ag-beaker-2 {
  position: absolute; bottom: 28%; left: 62%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #805040 0%, #4a2820 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(12deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: ag-beak 8s ease-in-out infinite reverse;
}
.scn-arystas-glutton .ag-table {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 8px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2a18 100%);
  border-radius: 4px;
  box-shadow: 0 6px 8px rgba(0,0,0,0.6);
}
@keyframes ag-body {
  0%, 100% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.02) rotate(2deg); }
}
@keyframes ag-head {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); }
}
@keyframes ag-loaf {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-5deg) scale(1.05); }
  100% { transform: rotate(-15deg) scale(0.95); }
}
@keyframes ag-meat {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-3px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes ag-beak {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-4px); }
  100% { transform: rotate(-8deg) translateY(0); }
}

/* gift-of-horse */
.scn-gift-of-horse {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 40%, #1e140c 100%),
    radial-gradient(ellipse at 50% 20%, #6a4020 0%, transparent 70%);
}
.scn-gift-of-horse .gh-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2010 0%, #1a1008 100%);
  animation: gh-sky 20s ease-in-out infinite alternate;
}
.scn-gift-of-horse .gh-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1208 100%);
  border-radius: 60% 40% 0 0 / 40% 20% 0 0;
}
.scn-gift-of-horse .gh-horse {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1208 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: scaleX(-1);
  animation: gh-horse 6s ease-in-out infinite alternate;
}
.scn-gift-of-horse .gh-horse::after {
  content: '';
  position: absolute; top: -20%; left: 50%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1208 100%);
  border-radius: 50%;
  transform: translateX(-50%);
}
.scn-gift-of-horse .gh-rider {
  position: absolute; bottom: 45%; left: 28%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: gh-rider 4s ease-in-out infinite alternate;
}
.scn-gift-of-horse .gh-boy {
  position: absolute; bottom: 20%; left: 60%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a2218 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gh-boy 5s ease-in-out infinite;
}
.scn-gift-of-horse .gh-clothes {
  position: absolute; bottom: 30%; left: 68%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #704030 0%, #402018 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: gh-clothes 8s ease-in-out infinite;
}
.scn-gift-of-horse .gh-salute {
  position: absolute; bottom: 38%; left: 62%; width: 6px; height: 12px;
  background: #2a1a10;
  border-radius: 2px;
  transform: rotate(30deg);
  animation: gh-salute 3s ease-in-out infinite alternate;
}
@keyframes gh-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gh-horse {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-4px); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes gh-rider {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(7deg) translateY(0); }
}
@keyframes gh-boy {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes gh-clothes {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes gh-salute {
  0% { transform: rotate(30deg) scale(1); }
  50% { transform: rotate(35deg) scale(1.1); }
  100% { transform: rotate(25deg) scale(0.9); }
}

.scn-orontas-led-to-death { background: linear-gradient(180deg, #1a1424 0%, #2a1c2a 40%, #1e121e 100%), radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 70%); }
.scn-orontas-led-to-death .tent-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1c1c 0%, #1a0e0e 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); }
.scn-orontas-led-to-death .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e0e 0%, #2a1e1e 100%); }
.scn-orontas-led-to-death .brazier-glow { position:absolute; bottom:35%; right:20%; width:14px; height:14px; background: radial-gradient(circle, #c8553d 0%, #6a2a1a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,85,61,.5), 0 0 80px 40px rgba(200,85,61,.2); animation: si1-braze 2s ease-in-out infinite alternate; }
.scn-orontas-led-to-death .figure-orontas { position:absolute; bottom:25%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si1-walk 4s ease-in-out infinite; }
.scn-orontas-led-to-death .figure-guard-l { position:absolute; bottom:25%; left:25%; width:22px; height:52px; background: linear-gradient(180deg, #2a1e1e 0%, #120a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si1-guard-l 3s ease-in-out infinite; }
.scn-orontas-led-to-death .figure-guard-r { position:absolute; bottom:25%; right:30%; width:22px; height:52px; background: linear-gradient(180deg, #2a1e1e 0%, #120a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si1-guard-r 3.5s ease-in-out infinite; }
.scn-orontas-led-to-death .arm-kinsman { position:absolute; bottom:38%; left:45%; width:8px; height:14px; background: #3a2a2a; border-radius: 40% 40% 20% 20%; transform-origin: top center; animation: si1-arm 5s ease-in-out infinite; }
.scn-orontas-led-to-death .shadow-pool { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: si1-shadow 6s ease-in-out infinite alternate; }
@keyframes si1-braze { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); box-shadow: 0 0 60px 30px rgba(200,85,61,.7); } 100% { opacity:.8; transform: scale(.9); } }
@keyframes si1-walk { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(0); } 75% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes si1-guard-l { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes si1-guard-r { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes si1-arm { 0% { transform: rotate(0deg); } 30% { transform: rotate(20deg); } 60% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes si1-shadow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.3; } }

.scn-artapates-last-service { background: linear-gradient(180deg, #12101a 0%, #1c1626 50%, #0e0c12 100%), radial-gradient(ellipse at 50% 60%, #2a2030 0%, transparent 70%); }
.scn-artapates-last-service .tent-fabric { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2030 0%, #1a1424 100%); clip-path: polygon(5% 0%, 95% 0%, 80% 100%, 20% 100%); }
.scn-artapates-last-service .curtain { position:absolute; top:35%; left:42%; width:18%; height:60%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1222 100%); border-radius: 0 20% 20% 0; transform-origin: left center; animation: si2-curtain 8s ease-in-out infinite; }
.scn-artapates-last-service .figure-entering { position:absolute; bottom:28%; left:38%; width:18px; height:45px; background: linear-gradient(180deg, #2a1a2a 0%, #0e0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si2-enter 5s ease-in-out infinite; }
.scn-artapates-last-service .figure-shadow { position:absolute; bottom:20%; left:40%; width:28px; height:12px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px); animation: si2-shadow-m 6s ease-in-out infinite; }
.scn-artapates-last-service .candle-glow { position:absolute; bottom:40%; right:22%; width:8px; height:8px; background: radial-gradient(circle, #d4a060 0%, #8a5a2a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(212,160,96,0.6), 0 0 60px 30px rgba(212,160,96,0.2); animation: si2-candle 3s ease-in-out infinite alternate; }
.scn-artapates-last-service .speck-mystery { position:absolute; top:45%; left:48%; width:4px; height:4px; background: #a08060; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(160,128,96,0.5); animation: si2-speck 12s ease-in-out infinite; }
@keyframes si2-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }
@keyframes si2-enter { 0% { opacity:1; transform: translateX(0); } 30% { transform: translateX(10px); opacity:.8; } 60% { transform: translateX(0); opacity:1; } 100% { transform: translateX(0); opacity:1; } }
@keyframes si2-shadow-m { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.4; transform: scale(.9); } }
@keyframes si2-candle { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); box-shadow: 0 0 40px 20px rgba(212,160,96,0.7); } 100% { opacity:.8; transform: scale(.9); } }
@keyframes si2-speck { 0% { opacity:.2; } 33% { opacity:1; } 66% { opacity:.3; } 100% { opacity:.2; } }

.scn-night-review-before-battle { background: linear-gradient(180deg, #0a0e1a 0%, #12162a 30%, #1a1e3a 60%, #0e121e 100%), radial-gradient(ellipse at 50% 100%, #222a4a 0%, transparent 80%); }
.scn-night-review-before-battle .starlit-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0e1a 0%, #141a2a 100%); animation: si3-sky 20s ease-in-out infinite alternate; }
.scn-night-review-before-battle .stars-a { position:absolute; top:8%; left:10%; width:100%; height:30%; background: radial-gradient(2px 2px at 20% 40%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 55% 15%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 80% 60%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 40% 70%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 90% 20%, #ffffff 0%, transparent 100%); filter: blur(1px); animation: si3-twinkle-a 6s ease-in-out infinite; }
.scn-night-review-before-battle .stars-b { position:absolute; top:20%; left:25%; width:100%; height:30%; background: radial-gradient(2px 2px at 15% 30%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 60% 80%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 35% 10%, #ffffff 0%, transparent 100%); filter: blur(1px); animation: si3-twinkle-b 8s ease-in-out infinite; animation-delay: 3s; }
.scn-night-review-before-battle .horizon-line { position:absolute; bottom:40%; left:0; right:0; height:10%; background: linear-gradient(0deg, #1a1e2a 0%, #0e121e 100%); border-radius: 50% 50% 0 0; }
.scn-night-review-before-battle .soldiers-left { position:absolute; bottom:30%; left:5%; width:30%; height:35%; background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 6px, transparent 6px, transparent 8px); mask: linear-gradient(0deg, #1a1a2a 0%, transparent 100%); animation: si3-troops 10s linear infinite; }
.scn-night-review-before-battle .soldiers-right { position:absolute; bottom:30%; right:5%; width:30%; height:35%; background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 6px, transparent 6px, transparent 8px); mask: linear-gradient(0deg, #1a1a2a 0%, transparent 100%); animation: si3-troops 12s linear infinite; }
.scn-night-review-before-battle .torch-left { position:absolute; bottom:32%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #6a3a1a 0%, #1a0a0a 100%); border-radius: 2px; box-shadow: 0 0 20px 8px #b07030; animation: si3-torch 2s ease-in-out infinite alternate; }
.scn-night-review-before-battle .torch-right { position:absolute; bottom:32%; right:25%; width:8px; height:20px; background: linear-gradient(180deg, #6a3a1a 0%, #1a0a0a 100%); border-radius: 2px; box-shadow: 0 0 20px 8px #b07030; animation: si3-torch 2s ease-in-out infinite alternate-reverse; }
@keyframes si3-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes si3-twinkle-a { 0% { opacity:.3; } 25% { opacity:1; } 50% { opacity:.5; } 75% { opacity:.8; } 100% { opacity:.4; } }
@keyframes si3-twinkle-b { 0% { opacity:.4; } 33% { opacity:1; } 66% { opacity:.6; } 100% { opacity:.3; } }
@keyframes si3-troops { 0% { background-position: 0 0; } 100% { background-position: -20px 0; } }
@keyframes si3-torch { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.8; transform: scaleY(.9); } }

.scn-cyrus-addresses-hellenes { background: linear-gradient(180deg, #0a0e1a 0%, #161a2e 40%, #0e121e 100%), radial-gradient(ellipse at 50% 100%, #1a1e3a 0%, transparent 70%); }
.scn-cyrus-addresses-hellenes .starlit-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0a0e1a 0%, #12162a 100%); animation: si4-sky 18s ease-in-out infinite alternate; }
.scn-cyrus-addresses-hellenes .stars-c { position:absolute; top:5%; left:20%; width:100%; height:30%; background: radial-gradient(2px 2px at 30% 50%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 70% 20%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 50% 80%, #ffffff 0%, transparent 100%); filter: blur(1px); animation: si4-twinkle 10s ease-in-out infinite; }
.scn-cyrus-addresses-hellenes .ground-plain { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #0e121e 0%, #1a1e2a 100%); }
.scn-cyrus-addresses-hellenes .figure-cyrus { position:absolute; bottom:25%; left:50%; width:22px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1e2a 0%, #100e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si4-speak 4s ease-in-out infinite; }
.scn-cyrus-addresses-hellenes .generals-left { position:absolute; bottom:25%; left:20%; width:60px; height:45px; background: radial-gradient(ellipse at 50% 100%, #1a1620 0%, transparent 80%); filter: blur(3px); animation: si4-gen-l 6s ease-in-out infinite; }
.scn-cyrus-addresses-hellenes .generals-right { position:absolute; bottom:25%; right:20%; width:60px; height:45px; background: radial-gradient(ellipse at 50% 100%, #1a1620 0%, transparent 80%); filter: blur(3px); animation: si4-gen-r 6s ease-in-out infinite; }
.scn-cyrus-addresses-hellenes .campfire { position:absolute; bottom:20%; left:50%; width:24px; height:24px; transform:translateX(-50%); background: radial-gradient(circle, #d07030 0%, #8a3a1a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(208,112,48,0.5), 0 0 100px 50px rgba(208,112,48,0.2); animation: si4-fire 2s ease-in-out infinite alternate; }
.scn-cyrus-addresses-hellenes .flag-pole { position:absolute; bottom:28%; left:65%; width:4px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); transform-origin: bottom; animation: si4-flag 5s ease-in-out infinite; }
@keyframes si4-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes si4-twinkle { 0% { opacity:.2; } 33% { opacity:.8; } 66% { opacity:.3; } 100% { opacity:.5; } }
@keyframes si4-speak { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes si4-gen-l { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.05); } 100% { opacity:.5; transform: scale(.95); } }
@keyframes si4-gen-r { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.05); } 100% { opacity:.6; transform: scale(.95); } }
@keyframes si4-fire { 0% { opacity:.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:.8; transform: translateX(-50%) scale(.9); } }
@keyframes si4-flag { 0% { transform: rotate(-5deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); } }

/* ---------- xenophon-justifies-foraging ---------- */
.scn-xenophon-justifies-foraging {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 40% 80%, #7a5a3a 0%, transparent 60%);
}
.scn-xenophon-justifies-foraging .tent-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 6% 6% 0 0 / 12% 12% 0 0;
  animation: xj-wall 12s ease-in-out infinite;
}
.scn-xenophon-justifies-foraging .tent-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-xenophon-justifies-foraging .figure-seated {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-10px) rotate(-5deg);
  animation: xj-figure 6s ease-in-out infinite alternate;
}
.scn-xenophon-justifies-foraging .lantern-glow {
  position: absolute; bottom: 35%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8b878 0%, #c89650 30%, transparent 70%);
  border-radius: 50%;
  animation: xj-lantern 4s ease-in-out infinite;
}
.scn-xenophon-justifies-foraging .lantern-body {
  position: absolute; bottom: 40%; left: 57%; width: 8px; height: 12px;
  background: #4a2a1a;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px 2px #d09050;
}
.scn-xenophon-justifies-foraging .supplies {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: xj-supplies 8s ease-in-out infinite;
}
.scn-xenophon-justifies-foraging .shadow-still {
  position: absolute; bottom: 14%; left: 28%; width: 40px; height: 8px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: xj-shadow 6s ease-in-out infinite alternate;
}
@keyframes xj-wall {
  0% { opacity: .9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.01); }
  100% { opacity: .85; transform: scaleY(1); }
}
@keyframes xj-figure {
  0% { transform: translateX(-10px) rotate(-5deg) scaleY(1); }
  50% { transform: translateX(-8px) rotate(-3deg) scaleY(1.02); }
  100% { transform: translateX(-12px) rotate(-7deg) scaleY(1); }
}
@keyframes xj-lantern {
  0%, 100% { opacity: .85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}
@keyframes xj-supplies {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes xj-shadow {
  0% { transform: scaleX(1) translateX(0); }
  100% { transform: scaleX(1.1) translateX(2px); }
}

/* ---------- xenophon-blames-cotyorites ---------- */
.scn-xenophon-blames-cotyorites {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #1a0a1a 100%),
    radial-gradient(ellipse at 50% 100%, #4a2a3a 0%, transparent 70%);
}
.scn-xenophon-blames-cotyorites .chamber-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
}
.scn-xenophon-blames-cotyorites .gate-closed {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4);
  transform: translate(-40px, 0);
  animation: xc-gate 3s ease-in-out infinite;
}
.scn-xenophon-blames-cotyorites .figure-accusing {
  position: absolute; bottom: 22%; left: 20%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(10px) rotate(15deg);
  animation: xc-accuse .8s ease-in-out infinite alternate;
}
.scn-xenophon-blames-cotyorites .torch-flame {
  position: absolute; bottom: 35%; left: 55%; width: 18px; height: 24px;
  background: radial-gradient(circle, #f0b060 0%, #c07040 50%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: xc-torch 1.2s ease-in-out infinite alternate;
}
.scn-xenophon-blames-cotyorites .torch-handle {
  position: absolute; bottom: 20%; left: 57%; width: 4px; height: 30px;
  background: #3a2a1a;
  border-radius: 2px;
}
.scn-xenophon-blames-cotyorites .shadow-slice {
  position: absolute; bottom: 18%; left: 45%; width: 60px; height: 20px;
  background: rgba(0,0,0,.4);
  filter: blur(5px);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: xc-shadow 2s ease-in-out infinite alternate;
}
@keyframes xc-gate {
  0% { transform: translate(-40px, 0) scaleX(1); }
  50% { transform: translate(-40px, -2px) scaleX(1.02); }
  100% { transform: translate(-40px, 0) scaleX(1); }
}
@keyframes xc-accuse {
  0% { transform: translateX(10px) rotate(15deg) scaleY(1); }
  25% { transform: translateX(12px) rotate(18deg) scaleY(1.02); }
  50% { transform: translateX(10px) rotate(12deg) scaleY(1); }
  75% { transform: translateX(8px) rotate(17deg) scaleY(1.01); }
  100% { transform: translateX(10px) rotate(15deg) scaleY(1); }
}
@keyframes xc-torch {
  0% { opacity: .7; transform: scale(1) rotate(-5deg); }
  50% { opacity: 1; transform: scale(1.15) rotate(5deg); }
  100% { opacity: .8; transform: scale(1) rotate(0); }
}
@keyframes xc-shadow {
  0% { transform: skewX(0) translateX(0); opacity: .4; }
  100% { transform: skewX(-5deg) translateX(5px); opacity: .6; }
}

/* ---------- xenophon-defends-forced-entry ---------- */
.scn-xenophon-defends-forced-entry {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 30% 80%, #5a3a2a 0%, transparent 60%);
}
.scn-xenophon-defends-forced-entry .gate-broken {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 15px rgba(0,0,0,.6);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 60% 100%, 0 80%);
  transform: translate(-35px, 0) rotate(-3deg);
  animation: xd-gate 2s ease-in-out infinite alternate;
}
.scn-xenophon-defends-forced-entry .figure-shoving {
  position: absolute; bottom: 25%; left: 25%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: xd-shove .6s ease-in-out infinite alternate;
}
.scn-xenophon-defends-forced-entry .figure-torso {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: xd-torso .8s ease-in-out infinite alternate;
}
.scn-xenophon-defends-forced-entry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 5px 10px rgba(0,0,0,.5);
}
.scn-xenophon-defends-forced-entry .dust {
  position: absolute; bottom: 22%; left: 20%; width: 30px; height: 15px;
  background: radial-gradient(circle, rgba(80,60,40,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: xd-dust 1.5s ease-in-out infinite alternate;
}
.scn-xenophon-defends-forced-entry .torch-wild {
  position: absolute; bottom: 35%; left: 55%; width: 14px; height: 20px;
  background: radial-gradient(circle, #f0a050 0%, #c07030 50%, transparent 80%);
  border-radius: 40% 40% 10% 10%;
  filter: blur(3px);
  animation: xd-wild .4s ease-in-out infinite alternate;
}
@keyframes xd-gate {
  0% { transform: translate(-35px, 0) rotate(-3deg) scaleX(1); }
  100% { transform: translate(-35px, 3px) rotate(-1deg) scaleX(1.05); }
}
@keyframes xd-shove {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(8deg) translateX(3px); }
  100% { transform: rotate(12deg) translateX(0); }
}
@keyframes xd-torso {
  0% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(-8deg) translateY(-2px); }
}
@keyframes xd-dust {
  0% { opacity: .3; transform: scale(1) translateX(0); }
  50% { opacity: .6; transform: scale(1.3) translateX(-5px); }
  100% { opacity: .2; transform: scale(1) translateX(0); }
}
@keyframes xd-wild {
  0% { opacity: .8; transform: scale(1) rotate(-10deg); }
  25% { opacity: 1; transform: scale(1.2) rotate(5deg); }
  50% { opacity: .7; transform: scale(1.1) rotate(-5deg); }
  75% { opacity: .9; transform: scale(1.3) rotate(10deg); }
  100% { opacity: .8; transform: scale(1) rotate(0); }
}

/* ---------- xenophon-threatens-alliance ---------- */
.scn-xenophon-threatens-alliance {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 30%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 0%, #2a3a4a 0%, transparent 60%);
}
.scn-xenophon-threatens-alliance .tent-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3a 60%, #2a1a2a 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  animation: xt-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-threatens-alliance .figure-commander {
  position: absolute; bottom: 25%; left: 50%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translate(-11px, 0);
  animation: xt-commander 4s ease-in-out infinite alternate;
}
.scn-xenophon-threatens-alliance .row-figures {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30px;
  background: repeating-linear-gradient(90deg, 
    #2a1a1a 0px, #2a1a1a 6px, 
    transparent 6px, transparent 14px);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: xt-row 3s ease-in-out infinite alternate;
}
.scn-xenophon-threatens-alliance .campfire-glow {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0a050 0%, #c07030 30%, transparent 70%);
  border-radius: 50%;
  animation: xt-fire 2.5s ease-in-out infinite;
}
.scn-xenophon-threatens-alliance .spear-rack {
  position: absolute; bottom: 20%; left: 65%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 5%;
  box-shadow: 0 0 6px rgba(0,0,0,.4);
  animation: xt-spear 6s ease-in-out infinite alternate;
}
.scn-xenophon-threatens-alliance .shadow-rank {
  position: absolute; bottom: 18%; left: 30%; width: 100px; height: 10px;
  background: rgba(0,0,0,.3);
  filter: blur(4px);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: xt-shadow 5s ease-in-out infinite alternate;
}
@keyframes xt-sky {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: .9; transform: scaleY(1.02); }
  100% { opacity: .8; transform: scaleY(1); }
}
@keyframes xt-commander {
  0% { transform: translate(-11px, 0) rotate(-2deg) scaleY(1); }
  50% { transform: translate(-11px, -2px) rotate(0deg) scaleY(1.02); }
  100% { transform: translate(-11px, 0) rotate(2deg) scaleY(1); }
}
@keyframes xt-row {
  0% { transform: scaleX(1) translateX(0); }
  100% { transform: scaleX(1.05) translateX(-3px); }
}
@keyframes xt-fire {
  0%, 100% { opacity: .8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
}
@keyframes xt-spear {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes xt-shadow {
  0% { transform: skewX(0) translateX(0); opacity: .3; }
  100% { transform: skewX(-3deg) translateX(4px); opacity: .5; }
}

/* march-to-provisions */
.scn-march-to-provisions { background: linear-gradient(180deg, #87ceeb 0%, #b7d7e8 30%, #e8c9a0 60%, #d4a373 100%), radial-gradient(ellipse at 50% 0%, #ffeedd 0%, transparent 60%); }
.scn-march-to-provisions .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8d4e8 0%, #cfe3f0 60%, transparent 100%); animation: mp-sky 12s ease-in-out infinite alternate; }
.scn-march-to-provisions .sun-glow { position:absolute; top:8%; left:45%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff7e0 0%, #ffe680 40%, transparent 70%); box-shadow: 0 0 60px 30px rgba(255,230,128,0.5); animation: mp-sun 8s ease-in-out infinite; }
.scn-march-to-provisions .distant-hills { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #9aa88b 0%, #7a8a6f 40%, #5a6a4f 100%); border-radius: 60% 40% 0 0 / 70% 80% 0 0; animation: mp-hills 20s ease-in-out infinite alternate; }
.scn-march-to-provisions .road { position:absolute; bottom:15%; left:0; right:0; height:30%; background: linear-gradient(180deg, #c2a87a 0%, #a88b5e 40%, #8a7040 100%); border-radius: 20% 20% 0 0; animation: mp-road 25s linear infinite; }
.scn-march-to-provisions .marcher-lead { position:absolute; bottom:22%; left:20%; width:18px; height:40px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mp-walk-lead 3s ease-in-out infinite; }
.scn-march-to-provisions .marcher-1 { position:absolute; bottom:22%; left:32%; width:16px; height:38px; background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mp-walk 3s ease-in-out infinite 0.6s; }
.scn-march-to-provisions .marcher-2 { position:absolute; bottom:22%; left:44%; width:16px; height:38px; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mp-walk 3s ease-in-out infinite 1.2s; }
.scn-march-to-provisions .marcher-3 { position:absolute; bottom:22%; left:56%; width:16px; height:38px; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mp-walk 3s ease-in-out infinite 1.8s; }
.scn-march-to-provisions .dust { position:absolute; bottom:18%; left:15%; right:10%; height:8%; background: linear-gradient(180deg, rgba(220,200,160,0.4) 0%, transparent 100%); filter: blur(4px); animation: mp-dust 6s ease-in-out infinite; }
@keyframes mp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mp-sun { 0% { transform: scale(0.95); opacity:0.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:0.9 } }
@keyframes mp-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mp-road { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }
@keyframes mp-walk-lead { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes mp-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) rotate(1deg) } 100% { transform: translateX(12px) rotate(0deg) } }
@keyframes mp-dust { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-3px) } 100% { opacity:0.3; transform: translateY(0) } }

/* clearchus-supervises */
.scn-clearchus-supervises { background: linear-gradient(180deg, #c8a87a 0%, #b0905e 30%, #907040 70%, #5a4020 100%), radial-gradient(ellipse at 50% 30%, #ffd080 0%, transparent 50%); }
.scn-clearchus-supervises .bg-heat { position:absolute; inset:0; background: linear-gradient(180deg, #f0d8a0 0%, #d0b078 50%, transparent 100%); mix-blend-mode: overlay; animation: cs-heat 5s ease-in-out infinite alternate; }
.scn-clearchus-supervises .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%); animation: cs-ground 10s linear infinite; }
.scn-clearchus-supervises .clearchus-body { position:absolute; bottom:30%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-body 2s ease-in-out infinite; }
.scn-clearchus-supervises .clearchus-spear { position:absolute; bottom:42%; left:32%; width:4px; height:80px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom center; animation: cs-spear 1.5s ease-in-out infinite alternate; }
.scn-clearchus-supervises .clearchus-stick { position:absolute; bottom:38%; right:52%; width:4px; height:50px; background: linear-gradient(180deg, #a0805e 0%, #6a4a2a 100%); border-radius: 2px; transform: rotate(20deg); transform-origin: bottom center; animation: cs-stick 0.8s ease-in-out infinite; }
.scn-clearchus-supervises .worker-1 { position:absolute; bottom:28%; left:55%; width:30px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 50% 60% 30% 30%; transform-origin: bottom center; animation: cs-worker 3s ease-in-out infinite; }
.scn-clearchus-supervises .worker-2 { position:absolute; bottom:28%; left:65%; width:28px; height:32px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 50% 60% 30% 30%; transform-origin: bottom center; animation: cs-worker 3.5s ease-in-out infinite 0.5s; }
.scn-clearchus-supervises .shadow-sharp { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0.15) 0%, transparent 60%); animation: cs-shadow 2s ease-in-out infinite alternate; }
@keyframes cs-heat { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes cs-ground { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }
@keyframes cs-body { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cs-spear { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes cs-stick { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-10px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes cs-worker { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes cs-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

/* trenches-watered */
.scn-trenches-watered { background: linear-gradient(180deg, #7a9aa8 0%, #9aa8b0 30%, #b0a890 60%, #6a5a40 100%), radial-gradient(ellipse at 50% 80%, #c8b898 0%, transparent 60%); }
.scn-trenches-watered .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c8d0 0%, #c0d8e0 50%, transparent 100%); animation: tw-sky 15s ease-in-out infinite alternate; }
.scn-trenches-watered .sun-hard { position:absolute; top:10%; left:60%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle, #fff0c0 0%, #f0d080 40%, transparent 70%); box-shadow: 0 0 40px 20px rgba(240,208,128,0.4); animation: tw-sun 6s ease-in-out infinite; }
.scn-trenches-watered .trench-bank { position:absolute; bottom:30%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #6a5a40 0%, #5a4a30 100%); border-radius: 10%; animation: tw-bank 12s ease-in-out infinite alternate; }
.scn-trenches-watered .water-surface { position:absolute; bottom:30%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 100%); border-radius: 0 0 30% 30%; animation: tw-water 8s ease-in-out infinite; }
.scn-trenches-watered .water-reflection { position:absolute; bottom:30%; left:20%; right:20%; height:8%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 5px, rgba(255,255,200,0.2) 5px, rgba(255,255,200,0.2) 8px); animation: tw-reflection 4s linear infinite; }
.scn-trenches-watered .soldier-figure { position:absolute; bottom:30%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tw-soldier 3s ease-in-out infinite; }
.scn-trenches-watered .ripple-1 { position:absolute; bottom:30%; left:30%; width:30px; height:6px; border-radius:50%; border:1px solid rgba(200,220,230,0.3); animation: tw-ripple 4s ease-out infinite; }
.scn-trenches-watered .ripple-2 { position:absolute; bottom:30%; left:50%; width:20px; height:4px; border-radius:50%; border:1px solid rgba(200,220,230,0.3); animation: tw-ripple 4s ease-out infinite 1.5s; }
@keyframes tw-sky { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tw-sun { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes tw-bank { 0% { transform: skewX(-2deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-2deg) } }
@keyframes tw-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tw-reflection { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes tw-soldier { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(0deg) } 75% { transform: translateX(12px) rotate(-2deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes tw-ripple { 0% { transform: scale(0.5); opacity:0.8 } 50% { transform: scale(1.5); opacity:0.4 } 100% { transform: scale(2.5); opacity:0 } }

/* palm-wine-villages */
.scn-palm-wine-villages { background: linear-gradient(180deg, #c8d8b8 0%, #b0c8a0 30%, #a8b080 60%, #7a8a5e 100%), radial-gradient(ellipse at 50% 0%, #e8f0d0 0%, transparent 60%); }
.scn-palm-wine-villages .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d0e0c0 0%, #e0f0d0 50%, transparent 100%); animation: pw-sky 18s ease-in-out infinite alternate; }
.scn-palm-wine-villages .sun { position:absolute; top:8%; left:30%; width:55px; height:55px; border-radius:50%; background: radial-gradient(circle, #fff8e0 0%, #f0e0a0 40%, transparent 70%); box-shadow: 0 0 50px 25px rgba(240,224,160,0.5); animation: pw-sun 10s ease-in-out infinite; }
.scn-palm-wine-villages .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #9aaa7a 0%, #7a8a5e 100%); animation: pw-ground 20s linear infinite; }
.scn-palm-wine-villages .hut-left { position:absolute; bottom:20%; left:15%; width:70px; height:50px; background: linear-gradient(180deg, #b0a070 0%, #8a7a5a 100%); border-radius: 20% 20% 5% 5%; animation: pw-hut 12s ease-in-out infinite; }
.scn-palm-wine-villages .hut-right { position:absolute; bottom:20%; left:55%; width:60px; height:45px; background: linear-gradient(180deg, #a09060 0%, #7a6a4a 100%); border-radius: 20% 20% 5% 5%; animation: pw-hut 12s ease-in-out infinite 3s; }
.scn-palm-wine-villages .palm-tree { position:absolute; bottom:25%; left:40%; width:10px; height:120px; background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%); border-radius: 5px; transform: rotate(-5deg); transform-origin: bottom center; animation: pw-palm 6s ease-in-out infinite; }
.scn-palm-wine-villages .palm-tree::after { content:''; position:absolute; top:-20px; left:-25px; width:60px; height:30px; background: radial-gradient(ellipse, #4a7a3a 0%, #2a5a1a 100%); border-radius: 50%; }
.scn-palm-wine-villages .wine-jar { position:absolute; bottom:18%; left:30%; width:24px; height:30px; background: linear-gradient(180deg, #b08050 0%, #8a6040 100%); border-radius: 30% 30% 40% 40%; animation: pw-jar 4s ease-in-out infinite; }
.scn-palm-wine-villages .figure-rest { position:absolute; bottom:18%; left:70%; width:20px; height:35px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pw-figure 5s ease-in-out infinite; }
@keyframes pw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pw-sun { 0% { transform: scale(0.95) translateY(0) } 50% { transform: scale(1.02) translateY(-3px) } 100% { transform: scale(0.95) translateY(0) } }
@keyframes pw-ground { 0% { background-position: 0 0 } 100% { background-position: 60px 0 } }
@keyframes pw-hut { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pw-palm { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-5deg) } }
@keyframes pw-jar { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes pw-figure { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(3px) rotate(0deg) } 50% { transform: translateX(6px) rotate(-2deg) } 75% { transform: translateX(9px) rotate(0deg) } 100% { transform: translateX(12px) rotate(2deg) } }

.scn-syennesis-negotiates {
  background:
    linear-gradient(180deg, #1a1410 0%, #2c201a 50%, #3a2a20 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2e 0%, transparent 70%);
}
.scn-syennesis-negotiates .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a221c 0%, #1e1814 100%);
  animation: sy-wall 12s ease-in-out infinite alternate;
}
.scn-syennesis-negotiates .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
}
.scn-syennesis-negotiates .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #1e1814 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sy-fig-l 6s ease-in-out infinite;
}
.scn-syennesis-negotiates .figure-right {
  position: absolute; bottom: 28%; right: 25%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #1e1814 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sy-fig-r 5s ease-in-out infinite;
}
.scn-syennesis-negotiates .candle {
  position: absolute; bottom: 28%; left: 50%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f0c870 0%, #b09040 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  transform: translateX(-50%);
}
.scn-syennesis-negotiates .candle-glow {
  position: absolute; bottom: 30%; left: 50%; width: 12%; height: 18%;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,200,100,0.3) 60%, transparent 100%);
  transform: translateX(-50%);
  border-radius: 50%;
  animation: sy-glow 2s ease-in-out infinite alternate;
}
.scn-syennesis-negotiates .shadow-behind {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a0806 0%, transparent 100%);
  animation: sy-shadow 8s ease-in-out infinite alternate;
}
@keyframes sy-wall {
  0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; }
}
@keyframes sy-fig-l {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sy-fig-r {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sy-glow {
  0% { opacity: 0.6; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.3); } 100% { opacity: 0.7; transform: translateX(-50%) scale(1.1); }
}
@keyframes sy-shadow {
  0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; }
}

.scn-soldiers-refuse-advance {
  background:
    linear-gradient(180deg, #87ceeb 0%, #6eb5d0 50%, #4a90a0 100%),
    radial-gradient(ellipse at 50% 100%, #c0d8c0 0%, transparent 60%);
}
.scn-soldiers-refuse-advance .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4e8 0%, transparent 100%);
  animation: sr-sky 20s ease-in-out infinite alternate;
}
.scn-soldiers-refuse-advance .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a60 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-soldiers-refuse-advance .sun {
  position: absolute; top: 10%; right: 20%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ffe080 0%, #ffcc60 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,80,0.3);
  animation: sr-sun 8s ease-in-out infinite alternate;
}
.scn-soldiers-refuse-advance .soldier-front {
  position: absolute; bottom: 35%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: sr-soldier-front 3s ease-in-out infinite;
}
.scn-soldiers-refuse-advance .soldier-back {
  position: absolute; bottom: 36%; left: 45%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1e140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: sr-soldier-back 4.5s ease-in-out infinite;
}
.scn-soldiers-refuse-advance .shield-row {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 12%;
  background: repeating-linear-gradient(90deg,
    transparent 0%, transparent 9%,
    #c86040 9%, #c86040 12%,
    transparent 12%, transparent 21%
  );
  border-radius: 0 0 20% 20%;
}
.scn-soldiers-refuse-advance .dust-cloud {
  position: absolute; bottom: 20%; left: 10%; width: 25%; height: 10%;
  background: radial-gradient(ellipse, rgba(200,180,150,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: sr-dust 12s linear infinite;
}
@keyframes sr-sky {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes sr-sun {
  0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(2px) scale(0.95); }
}
@keyframes sr-soldier-front {
  0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sr-soldier-back {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 75% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sr-dust {
  0% { transform: translateX(-10px) scale(1); opacity: 0.3; } 50% { transform: translateX(30px) scale(1.2); opacity: 0.5; } 100% { transform: translateX(-10px) scale(1); opacity: 0.3; }
}

.scn-clearchus-weeps-and-speaks {
  background:
    linear-gradient(180deg, #f4e4c0 0%, #d6c6a0 40%, #b0a080 100%),
    radial-gradient(ellipse at 50% 100%, #e0d0b0 0%, transparent 70%);
}
.scn-clearchus-weeps-and-speaks .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8d8e8 0%, transparent 100%);
  animation: cw-sky 15s ease-in-out infinite alternate;
}
.scn-clearchus-weeps-and-speaks .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #8a7a60 0%, #b0a080 100%);
  border-radius: 0 0 0 0;
}
.scn-clearchus-weeps-and-speaks .platform {
  position: absolute; bottom: 33%; left: 38%; right: 38%; height: 5%;
  background: linear-gradient(180deg, #7a6a50 0%, #5a4a30 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-clearchus-weeps-and-speaks .figure-weeping {
  position: absolute; bottom: 38%; left: 46%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw-weep 4s ease-in-out infinite;
}
.scn-clearchus-weeps-and-speaks .soldier-left {
  position: absolute; bottom: 35%; left: 22%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: cw-soldier-l 7s ease-in-out infinite;
}
.scn-clearchus-weeps-and-speaks .soldier-right {
  position: absolute; bottom: 35%; right: 22%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: cw-soldier-r 6.5s ease-in-out infinite;
}
.scn-clearchus-weeps-and-speaks .sun-rays {
  position: absolute; top: 0; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: cw-rays 10s ease-in-out infinite alternate;
}
@keyframes cw-sky {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes cw-weep {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(2px) rotate(-2deg); }
  80% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cw-soldier-l {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cw-soldier-r {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cw-rays {
  0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(0.95); }
}

.scn-clearchus-reminds-of-thrace {
  background:
    linear-gradient(180deg, #e8d8b0 0%, #c8b890 40%, #b0a080 100%),
    radial-gradient(ellipse at 50% 100%, #d0c0a0 0%, transparent 70%);
}
.scn-clearchus-reminds-of-thrace .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0c0d0 0%, transparent 100%);
  animation: ct-sky 18s ease-in-out infinite alternate;
}
.scn-clearchus-reminds-of-thrace .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #7a6a50 0%, #a08a70 100%);
  border-radius: 0 0 0 0;
}
.scn-clearchus-reminds-of-thrace .speaker {
  position: absolute; bottom: 28%; left: 40%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-speak 4s ease-in-out infinite;
}
.scn-clearchus-reminds-of-thrace .audience {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 25%;
  background: repeating-linear-gradient(90deg,
    transparent 0%, transparent 7%,
    #4a3a2a 7%, #4a3a2a 10%,
    transparent 10%, transparent 17%
  );
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  animation: ct-audience 9s ease-in-out infinite;
}
.scn-clearchus-reminds-of-thrace .thracian-shield {
  position: absolute; bottom: 20%; left: 25%; width: 8%; height: 10%;
  background: radial-gradient(circle, #c05530 0%, #8a3018 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4), inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: ct-shield 6s ease-in-out infinite;
}
.scn-clearchus-reminds-of-thrace .standard {
  position: absolute; bottom: 30%; left: 55%; width: 3%; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10%;
}
.scn-clearchus-reminds-of-thrace .dust-wisp {
  position: absolute; bottom: 15%; left: 5%; width: 20%; height: 8%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: ct-dust 14s linear infinite;
}
@keyframes ct-sky {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes ct-speak {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(4deg); }
  50% { transform: translateY(2px) rotate(-2deg); }
  75% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ct-audience {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes ct-shield {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.1); }
  100% { transform: rotate(-3deg) scale(1); }
}
@keyframes ct-dust {
  0% { transform: translateX(-10px) scale(1); opacity: 0.2; }
  50% { transform: translateX(40px) scale(1.3); opacity: 0.4; }
  100% { transform: translateX(-10px) scale(1); opacity: 0.2; }
}

/* mossynoecian-city-assault - tense, sunlit */
.scn-mossynoecian-city-assault {
  background: 
    linear-gradient(180deg, #4a7db0 0%, #7fb0d9 40%, #e8c87a 75%, #b08050 100%),
    radial-gradient(ellipse at 50% 100%, #b08050 0%, transparent 60%);
}
.scn-mossynoecian-city-assault .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a7db0 0%, #9ac0e0 70%); animation: mca-sky 10s ease-in-out infinite alternate; }
.scn-mossynoecian-city-assault .sun { position:absolute; top:12%; left:55%; width:60px; height:60px; background: radial-gradient(circle, #fff8e0 0%, #f0c060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(240,192,96,0.5); animation: mca-sun 6s ease-in-out infinite alternate; }
.scn-mossynoecian-city-assault .city-wall { position:absolute; bottom:25%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #b09070 0%, #705030 100%); border-radius: 8% 8% 0 0 / 50% 50% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.4); }
.scn-mossynoecian-city-assault .ladder-1 { position:absolute; bottom:25%; left:35%; width:8px; height:70px; background: repeating-linear-gradient(0deg, #8a6a4a 0px, #8a6a4a 4px, #a08060 4px, #a08060 8px); transform-origin: bottom center; transform: rotate(-12deg); animation: mca-ladder 4s ease-in-out infinite; }
.scn-mossynoecian-city-assault .ladder-2 { position:absolute; bottom:25%; left:48%; width:8px; height:70px; background: repeating-linear-gradient(0deg, #8a6a4a 0px, #8a6a4a 4px, #a08060 4px, #a08060 8px); transform-origin: bottom center; transform: rotate(5deg); animation: mca-ladder2 4.5s ease-in-out infinite; }
.scn-mossynoecian-city-assault .soldier-climb { position:absolute; bottom:38%; left:38%; width:12px; height:24px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: mca-climb 5s ease-in-out infinite; }
.scn-mossynoecian-city-assault .dust { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: radial-gradient(ellipse, rgba(200,160,120,0.4) 0%, transparent 70%); filter: blur(6px); animation: mca-dust 8s ease-in-out infinite; }
.scn-mossynoecian-city-assault .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #6a5030 0%, #8a7040 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: mca-ground 12s ease-in-out infinite alternate; }
@keyframes mca-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mca-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 30px rgba(240,192,96,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 50px rgba(240,192,96,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 70px 35px rgba(240,192,96,0.45); } }
@keyframes mca-ladder { 0%,100% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } }
@keyframes mca-ladder2 { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(-2px); } }
@keyframes mca-climb { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-8px) rotate(-1deg); } 50% { transform: translateY(-16px) rotate(2deg); } 75% { transform: translateY(-8px) rotate(1deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes mca-dust { 0% { transform: translateX(0) scale(1); opacity:0.4; } 50% { transform: translateX(20px) scale(1.2); opacity:0.6; } 100% { transform: translateX(0) scale(1); opacity:0.4; } }
@keyframes mca-ground { 0% { background-position: 0 0; } 100% { background-position: 10px 0; } }

/* first-encounter-barbarians - tense, sunlit */
.scn-first-encounter-barbarians {
  background:
    linear-gradient(180deg, #5a8bb0 0%, #9ac8e8 50%, #f5d88a 85%, #c89050 100%),
    radial-gradient(ellipse at 50% 80%, #f5d88a 0%, transparent 70%);
}
.scn-first-encounter-barbarians .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a8bb0 0%, #a8d0ec 70%); animation: feb-sky 8s ease-in-out infinite alternate; }
.scn-first-encounter-barbarians .sun-glare { position:absolute; top:15%; left:65%; width:70px; height:70px; background: radial-gradient(circle, #fffbe0 0%, #f0c860 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 90px 50px rgba(240,200,96,0.5); animation: feb-glare 5s ease-in-out infinite alternate; }
.scn-first-encounter-barbarians .peltast-line { position:absolute; bottom:28%; left:15%; width:25%; height:40%; background: repeating-linear-gradient(90deg, #3a4a3a 0px, #3a4a3a 6px, #4a5a4a 6px, #4a5a4a 12px); border-radius: 20% 0 0 0; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); animation: feb-peltast 6s ease-in-out infinite; }
.scn-first-encounter-barbarians .barbarian-line { position:absolute; bottom:28%; right:15%; width:30%; height:45%; background: repeating-linear-gradient(90deg, #6a3a2a 0px, #6a3a2a 8px, #8a4a3a 8px, #8a4a3a 14px); border-radius: 0 20% 0 0; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); animation: feb-barb 6.5s ease-in-out infinite reverse; }
.scn-first-encounter-barbarians .shield-wall { position:absolute; bottom:28%; left:35%; width:10%; height:35%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 30% 30% 0 0; box-shadow: 5px 0 15px rgba(0,0,0,0.3); animation: feb-shield 4s ease-in-out infinite alternate; }
.scn-first-encounter-barbarians .dust-cloud { position:absolute; bottom:20%; left:30%; width:150px; height:50px; background: radial-gradient(ellipse, rgba(180,140,100,0.5) 0%, transparent 80%); filter: blur(8px); animation: feb-dust 10s ease-in-out infinite; }
.scn-first-encounter-barbarians .ground { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(0deg, #7a5a3a 0%, #9a7a5a 100%); box-shadow: inset 0 10px 40px rgba(0,0,0,0.3); animation: feb-ground 14s ease-in-out infinite alternate; }
@keyframes feb-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes feb-glare { 0% { transform: scale(0.95); box-shadow: 0 0 70px 40px rgba(240,200,96,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 110px 60px rgba(240,200,96,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 80px 45px rgba(240,200,96,0.45); } }
@keyframes feb-peltast { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes feb-barb { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes feb-shield { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes feb-dust { 0% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(15px) scale(1.15); opacity:0.7; } 100% { transform: translateX(0) scale(1); opacity:0.5; } }
@keyframes feb-ground { 0% { background-position: 0 0; } 100% { background-position: 8px 0; } }

/* item-mossyn-tower - dark, firelit */
.scn-item-mossyn-tower {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a1a0a 70%, #4a2a0a 100%),
    radial-gradient(ellipse at 50% 100%, #4a2a0a 0%, transparent 70%);
}
.scn-item-mossyn-tower .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); animation: mst-sky 15s ease-in-out infinite alternate; }
.scn-item-mossyn-tower .tower { position:absolute; bottom:20%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6); animation: mst-tower 8s ease-in-out infinite; }
.scn-item-mossyn-tower .fire-glow { position:absolute; bottom:60%; left:42%; width:16%; height:30%; background: radial-gradient(ellipse at 50% 100%, #ff8830 0%, #cc4400 50%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 80px 40px rgba(255,136,48,0.6), 0 0 120px 60px rgba(200,68,0,0.3); animation: mst-fire 3s ease-in-out infinite alternate; }
.scn-item-mossyn-tower .barbarian-flight { position:absolute; bottom:18%; left:55%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mst-flight 4s ease-in-out infinite; }
.scn-item-mossyn-tower .hellene-mass { position:absolute; bottom:20%; left:20%; width:20%; height:35%; background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 6px, #4a4a5a 6px, #4a4a5a 12px); border-radius: 40% 40% 0 0; box-shadow: 0 5px 20px rgba(0,0,0,0.5); animation: mst-hellene 6s ease-in-out infinite; }
.scn-item-mossyn-tower .smoke { position:absolute; top:5%; left:35%; width:30%; height:30%; background: radial-gradient(ellipse, rgba(80,60,40,0.4) 0%, transparent 70%); filter: blur(12px); animation: mst-smoke 20s linear infinite; }
.scn-item-mossyn-tower .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 100%); box-shadow: inset 0 20px 60px rgba(0,0,0,0.6); }
@keyframes mst-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes mst-tower { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes mst-fire { 0% { transform: scaleY(0.9) scaleX(0.95); opacity:0.8; } 50% { transform: scaleY(1.1) scaleX(1.05); opacity:1; } 100% { transform: scaleY(0.95) scaleX(0.98); opacity:0.85; } }
@keyframes mst-flight { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(10deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(30px) rotate(-10deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes mst-hellene { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mst-smoke { 0% { transform: translateX(-10%) translateY(0) scale(1); opacity:0.3; } 50% { transform: translateX(10%) translateY(-20%) scale(1.2); opacity:0.5; } 100% { transform: translateX(-10%) translateY(0) scale(1); opacity:0.3; } }

/* pillaging-mossynoecian-houses - calm, dim-interior */
.scn-pillaging-mossynoecian-houses {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 80%);
}
.scn-pillaging-mossynoecian-houses .wall-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset -10px 0 30px rgba(0,0,0,0.4); }
.scn-pillaging-mossynoecian-houses .wall-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset 10px 0 30px rgba(0,0,0,0.4); }
.scn-pillaging-mossynoecian-houses .floor { position:absolute; bottom:0; left:25%; right:25%; height:30%; background: linear-gradient(0deg, #4a3a2a 0%, #5a4a3a 100%); box-shadow: inset 0 10px 40px rgba(0,0,0,0.3); }
.scn-pillaging-mossynoecian-houses .window-light { position:absolute; top:15%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(200,180,150,0.3) 0%, transparent 80%); box-shadow: 0 0 60px 30px rgba(200,180,150,0.1); animation: pmh-light 6s ease-in-out infinite alternate; }
.scn-pillaging-mossynoecian-houses .loaf-pile { position:absolute; bottom:25%; left:40%; width:20%; height:25%; background: repeating-linear-gradient(0deg, #8a6a3a 0px, #8a6a3a 10px, #6a4a2a 10px, #6a4a2a 20px); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 15px rgba(0,0,0,0.4); animation: pmh-loaf 8s ease-in-out infinite; }
.scn-pillaging-mossynoecian-houses .jar { position:absolute; bottom:28%; left:55%; width:12%; height:30%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 15% 15%; box-shadow: 0 4px 15px rgba(0,0,0,0.4); animation: pmh-jar 10s ease-in-out infinite; }
.scn-pillaging-mossynoecian-houses .figure { position:absolute; bottom:25%; left:32%; width:10%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmh-figure 12s ease-in-out infinite; }
.scn-pillaging-mossynoecian-houses .shelf { position:absolute; top:40%; left:25%; right:25%; height:4%; background: linear-gradient(0deg, #5a3a2a 0%, #7a5a3a 100%); box-shadow: 0 2px 8px rgba(0,0,0,0.4); }
@keyframes pmh-light { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.05); } 100% { opacity:0.35; transform: scale(0.95); } }
@keyframes pmh-loaf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pmh-jar { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes pmh-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-no-guide-no-market {
  background:
    linear-gradient(180deg, #2b3a5c 0%, #6b7a4c 30%, #c9aa6a 60%, #f0d4a0 100%),
    radial-gradient(ellipse at 20% 100%, #d4b080 0%, transparent 60%);
}
.scn-no-guide-no-market .dawn-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4b5c7c 0%, #8b9a5c 40%, #e0c080 100%); animation: ng1-sky 12s ease-in-out infinite alternate; }
.scn-no-guide-no-market .dawn-sun { position:absolute; top:8%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #ffeedd 0%, #f0c080 40%, #d09050 100%); border-radius:50%; box-shadow: 0 0 80px 30px #e0a060, 0 0 160px 60px #c07040; animation: ng1-sun 20s linear infinite; }
.scn-no-guide-no-market .mountain-ng { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: ng1-mtn 18s ease-in-out infinite alternate; }
.scn-no-guide-no-market .ground-ng { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 -10px 30px rgba(0,0,0,.6); }
.scn-no-guide-no-market .speaker-ng { position:absolute; bottom:35%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ng1-speak 2s ease-in-out infinite; }
.scn-no-guide-no-market .soldier-ng { position:absolute; bottom:35%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: ng1-sway 4s ease-in-out infinite alternate; }
.scn-no-guide-no-market .s1 { left:40%; animation-delay:0s; }
.scn-no-guide-no-market .s2 { left:55%; animation-delay:0.5s; }
.scn-no-guide-no-market .s3 { left:70%; animation-delay:1s; }
.scn-no-guide-no-market .spear-ng { position:absolute; bottom:38%; left:40%; width:4px; height:50px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:2px; transform-origin: bottom center; animation: ng1-spear 3s ease-in-out infinite; }
@keyframes ng1-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ng1-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(30px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes ng1-mtn { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ng1-speak { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ng1-sway { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ng1-spear { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-provisions-by-right-of-conquest {
  background:
    linear-gradient(180deg, #3a4a6c 0%, #7a8a5c 30%, #c9aa6a 60%, #f0d4a0 100%),
    radial-gradient(ellipse at 80% 20%, #e0b080 0%, transparent 40%);
}
.scn-provisions-by-right-of-conquest .dawn-sky-pc { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4b5c7c 0%, #8b9a5c 40%, #e0c080 100%); animation: pc1-sky 15s ease-in-out infinite alternate; }
.scn-provisions-by-right-of-conquest .sun-pc { position:absolute; top:5%; left:60%; width:70px; height:70px; background: radial-gradient(circle, #ffeecc 0%, #f0c080 40%, #d09050 100%); border-radius:50%; box-shadow: 0 0 70px 30px #e0a060, 0 0 140px 60px #c07040; animation: pc1-sun 25s linear infinite; }
.scn-provisions-by-right-of-conquest .stall-pc { position:absolute; bottom:35%; left:25%; width:120px; height:80px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: pc1-stall 10s ease-in-out infinite alternate; }
.scn-provisions-by-right-of-conquest .vendor-pc { position:absolute; bottom:30%; left:20%; width:35px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pc1-vendor 3s ease-in-out infinite; }
.scn-provisions-by-right-of-conquest .soldier-pc { position:absolute; bottom:30%; left:60%; width:45px; height:70px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: pc1-soldier 4s ease-in-out infinite alternate; }
.scn-provisions-by-right-of-conquest .goods-pc { position:absolute; bottom:32%; left:30%; width:30px; height:20px; background: radial-gradient(ellipse, #8a7a5a 0%, #5a4a2a 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: pc1-goods 6s ease-in-out infinite; }
.scn-provisions-by-right-of-conquest .coin-pc { position:absolute; bottom:37%; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #c09050 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-provisions-by-right-of-conquest .coin1 { left:52%; animation: pc1-coin1 2s ease-in-out infinite; }
.scn-provisions-by-right-of-conquest .coin2 { left:56%; animation: pc1-coin2 2.5s ease-in-out infinite; }
@keyframes pc1-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pc1-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-20px) scale(1.03); } 100% { transform: translateX(0) scale(1); } }
@keyframes pc1-stall { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pc1-vendor { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pc1-soldier { 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 pc1-goods { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes pc1-coin1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(180deg); } 100% { transform: translateY(0) rotate(360deg); } }
@keyframes pc1-coin2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-180deg); } 100% { transform: translateY(0) rotate(-360deg); } }

.scn-rivers-are-passable {
  background:
    linear-gradient(180deg, #6a7a9c 0%, #9a8a6a 30%, #c9aa6a 60%, #f0d4a0 100%),
    radial-gradient(ellipse at 30% 100%, #b0a080 0%, transparent 60%);
}
.scn-rivers-are-passable .dawn-sky-rp { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7b8aac 0%, #ab9a7a 40%, #e0c080 100%); animation: rp1-sky 18s ease-in-out infinite alternate; }
.scn-rivers-are-passable .mountains-rp { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: rp1-mtn 20s ease-in-out infinite alternate; }
.scn-rivers-are-passable .river-rp { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, #4a5a6a 100%); border-radius:0 0 50% 50% / 0 0 30% 30%; animation: rp1-river 6s ease-in-out infinite alternate; }
.scn-rivers-are-passable .bank-rp { position:absolute; bottom:40%; left:0; right:0; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 20% 20%; }
.scn-rivers-are-passable .figure1-rp { position:absolute; bottom:38%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rp1-fig1 5s ease-in-out infinite alternate; }
.scn-rivers-are-passable .figure2-rp { position:absolute; bottom:38%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rp1-fig2 5s ease-in-out infinite alternate reverse; }
.scn-rivers-are-passable .reflection-rp { position:absolute; bottom:14%; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(200,180,150,0.2) 0%, transparent 100%); filter: blur(4px); animation: rp1-reflect 8s ease-in-out infinite; }
@keyframes rp1-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes rp1-mtn { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rp1-river { 0% { background-position: 0 0; } 50% { background-position: 10px 5px; } 100% { background-position: 0 0; } }
@keyframes rp1-fig1 { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(8px) translateY(-2px); } 50% { transform: translateX(16px) translateY(0); } 75% { transform: translateX(8px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes rp1-fig2 { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-6px) translateY(-2px); } 50% { transform: translateX(-12px) translateY(0); } 75% { transform: translateX(-6px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes rp1-reflect { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-mysians-and-others-example {
  background:
    linear-gradient(180deg, #4a5a7c 0%, #7a8a5c 30%, #c9aa6a 60%, #f0d4a0 100%),
    radial-gradient(ellipse at 70% 30%, #d09850 0%, transparent 50%);
}
.scn-mysians-and-others-example .dawn-sky-me { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5b6a8c 0%, #9b8a6a 40%, #e0c080 100%); animation: me1-sky 18s ease-in-out infinite alternate; }
.scn-mysians-and-others-example .ground-me { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-mysians-and-others-example .tent-me { position:absolute; bottom:40%; left:35%; width:100px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: me1-tent 12s ease-in-out infinite alternate; }
.scn-mysians-and-others-example .fire-me { position:absolute; bottom:42%; left:20%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #d07030 40%, #804020 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #c05020, 0 0 60px 20px rgba(192,80,32,0.4); animation: me1-fire 3s ease-in-out infinite; }
.scn-mysians-and-others-example .figure-me { position:absolute; bottom:38%; width:35px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-mysians-and-others-example .f1 { left:55%; animation: me1-fig1 6s ease-in-out infinite alternate; }
.scn-mysians-and-others-example .f2 { left:65%; animation: me1-fig2 6s ease-in-out infinite alternate reverse; }
.scn-mysians-and-others-example .smoke-me { position:absolute; bottom:55%; left:20%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 100%); filter: blur(8px); animation: me1-smoke 8s ease-in-out infinite; }
@keyframes me1-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes me1-tent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes me1-fire { 0% { transform: scale(1) rotate(-1deg); } 25% { transform: scale(1.03) rotate(1deg); } 50% { transform: scale(1) rotate(0deg); } 75% { transform: scale(1.04) rotate(-1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes me1-fig1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes me1-fig2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes me1-smoke { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-15px) scale(1.5); opacity:0.2; } 100% { transform: translateY(0) scale(1); opacity:0.3; } }

/* clearchus-pledges-service */
.scn-clearchus-pledges-service {
  background: 
    linear-gradient(180deg, #2b1e16 0%, #1a120c 50%, #0f0a07 100%),
    radial-gradient(ellipse at 50% 70%, #3a251a 0%, transparent 70%);
}
.scn-clearchus-pledges-service .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1410 0%, #120c08 100%);
  animation: cps-tent 12s ease-in-out infinite alternate;
}
.scn-clearchus-pledges-service .fire-glow {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(circle, #e08a4d 0%, #b85c2a 30%, transparent 70%);
  border-radius: 50%;
  animation: cps-flicker-glow 2s ease-in-out infinite alternate;
}
.scn-clearchus-pledges-service .fire-core {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd080 0%, #e87a30 60%, #a0401a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: cps-flicker-core 1.5s ease-in-out infinite alternate;
}
.scn-clearchus-pledges-service .figure-left {
  position: absolute; bottom: 10%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #221a14 0%, #0d0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cps-breath-left 4s ease-in-out infinite;
}
.scn-clearchus-pledges-service .figure-right {
  position: absolute; bottom: 10%; left: 60%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #2a1e16 0%, #120c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cps-breath-right 4.5s ease-in-out infinite;
}
.scn-clearchus-pledges-service .spear {
  position: absolute; bottom: 15%; left: 50%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  transform: translateX(-50%) rotate(-5deg);
  animation: cps-spear-tremor 3s ease-in-out infinite alternate;
}
.scn-clearchus-pledges-service .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: cps-shadows 6s ease-in-out infinite alternate;
}
@keyframes cps-tent { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes cps-flicker-glow { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } }
@keyframes cps-flicker-core { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); } }
@keyframes cps-breath-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cps-breath-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cps-spear-tremor { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(-4deg); } 100% { transform: translateX(-50%) rotate(-6deg); } }
@keyframes cps-shadows { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* tissaphernes-responds */
.scn-tissaphernes-responds {
  background: 
    linear-gradient(180deg, #2b1e16 0%, #1a120c 50%, #0f0a07 100%),
    radial-gradient(ellipse at 50% 60%, #3a251a 0%, transparent 70%);
}
.scn-tissaphernes-responds .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1410 0%, #120c08 100%);
  animation: tr-tent 12s ease-in-out infinite alternate;
}
.scn-tissaphernes-responds .fire-glow {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 50px; transform: translateX(-50%);
  background: radial-gradient(circle, #e08a4d 0%, #b85c2a 30%, transparent 70%);
  border-radius: 50%;
  animation: tr-flicker-glow 2.2s ease-in-out infinite alternate;
}
.scn-tissaphernes-responds .fire-core {
  position: absolute; bottom: 23%; left: 50%; width: 16px; height: 24px; transform: translateX(-50%);
  background: linear-gradient(180deg, #ffd080 0%, #e87a30 60%, #a0401a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: tr-flicker-core 1.8s ease-in-out infinite alternate;
}
.scn-tissaphernes-responds .table {
  position: absolute; bottom: 8%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #3a2a1e 0%, #221810 100%);
  border-radius: 8% 8% 4% 4%;
  transform: perspective(200px) rotateX(5deg);
  animation: tr-table 5s ease-in-out infinite alternate;
}
.scn-tissaphernes-responds .cup-left {
  position: absolute; bottom: 14%; left: 38%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: tr-cup 4.5s ease-in-out infinite alternate;
}
.scn-tissaphernes-responds .cup-right {
  position: absolute; bottom: 14%; right: 38%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: tr-cup 5s ease-in-out infinite alternate-reverse;
}
.scn-tissaphernes-responds .arm-extend {
  position: absolute; bottom: 22%; left: 58%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #1a120c 0%, #0d0a07 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: tr-arm 6s ease-in-out infinite;
}
@keyframes tr-tent { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes tr-flicker-glow { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } }
@keyframes tr-flicker-core { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); } }
@keyframes tr-table { 0% { transform: perspective(200px) rotateX(5deg) translateY(0); } 50% { transform: perspective(200px) rotateX(4deg) translateY(-1px); } 100% { transform: perspective(200px) rotateX(5deg) translateY(0); } }
@keyframes tr-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tr-arm { 0% { transform: scaleX(1) rotate(-10deg); } 50% { transform: scaleX(1.1) rotate(-5deg); } 100% { transform: scaleX(1) rotate(-10deg); } }

/* tissaphernes-enumerates-power */
.scn-tissaphernes-enumerates-power {
  background: 
    linear-gradient(180deg, #2b1e16 0%, #1a120c 50%, #0f0a07 100%),
    radial-gradient(ellipse at 50% 60%, #3a251a 0%, transparent 60%);
}
.scn-tissaphernes-enumerates-power .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1410 0%, #120c08 100%);
  animation: tep-tent 12s ease-in-out infinite alternate;
}
.scn-tissaphernes-enumerates-power .fire-glow {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 50px; transform: translateX(-50%);
  background: radial-gradient(circle, #e08a4d 0%, #b85c2a 30%, transparent 70%);
  border-radius: 50%;
  animation: tep-flicker-glow 2.5s ease-in-out infinite alternate;
}
.scn-tissaphernes-enumerates-power .map-scroll {
  position: absolute; bottom: 12%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #d4b885 0%, #b89a5c 100%);
  border-radius: 2% 2% 20% 20%;
  transform: perspective(300px) rotateX(20deg);
  animation: tep-map 8s ease-in-out infinite alternate;
}
.scn-tissaphernes-enumerates-power .hand-point {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1e16 0%, #140e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tep-hand 4s ease-in-out infinite;
}
.scn-tissaphernes-enumerates-power .mountain-sym {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a120c 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: tep-mountain 6s ease-in-out infinite alternate;
}
.scn-tissaphernes-enumerates-power .river-sym {
  position: absolute; bottom: 16%; left: 45%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #4a6a7a 0%, #3a5a6a 50%, #4a6a7a 100%);
  border-radius: 50%;
  animation: tep-river 8s ease-in-out infinite alternate;
}
.scn-tissaphernes-enumerates-power .figure-body {
  position: absolute; bottom: 8%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1e16 0%, #120c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tep-figure 5s ease-in-out infinite;
}
@keyframes tep-tent { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes tep-flicker-glow { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } }
@keyframes tep-map { 0% { transform: perspective(300px) rotateX(20deg) translateY(0); } 50% { transform: perspective(300px) rotateX(18deg) translateY(-2px); } 100% { transform: perspective(300px) rotateX(20deg) translateY(0); } }
@keyframes tep-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tep-mountain { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes tep-river { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(2px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes tep-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* tissaphernes-fire-famine */
.scn-tissaphernes-fire-famine {
  background: 
    linear-gradient(180deg, #2b1e16 0%, #1a120c 50%, #0f0a07 100%),
    radial-gradient(ellipse at 50% 50%, #3a251a 0%, transparent 60%);
}
.scn-tissaphernes-fire-famine .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1410 0%, #120c08 100%);
  animation: tff-tent 12s ease-in-out infinite alternate;
}
.scn-tissaphernes-fire-famine .fire-glow {
  position: absolute; bottom: 15%; left: 40%; width: 70px; height: 70px; transform: translateX(-50%);
  background: radial-gradient(circle, #e08a4d 0%, #b85c2a 20%, transparent 70%);
  border-radius: 50%;
  animation: tff-flicker-glow 2s ease-in-out infinite alternate;
}
.scn-tissaphernes-fire-famine .fire-flame-a {
  position: absolute; bottom: 18%; left: 38%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #ffd080 0%, #e87a30 50%, #a0401a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: tff-flame-a 1.8s ease-in-out infinite alternate;
}
.scn-tissaphernes-fire-famine .fire-flame-b {
  position: absolute; bottom: 18%; left: 42%; width: 14px; height: 35px;
  background: linear-gradient(180deg, #ffd080 0%, #e87a30 50%, #a0401a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: tff-flame-b 2.2s ease-in-out infinite alternate;
}
.scn-tissaphernes-fire-famine .figure-dark {
  position: absolute; bottom: 8%; left: 60%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tff-figure 4s ease-in-out infinite;
}
.scn-tissaphernes-fire-famine .shadow-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: tff-shadow 5s ease-in-out infinite alternate;
}
.scn-tissaphernes-fire-famine .grain-burn {
  position: absolute; bottom: 12%; left: 30%; width: 18px; height: 8px;
  background: linear-gradient(90deg, #5a3a1a 0%, #8a4a2a 50%, #5a3a1a 100%);
  border-radius: 40%;
  animation: tff-burn 3s ease-in-out infinite alternate;
}
@keyframes tff-tent { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes tff-flicker-glow { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } }
@keyframes tff-flame-a { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.25) rotate(2deg); } 100% { transform: scaleY(0.9) rotate(-1deg); } }
@keyframes tff-flame-b { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.2) rotate(-2deg); } 100% { transform: scaleY(0.95) rotate(1deg); } }
@keyframes tff-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tff-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes tff-burn { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.1) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }

.scn-fortune-better-general {
  background: linear-gradient(180deg, #ffdb9a 0%, #f8c471 30%, #e8a84e 70%, #d48a2e 100%), radial-gradient(ellipse at 50% 100%, #e8a84e 0%, transparent 70%);
}
.scn-fortune-better-general .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d4e8 0%, #fce6c4 100%); animation: fbg-sky 8s ease-in-out infinite alternate; }
.scn-fortune-better-general .sun { position:absolute; top:10%; right:18%; width:40px; height:40px; background: radial-gradient(circle, #ffe680 0%, #ffb347 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,200,80,.5); animation: fbg-sun 12s ease-in-out infinite; }
.scn-fortune-better-general .mountains { position:absolute; bottom:45%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: fbg-mountains 18s ease-in-out infinite alternate; }
.scn-fortune-better-general .army { position:absolute; bottom:35%; left:10%; width:120px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: fbg-army 6s ease-in-out infinite; }
.scn-fortune-better-general .dust-a { position:absolute; bottom:30%; left:5%; width:60px; height:20px; background: rgba(220,180,120,.3); border-radius:50%; filter: blur(8px); animation: fbg-dust-a 5s ease-in-out infinite; }
.scn-fortune-better-general .dust-b { position:absolute; bottom:28%; right:12%; width:80px; height:16px; background: rgba(200,160,100,.2); border-radius:50%; filter: blur(6px); animation: fbg-dust-b 7s ease-in-out infinite reverse; }
.scn-fortune-better-general .banner { position:absolute; bottom:38%; left:40%; width:6px; height:30px; background: #6a4a3a; transform-origin: bottom center; animation: fbg-banner 3s ease-in-out infinite; }
.scn-fortune-better-general .banner::after { content:''; position:absolute; top:-4px; left:4px; width:24px; height:12px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 0 0 60% 60%; transform: rotate(15deg); }

@keyframes fbg-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fbg-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes fbg-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fbg-army { 0% { transform: translateX(0) } 50% { transform: translateX(6px) } 100% { transform: translateX(0) } }
@keyframes fbg-dust-a { 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(10px) scale(1.2); opacity:.2 } 100% { transform: translateX(0) scale(1); opacity:.3 } }
@keyframes fbg-dust-b { 0% { transform: translateX(0) scale(1); opacity:.2 } 50% { transform: translateX(-8px) scale(1.3); opacity:.3 } 100% { transform: translateX(0) scale(1); opacity:.2 } }
@keyframes fbg-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

/* false-alarm */
.scn-false-alarm {
  background: linear-gradient(180deg, #fde8c4 0%, #f5d69f 40%, #e0b06a 80%, #c89040 100%), radial-gradient(ellipse at 50% 110%, #e0b06a 0%, transparent 70%);
}
.scn-false-alarm .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d4e8 0%, #fce6c4 100%); animation: fal-sky 10s ease-in-out infinite alternate; }
.scn-false-alarm .tent { position:absolute; bottom:35%; left:25%; width:50px; height:30px; background: linear-gradient(180deg, #c8a06a 0%, #a07840 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 6px 10px rgba(0,0,0,.3); animation: fal-tent 4s ease-in-out infinite; }
.scn-false-alarm .smoke-a { position:absolute; bottom:50%; left:70%; width:40px; height:60px; background: rgba(180,160,120,.25); border-radius:50%; filter: blur(12px); animation: fal-smoke-a 8s ease-in-out infinite; }
.scn-false-alarm .smoke-b { position:absolute; bottom:48%; left:72%; width:30px; height:40px; background: rgba(160,140,100,.2); border-radius:50%; filter: blur(10px); animation: fal-smoke-b 10s ease-in-out infinite reverse; }
.scn-false-alarm .soldier { position:absolute; bottom:32%; left:40%; width:16px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fal-soldier 3s ease-in-out infinite; }
.scn-false-alarm .mule { position:absolute; bottom:30%; left:55%; width:30px; height:18px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: fal-mule 2s ease-in-out infinite; }
.scn-false-alarm .scout { position:absolute; bottom:33%; left:75%; width:14px; height:24px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fal-scout 5s ease-in-out infinite; }
@keyframes fal-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fal-tent { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fal-smoke-a { 0% { transform: translateY(0) scale(1); opacity:.25 } 50% { transform: translateY(-8px) scale(1.3); opacity:.15 } 100% { transform: translateY(0) scale(1); opacity:.25 } }
@keyframes fal-smoke-b { 0% { transform: translateY(0) scale(1); opacity:.2 } 50% { transform: translateY(-5px) scale(1.2); opacity:.1 } 100% { transform: translateY(0) scale(1); opacity:.2 } }
@keyframes fal-soldier { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes fal-mule { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes fal-scout { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }

/* villages-sacked */
.scn-villages-sacked {
  background: linear-gradient(180deg, #2a2a3e 0%, #3a2a4e 30%, #4a3a5a 60%, #2a1a2a 100%), radial-gradient(ellipse at 50% 80%, #4a3a5a 0%, transparent 70%);
}
.scn-villages-sacked .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); animation: vsq-sky 14s ease-in-out infinite alternate; }
.scn-villages-sacked .ruin { position:absolute; bottom:30%; left:20%; width:80px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); clip-path: polygon(0 0, 80% 0, 100% 30%, 100% 80%, 50% 100%, 0 80%); animation: vsq-ruin 8s ease-in-out infinite; }
.scn-villages-sacked .rubble { position:absolute; bottom:25%; left:25%; width:60px; height:15px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: vsq-rubble 6s ease-in-out infinite; }
.scn-villages-sacked .interior { position:absolute; bottom:35%; left:28%; width:30px; height:20px; background: #1a0a0a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.8); animation: vsq-interior 5s ease-in-out infinite; }
.scn-villages-sacked .lantern { position:absolute; bottom:38%; left:30%; width:8px; height:10px; background: radial-gradient(circle, #ffd060 0%, #c08040 70%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: vsq-lantern 3s ease-in-out infinite alternate; }
.scn-villages-sacked .bivouac { position:absolute; bottom:28%; left:50%; width:18px; height:14px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vsq-bivouac 7s ease-in-out infinite; }
@keyframes vsq-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes vsq-ruin { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(0deg) } }
@keyframes vsq-rubble { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes vsq-interior { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes vsq-lantern { 0% { box-shadow: 0 0 12px 3px #c08040, 0 0 24px 6px rgba(192,128,64,.3); opacity:.8 } 50% { box-shadow: 0 0 28px 10px #ffd060, 0 0 50px 18px rgba(255,208,96,.5); opacity:1 } 100% { box-shadow: 0 0 16px 4px #c08040, 0 0 30px 8px rgba(192,128,64,.35); opacity:.9 } }
@keyframes vsq-bivouac { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }

/* night-panic-ass */
.scn-night-panic-ass {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%);
}
.scn-night-panic-ass .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); animation: npa-sky 12s ease-in-out infinite alternate; }
.scn-night-panic-ass .campfire-a { position:absolute; bottom:35%; left:30%; width:20px; height:20px; background: radial-gradient(circle, #ff9933 0%, #e06600 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 12px rgba(255,150,50,.6); animation: npa-fire-a 2s ease-in-out infinite alternate; }
.scn-night-panic-ass .campfire-b { position:absolute; bottom:33%; left:70%; width:16px; height:16px; background: radial-gradient(circle, #ffb347 0%, #d08020 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 24px 10px rgba(255,180,80,.5); animation: npa-fire-b 2.5s ease-in-out infinite alternate-reverse; }
.scn-night-panic-ass .tent { position:absolute; bottom:30%; left:20%; width:40px; height:25px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 6px 10px rgba(0,0,0,.5); animation: npa-tent 5s ease-in-out infinite; }
.scn-night-panic-ass .ass { position:absolute; bottom:27%; left:50%; width:30px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: npa-ass 1s ease-in-out infinite; }
.scn-night-panic-ass .guard-a { position:absolute; bottom:30%; left:40%; width:14px; height:24px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: npa-guard-a 3s ease-in-out infinite; }
.scn-night-panic-ass .guard-b { position:absolute; bottom:30%; left:60%; width:14px; height:24px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: npa-guard-b 3.5s ease-in-out infinite reverse; }
.scn-night-panic-ass .sparkle { position:absolute; bottom:40%; left:48%; width:4px; height:4px; background: #ffd700; border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,215,0,.8); animation: npa-sparkle 1.5s ease-in-out infinite; }
@keyframes npa-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes npa-fire-a { 0% { transform: scale(1); opacity:.9 } 100% { transform: scale(1.15); opacity:1 } }
@keyframes npa-fire-b { 0% { transform: scale(1); opacity:.8 } 100% { transform: scale(1.2); opacity:1 } }
@keyframes npa-tent { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes npa-ass { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-1px) } 50% { transform: rotate(-3deg) translateY(0) } 75% { transform: rotate(4deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes npa-guard-a { 0% { transform: rotate(-3deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(-3deg) } }
@keyframes npa-guard-b { 0% { transform: rotate(3deg) } 25% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-4deg) } 100% { transform: rotate(3deg) } }
@keyframes npa-sparkle { 0% { opacity:0; transform: scale(0) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(0) } }

/* cleander-sacrifices-unfavourably */
.scn-cleander-sacrifices-unfavourably {
  background:
    linear-gradient(180deg, #1a1010 0%, #2a1a1a 40%, #1f0f0f 100%),
    radial-gradient(ellipse at 40% 60%, #3a2020 0%, transparent 70%);
}
.scn-cleander-sacrifices-unfavourably .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%);
  animation: cs-wall 12s ease-in-out infinite alternate;
}
.scn-cleander-sacrifices-unfavourably .wall-side {
  position: absolute; inset: 0 30% 30% 0;
  background: linear-gradient(90deg, #2a1a1a 0%, #1f1010 100%);
  transform: skewY(-5deg); transform-origin: top left;
  animation: cs-wallside 8s ease-in-out infinite alternate;
}
.scn-cleander-sacrifices-unfavourably .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-cleander-sacrifices-unfavourably .altar {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3030 0%, #2a1a1a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 -2px 10px rgba(200,100,50,0.3);
}
.scn-cleander-sacrifices-unfavourably .flame {
  position: absolute; bottom: 29%; left: 50%; width: 12px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 80%, #ffa060 0%, #ff7030 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #ff7030, 0 0 60px 20px rgba(255,112,48,0.4);
  animation: cs-flame 0.8s ease-in-out infinite alternate;
}
.scn-cleander-sacrifices-unfavourably .figure-c {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: cs-figure-c 4s ease-in-out infinite;
}
.scn-cleander-sacrifices-unfavourably .figure-x {
  position: absolute; bottom: 20%; left: 56%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: cs-figure-x 4.5s ease-in-out infinite;
}
.scn-cleander-sacrifices-unfavourably .shadow-c {
  position: absolute; bottom: 18%; left: 28%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.4); border-radius: 50%;
  animation: cs-shadow 4s ease-in-out infinite;
}
.scn-cleander-sacrifices-unfavourably .shadow-x {
  position: absolute; bottom: 18%; left: 54%; width: 28px; height: 6px;
  background: rgba(0,0,0,0.3); border-radius: 50%;
  animation: cs-shadow 4.5s ease-in-out infinite;
}
@keyframes cs-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cs-wallside { 0% { transform: skewY(-5deg) } 50% { transform: skewY(-8deg) } 100% { transform: skewY(-3deg) } }
@keyframes cs-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-1deg) } 50% { transform: translateX(-50%) scaleY(1.3) rotate(1deg) } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-0.5deg) } }
@keyframes cs-figure-c { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(-3px,-2px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes cs-figure-x { 0% { transform: translate(0,0) rotate(1deg) } 50% { transform: translate(4px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes cs-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) scaleY(0.8) } 100% { transform: scaleX(1) } }

/* soldiers-depart-from-calpe */
.scn-soldiers-depart-from-calpe {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #f5deb3 100%),
    radial-gradient(ellipse at 20% 100%, #f0e68c 0%, transparent 60%);
}
.scn-soldiers-depart-from-calpe .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: sd-sky 20s ease-in-out infinite alternate;
}
.scn-soldiers-depart-from-calpe .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.3);
  animation: sd-sun 12s ease-in-out infinite alternate;
}
.scn-soldiers-depart-from-calpe .sea {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4682b4 0%, #1e90ff 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: sd-sea 8s ease-in-out infinite alternate;
}
.scn-soldiers-depart-from-calpe .cliff {
  position: absolute; bottom: 20%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8b7355 0%, #a0522d 100%);
  border-radius: 20% 20% 0 0;
  transform: skewX(-5deg);
}
.scn-soldiers-depart-from-calpe .ship {
  position: absolute; bottom: 30%; left: 60%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%);
  border-radius: 0 0 30% 30%;
  animation: sd-ship 15s linear infinite;
}
.scn-soldiers-depart-from-calpe .soldiers {
  position: absolute; bottom: 18%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  box-shadow: -10px 0 0 #2f4f4f, 10px 0 0 #2f4f4f;
  animation: sd-march 6s ease-in-out infinite;
}
.scn-soldiers-depart-from-calpe .dust {
  position: absolute; bottom: 16%; left: 12%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(210,180,140,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: sd-dust 5s ease-in-out infinite alternate;
}
.scn-soldiers-depart-from-calpe .bird {
  position: absolute; top: 10%; left: 20%; width: 20px; height: 10px;
  background: transparent;
  border-top: 2px solid #2c3e50;
  border-bottom: 2px solid #2c3e50;
  border-radius: 50%;
  animation: sd-bird 18s linear infinite;
}
@keyframes sd-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sd-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px,-5px) scale(1.05) } 100% { transform: translate(0,0) scale(0.95) } }
@keyframes sd-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sd-ship { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(15px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(30px) translateY(0) rotate(0deg) } }
@keyframes sd-march { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sd-dust { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.2; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.9) } }
@keyframes sd-bird { 0% { transform: translateX(-20px) scaleY(1) } 25% { transform: translateX(10vw) scaleY(1.3) } 50% { transform: translateX(40vw) scaleY(0.8) } 75% { transform: translateX(70vw) scaleY(1.1) } 100% { transform: translateX(90vw) scaleY(1) } }

/* march-to-chrysopolis */
.scn-march-to-chrysopolis {
  background:
    linear-gradient(180deg, #708090 0%, #a9a9a9 30%, #d3d3d3 60%, #f5f5f5 100%),
    radial-gradient(ellipse at 50% 0%, #b0c4de 0%, transparent 70%);
}
.scn-march-to-chrysopolis .sky-overcast {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #708090 0%, #a9a9a9 100%);
  animation: mc-sky 15s ease-in-out infinite alternate;
}
.scn-march-to-chrysopolis .road {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #8b7d6b 0%, #6b5a4a 100%);
  border-radius: 20% 20% 0 0;
  transform: skewX(-3deg);
}
.scn-march-to-chrysopolis .hill-left {
  position: absolute; bottom: 20%; left: 0; width: 40%; height: 40%;
  background: linear-gradient(180deg, #556b2f 0%, #3b5323 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0;
  animation: mc-hill 20s ease-in-out infinite alternate;
}
.scn-march-to-chrysopolis .hill-right {
  position: absolute; bottom: 20%; right: 0; width: 40%; height: 45%;
  background: linear-gradient(180deg, #4c5f2b 0%, #2e421a 100%);
  border-radius: 60% 0 0 0 / 80% 0 0 0;
  animation: mc-hill 18s ease-in-out infinite alternate;
}
.scn-march-to-chrysopolis .soldier-line {
  position: absolute; bottom: 17%; left: 15%; width: 70%; height: 40px;
  background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 6px, transparent 6px, transparent 12px);
  animation: mc-march 7s ease-in-out infinite;
}
.scn-march-to-chrysopolis .soldier-close {
  position: absolute; bottom: 10%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mc-close-walk 4s ease-in-out infinite;
}
.scn-march-to-chrysopolis .dust {
  position: absolute; bottom: 8%; left: 28%; width: 40px; height: 15px;
  background: radial-gradient(ellipse, rgba(139,125,107,0.3) 0%, transparent 70%);
  filter: blur(3px);
  animation: mc-dust 5s ease-in-out infinite alternate;
}
.scn-march-to-chrysopolis .cloud-cover {
  position: absolute; top: 10%; left: -10%; width: 120%; height: 30%;
  background: repeating-linear-gradient(90deg, rgba(192,192,192,0.2) 0px, rgba(192,192,192,0.2) 80px, transparent 80px, transparent 160px);
  filter: blur(8px);
  animation: mc-cloud 40s linear infinite;
}
@keyframes mc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes mc-hill { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(0.97) } }
@keyframes mc-march { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes mc-close-walk { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(6px,-1px) rotate(1deg) } 50% { transform: translate(12px,0) rotate(-2deg) } 75% { transform: translate(18px,-1px) rotate(1deg) } 100% { transform: translate(24px,0) rotate(0) } }
@keyframes mc-dust { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.3; transform: scale(1.3) } 100% { opacity:0.5; transform: scale(0.8) } }
@keyframes mc-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-50%) } }

/* pharnabazus-negotiates */
.scn-pharnabazus-negotiates {
  background:
    linear-gradient(180deg, #1a0f1a 0%, #2a1a2a 40%, #1a0f0f 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a3a 0%, transparent 60%);
}
.scn-pharnabazus-negotiates .tent-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: pn-tent 14s ease-in-out infinite alternate;
}
.scn-pharnabazus-negotiates .tent-pole {
  position: absolute; top: 0; left: 50%; width: 6px; height: 100%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: -2px 0 4px rgba(0,0,0,0.3);
}
.scn-pharnabazus-negotiates .table {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-pharnabazus-negotiates .lamp {
  position: absolute; bottom: 40%; left: 50%; width: 14px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 60%, #ffcc80 0%, #ffa726 50%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #ffa726, 0 0 60px 20px rgba(255,167,38,0.3);
  animation: pn-lamp 1.2s ease-in-out infinite alternate;
}
.scn-pharnabazus-negotiates .figure-p {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.5);
  animation: pn-figure-p 5s ease-in-out infinite;
}
.scn-pharnabazus-negotiates .figure-a {
  position: absolute; bottom: 20%; left: 56%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: pn-figure-a 4.8s ease-in-out infinite;
}
.scn-pharnabazus-negotiates .scroll {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b0a080 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pn-scroll 6s ease-in-out infinite altternate;
}
.scn-pharnabazus-negotiates .shadow-p {
  position: absolute; bottom: 18%; left: 28%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.5); border-radius: 50%;
  animation: pn-shadow 5s ease-in-out infinite;
}
.scn-pharnabazus-negotiates .shadow-a {
  position: absolute; bottom: 18%; left: 54%; width: 28px; height: 6px;
  background: rgba(0,0,0,0.4); border-radius: 50%;
  animation: pn-shadow 4.8s ease-in-out infinite;
}
@keyframes pn-tent { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pn-lamp { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg) } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg) } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg) } }
@keyframes pn-figure-p { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(-3px,-2px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes pn-figure-a { 0% { transform: translate(0,0) rotate(1deg) } 50% { transform: translate(4px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes pn-scroll { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes pn-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) scaleY(0.8) } 100% { transform: scaleX(1) } }

/* scene: cyrus-shares-wine */
.scn-cyrus-shares-wine {
  background: 
    linear-gradient(180deg, #2c1a0e 0%, #4a2a1a 40%, #3a1e10 80%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 30%, #6a3a22 0%, transparent 60%);
}
.scn-cyrus-shares-wine .bg-depth { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.2) 100%); }
.scn-cyrus-shares-wine .bg-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, transparent 0%, #5a3a22 100%); opacity:0.4; animation: ciw-warm 6s ease-in-out infinite alternate; }
.scn-cyrus-shares-wine .table { position:absolute; bottom:20%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2e16 100%); border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); }
.scn-cyrus-shares-wine .wine-cup { position:absolute; bottom:30%; left:45%; width:20px; height:24px; background: radial-gradient(circle, #c08040 0%, #6a3a1a 70%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3); animation: ciw-cup 4s ease-in-out infinite; }
.scn-cyrus-shares-wine .brazier { position:absolute; bottom:18%; left:60%; width:30px; height:20px; background: #5a3a1a; border-radius: 40% 40% 20% 20%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.6); }
.scn-cyrus-shares-wine .flame { position:absolute; bottom:30%; left:61%; width:10px; height:18px; background: radial-gradient(circle, #ffd060 0%, #ff8a30 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px #ff8a30; animation: ciw-flame 0.8s ease-in-out infinite alternate; }
.scn-cyrus-shares-wine .figure-cyrus { position:absolute; bottom:26%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #4a2e1a 0%, #2c1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ciw-figure 8s ease-in-out infinite; }
.scn-cyrus-shares-wine .tapestry-left { position:absolute; inset:8% 0 45% 0; left:5%; width:15%; background: linear-gradient(90deg, #5a2a1a 0%, #7a3a2a 50%, #5a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); animation: ciw-tapestry 20s linear infinite; }
.scn-cyrus-shares-wine .tapestry-right { position:absolute; inset:8% 0 45% 0; right:5%; width:15%; background: linear-gradient(-90deg, #5a2a1a 0%, #7a3a2a 50%, #5a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); animation: ciw-tapestry 20s linear infinite reverse; }
@keyframes ciw-warm { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.35 } }
@keyframes ciw-cup { 0% { transform: translateY(0) rotate(0); box-shadow: 0 0 18px 4px #c08040; } 50% { transform: translateY(-3px) rotate(2deg); box-shadow: 0 0 32px 8px #ffd060; } 100% { transform: translateY(0) rotate(0); box-shadow: 0 0 20px 5px #c08040; } }
@keyframes ciw-flame { 0% { transform: scaleY(0.9) translateY(0); opacity:0.9; } 100% { transform: scaleY(1.2) translateY(-2px); opacity:1; } }
@keyframes ciw-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg) scale(1.01); } 50% { transform: translateX(-4px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ciw-tapestry { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 0% 0%; } }

/* scene: cyrus-shares-food */
.scn-cyrus-shares-food {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #3a2212 40%, #4a2a1a 70%, #1a0e06 100%),
    radial-gradient(ellipse at 60% 50%, #6a3a22 0%, transparent 50%);
}
.scn-cyrus-shares-food .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%); }
.scn-cyrus-shares-food .table-top { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a2a16 0%, #3a1e0e 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-cyrus-shares-food .platter { position:absolute; bottom:28%; left:30%; width:45%; height:12%; background: radial-gradient(ellipse, #6a4a2a 0%, #4a2a14 70%); border-radius: 40% 40% 20% 20% / 80% 80% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,0.4); }
.scn-cyrus-shares-food .bread { position:absolute; bottom:32%; width:24px; height:16px; background: radial-gradient(ellipse at 40% 30%, #b08050 0%, #7a4a2a 70%); border-radius: 30% 30% 40% 40% / 50% 50% 60% 60%; }
.scn-cyrus-shares-food .loaf1 { left:35%; animation: cif-bread1 6s ease-in-out infinite; }
.scn-cyrus-shares-food .loaf2 { left:48%; animation: cif-bread2 7s ease-in-out infinite 0.5s; }
.scn-cyrus-shares-food .goose-goose1,
.scn-cyrus-shares-food .goose-goose2 { position:absolute; bottom:31%; width:30px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2212 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-cyrus-shares-food .goose-goose1 { left:55%; transform: rotate(10deg); animation: cif-goose1 12s ease-in-out infinite; }
.scn-cyrus-shares-food .goose-goose2 { left:65%; width:25px; height:18px; transform: rotate(-5deg); animation: cif-goose2 14s ease-in-out infinite 1s; }
.scn-cyrus-shares-food .hand { position:absolute; bottom:24%; left:28%; width:14px; height:28px; background: linear-gradient(180deg, #6a3a1a 0%, #4a2a12 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: cif-hand 5s ease-in-out infinite; }
.scn-cyrus-shares-food .candle { position:absolute; bottom:26%; right:20%; width:6px; height:20px; background: linear-gradient(180deg, #d0a060 0%, #8a5a30 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 16px 6px #d0a060; animation: cif-candle 3s ease-in-out infinite alternate; }
@keyframes cif-bread1 { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes cif-bread2 { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cif-goose1 { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(-2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes cif-goose2 { 0% { transform: rotate(-5deg) translateX(0) scale(1); } 50% { transform: rotate(-3deg) translateX(3px) scale(0.98); } 100% { transform: rotate(-5deg) translateX(0) scale(1); } }
@keyframes cif-hand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cif-candle { 0% { opacity:0.8; box-shadow: 0 0 12px 4px #d0a060; } 100% { opacity:1; box-shadow: 0 0 24px 8px #f0b060; } }

/* scene: cyrus-honours-friends */
.scn-cyrus-honours-friends {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #3a2218 30%, #4a2a1a 60%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 20%, #8a5a3a 0%, transparent 60%);
}
.scn-cyrus-honours-friends .bg-palace { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.2) 100%); }
.scn-cyrus-honours-friends .dais { position:absolute; bottom:15%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5); }
.scn-cyrus-honours-friends .throne { position:absolute; bottom:30%; left:22%; width:28px; height:36px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a16 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: chf-throne 10s ease-in-out infinite; }
.scn-cyrus-honours-friends .figure-honored { position:absolute; bottom:26%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #4a2e1a 0%, #2c1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: chf-figure1 6s ease-in-out infinite; }
.scn-cyrus-honours-friends .figure-cyrus-h { position:absolute; bottom:26%; left:52%; width:20px; height:42px; background: linear-gradient(180deg, #5a3a22 0%, #3a1e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: chf-figure2 7s ease-in-out infinite 0.3s; }
.scn-cyrus-honours-friends .light-above { position:absolute; top:5%; left:40%; right:40%; height:10%; background: radial-gradient(ellipse, rgba(255,200,150,0.3) 0%, transparent 80%); animation: chf-light 4s ease-in-out infinite alternate; }
.scn-cyrus-honours-friends .drape-left { position:absolute; inset:5% 0 40% 0; left:5%; width:12%; background: linear-gradient(180deg, #4a2a1a 0%, #6a3a22 50%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-cyrus-honours-friends .drape-right { position:absolute; inset:5% 0 40% 0; right:5%; width:12%; background: linear-gradient(180deg, #4a2a1a 0%, #6a3a22 50%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
@keyframes chf-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0); } }
@keyframes chf-figure1 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes chf-figure2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes chf-light { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* scene: orontas-failed */
.scn-orontas-failed {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a2a 70%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 60%);
}
.scn-orontas-failed .bg-hall { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%); }
.scn-orontas-failed .column-left,
.scn-orontas-failed .column-right { position:absolute; bottom:0; width:10%; height:70%; background: linear-gradient(90deg, #3a3a4a 0%, #5a5a6a 50%, #3a3a4a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.4); }
.scn-orontas-failed .column-left { left:10%; }
.scn-orontas-failed .column-right { right:10%; }
.scn-orontas-failed .figure-orontas { position:absolute; bottom:20%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: orf-figure1 9s ease-in-out infinite; }
.scn-cyrus-shares-wine .figure-cyrus-o { position:absolute; bottom:20%; left:48%; width:20px; height:42px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: orf-figure2 10s ease-in-out infinite 0.5s; }
.scn-orontas-failed .floor-shadow { position:absolute; bottom:12%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%); animation: orf-shadow 6s ease-in-out infinite alternate; }
.scn-orontas-failed .light-beam { position:absolute; top:0; left:40%; right:40%; height:40%; background: linear-gradient(180deg, rgba(200,200,220,0.15) 0%, transparent 100%); animation: orf-beam 5s ease-in-out infinite alternate; }
@keyframes orf-figure1 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(1deg) scale(1.01); } 100% { transform: translateX(0) rotate(0); } }
@keyframes orf-figure2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-1deg) scale(0.99); } 100% { transform: translateX(0) rotate(0); } }
@keyframes orf-shadow { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.5; transform: scaleY(0.9); } 100% { opacity:0.4; transform: scaleY(1); } }
@keyframes orf-beam { 0% { opacity:0.1; } 50% { opacity:0.2; } 100% { opacity:0.15; } }

.scn-xenophon-on-irony {
  background:
    linear-gradient(180deg, #b8a088 0%, #d4c0a0 30%, #e8d8b8 60%, #c0b090 100%),
    radial-gradient(ellipse at 70% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-xenophon-on-irony .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c8b898 0%, #e0d0b0 50%, #d0c0a0 100%); animation: xoi-sky 20s ease-in-out infinite alternate; }
.scn-xenophon-on-irony .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 50%, #2a3a3a 100%); }
.scn-xenophon-on-irony .sun { position:absolute; top:20%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #f0b060 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px #f0b060, 0 0 80px 40px rgba(240,176,96,.4); animation: xoi-sun 6s ease-in-out infinite alternate; }
.scn-xenophon-on-irony .ship-hull { position:absolute; bottom:50%; left:30%; width:120px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-xenophon-on-irony .sail-fore { position:absolute; bottom:58%; left:40%; width:6px; height:70px; background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%); border-radius: 20% 20% 0 0; transform-origin: bottom center; animation: xoi-sail 4s ease-in-out infinite alternate; }
.scn-xenophon-on-irony .sail-aft { position:absolute; bottom:58%; left:52%; width:5px; height:55px; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius: 10% 10% 0 0; transform-origin: bottom center; animation: xoi-sail 4.8s ease-in-out infinite alternate reverse; }
.scn-xenophon-on-irony .wave-a { position:absolute; bottom:20%; left:-10%; width:130%; height:20px; background: linear-gradient(180deg, transparent 0%, rgba(100,140,140,.5) 50%, transparent 100%); border-radius:50%; filter: blur(2px); animation: xoi-wave 3s ease-in-out infinite alternate; }
.scn-xenophon-on-irony .wave-b { position:absolute; bottom:35%; left:-5%; width:120%; height:18px; background: linear-gradient(180deg, transparent 0%, rgba(90,130,130,.4) 50%, transparent 100%); border-radius:50%; filter: blur(2px); animation: xoi-wave 3.6s ease-in-out infinite alternate-reverse; }
@keyframes xoi-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes xoi-sun { 0% { transform: scale(1); box-shadow: 0 0 40px 20px #f0b060; } 50% { transform: scale(1.1); box-shadow: 0 0 60px 30px #f0b060, 0 0 100px 50px rgba(240,176,96,.4); } 100% { transform: scale(.95); box-shadow: 0 0 35px 15px #e0a050; } }
@keyframes xoi-sail { 0% { transform: rotate(-8deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-6deg); } }
@keyframes xoi-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.2); } 100% { transform: translateY(3px) scaleY(.9); } }
.scn-xenophon-on-irony .wave-a { animation-delay: 0s; }
.scn-xenophon-on-irony .wave-b { animation-delay: -1.5s; }

.scn-xenophon-pauses {
  background:
    linear-gradient(180deg, #b8a090 0%, #d0c0b0 40%, #c0a898 100%),
    radial-gradient(ellipse at 50% 0%, #e8d8c8 0%, transparent 70%);
}
.scn-xenophon-pauses .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #a09080 0%, #c0b0a0 50%, #a09080 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-xenophon-pauses .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #806860 0%, #a09080 100%); }
.scn-xenophon-pauses .window { position:absolute; top:25%; left:20%; width:25%; height:50%; background: linear-gradient(180deg, #e8d0b0 0%, #d0b898 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 40px rgba(255,220,180,.6); animation: xp-window 8s ease-in-out infinite alternate; }
.scn-xenophon-pauses .light-beam { position:absolute; top:25%; left:20%; width:25%; height:60%; background: linear-gradient(180deg, rgba(240,220,190,.6) 0%, rgba(200,180,150,.2) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: xp-beam 12s ease-in-out infinite alternate; }
.scn-xenophon-pauses .figure-l { position:absolute; bottom:30%; left:30%; width:20px; height:45px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: xp-figure 14s ease-in-out infinite alternate; }
.scn-xenophon-pauses .figure-r { position:absolute; bottom:30%; right:25%; width:22px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: xp-figure 16s ease-in-out infinite alternate-reverse; }
.scn-xenophon-pauses .table { position:absolute; bottom:25%; left:38%; width:60px; height:20px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 10% 10% 30% 30%; }
.scn-xenophon-pauses .cup { position:absolute; bottom:32%; left:42%; width:10px; height:12px; background: linear-gradient(180deg, #d0b898 0%, #b0a090 100%); border-radius: 30% 30% 10% 10%; animation: xp-cup 6s ease-in-out infinite alternate; }
@keyframes xp-window { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.75; } }
@keyframes xp-beam { 0% { transform: translateX(-5px) skewY(2deg); opacity:.4; } 50% { transform: translateX(5px) skewY(-2deg); opacity:.6; } 100% { transform: translateX(0) skewY(1deg); opacity:.5; } }
@keyframes xp-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes xp-cup { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

.scn-eurylochus-speaks {
  background:
    linear-gradient(180deg, #b09880 0%, #d0b898 30%, #e0c8a8 60%, #c0a888 100%),
    radial-gradient(ellipse at 50% 80%, #e8d0b0 0%, transparent 70%);
}
.scn-eurylochus-speaks .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8b098 0%, #e0c8a8 50%, #d0b898 100%); animation: eus-sky 15s ease-in-out infinite alternate; }
.scn-eurylochus-speaks .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-eurylochus-speaks .tent-a { position:absolute; bottom:18%; left:15%; width:80px; height:50px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: eus-tent 8s ease-in-out infinite alternate; }
.scn-eurylochus-speaks .tent-b { position:absolute; bottom:15%; right:20%; width:70px; height:40px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: eus-tent 10s ease-in-out infinite alternate-reverse; }
.scn-eurylochus-speaks .figure-speaker { position:absolute; bottom:25%; left:50%; width:24px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: eus-speaker 2s ease-in-out infinite alternate; }
.scn-eurylochus-speaks .figure-audience { position:absolute; bottom:25%; left:28%; width:18px; height:45px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: eus-audience 4s ease-in-out infinite alternate; }
.scn-eurylochus-speaks .brazier { position:absolute; bottom:22%; right:35%; width:20px; height:20px; background: radial-gradient(circle, #ff9040 0%, #b05020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px #ff9040; animation: eus-fire .5s steps(3) infinite alternate; }
.scn-eurylochus-speaks .banner { position:absolute; top:10%; left:45%; width:4px; height:30px; background: #6a4a3a; transform-origin: top center; animation: eus-banner .8s ease-in-out infinite alternate; }
@keyframes eus-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes eus-tent { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes eus-speaker { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes eus-audience { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes eus-fire { 0% { transform: scale(1); opacity:.9; } 50% { transform: scale(1.15); opacity:1; } 100% { transform: scale(.9); opacity:.8; } }
@keyframes eus-banner { 0% { transform: rotate(-10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-5deg); } }

.scn-polycrates-accuses {
  background:
    linear-gradient(180deg, #7a6a5a 0%, #9a8a7a 30%, #8a7a6a 60%, #6a5a4a 100%),
    radial-gradient(ellipse at 50% 0%, #b0a090 0%, transparent 80%);
}
.scn-polycrates-accuses .interior-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); border-radius: 0 0 10% 10%; }
.scn-polycrates-accuses .interior-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a4a 100%); }
.scn-polycrates-accuses .chest { position:absolute; bottom:18%; left:20%; width:40px; height:30px; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: pa-chest 3s ease-in-out infinite alternate; }
.scn-polycrates-accuses .figure-accuser { position:absolute; bottom:20%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pa-accuser 1.2s ease-in-out infinite alternate; }
.scn-polycrates-accuses .figure-accused { position:absolute; bottom:20%; right:25%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pa-accused 2s ease-in-out infinite alternate; }
.scn-polycrates-accuses .lamp { position:absolute; top:20%; left:50%; width:12px; height:18px; background: radial-gradient(circle, #ffb060 0%, #b06020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 15px #ffb060; animation: pa-lamp 1s steps(4) infinite alternate; }
.scn-polycrates-accuses .shadow { position:absolute; bottom:0; left:32%; width:60px; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: pa-shadow 3s ease-in-out infinite alternate; }
@keyframes pa-chest { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pa-accuser { 0% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes pa-accused { 0% { transform: scaleX(.95) translateY(0); } 50% { transform: scaleX(1.05) translateY(-3px); } 100% { transform: scaleX(.98) translateY(0); } }
@keyframes pa-lamp { 0% { opacity:.7; transform: scale(1); } 33% { opacity:1; transform: scale(1.15); } 66% { opacity:.9; transform: scale(.95); } 100% { opacity:.8; transform: scale(1.05); } }
@keyframes pa-shadow { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.5; transform: scaleY(1.2); } 100% { opacity:.4; transform: scaleY(.9); } }

/* Scene: generals-intercede-with-cleander (tag: gic) */
.scn-generals-intercede-with-cleander {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2c24 40%, #1e1510 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a30 0%, transparent 70%);
}
.scn-generals-intercede-with-cleander .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2c24 0%, #2a1f1a 100%);
  animation: gic-wall 12s ease-in-out infinite alternate;
}
.scn-generals-intercede-with-cleander .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1510 0%, #0f0a08 100%);
}
.scn-generals-intercede-with-cleander .pillar {
  position: absolute; bottom: 30%; width: 12px; height: 50%;
  background: linear-gradient(90deg, #4a3a30, #2a1f1a, #3a2c24);
  border-radius: 2px;
  animation: gic-pillar 20s ease-in-out infinite;
}
.scn-generals-intercede-with-cleander .pillar-left { left: 15%; animation-delay: -5s; }
.scn-generals-intercede-with-cleander .pillar-right { right: 15%; animation-delay: 0s; }
.scn-generals-intercede-with-cleander .light-sconce {
  position: absolute; bottom: 60%; width: 8px; height: 14px;
  background: radial-gradient(circle, #d49a6a 0%, #a06030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(212,154,106,0.6);
  animation: gic-flicker 3s ease-in-out infinite alternate;
}
.scn-generals-intercede-with-cleander .sconce-left { left: 20%; }
.scn-generals-intercede-with-cleander .sconce-right { right: 20%; animation-delay: -1.5s; }
.scn-generals-intercede-with-cleander .figure-cleander {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: gic-cleander 8s ease-in-out infinite;
}
.scn-generals-intercede-with-cleander .figure-generals {
  position: absolute; bottom: 30%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1f1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: gic-generals 6s ease-in-out infinite;
}
.scn-generals-intercede-with-cleander .shadow {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: gic-shadow 12s ease-in-out infinite alternate;
}
@keyframes gic-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gic-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes gic-flicker { 0% { box-shadow: 0 0 15px 5px rgba(212,154,106,0.5); opacity: 0.8; } 50% { box-shadow: 0 0 30px 12px rgba(212,154,106,0.8); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(212,154,106,0.6); opacity: 0.9; } }
@keyframes gic-cleander { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 25% { transform: translateX(-48%) translateY(-2px) rotate(0deg); } 50% { transform: translateX(-50%) translateY(0) rotate(1deg); } 75% { transform: translateX(-52%) translateY(-1px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes gic-generals { 0% { transform: translateX(-50%) rotate(-2deg); } 33% { transform: translateX(-48%) rotate(0deg); } 66% { transform: translateX(-52%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes gic-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.1); opacity: 0.6; } 100% { transform: scaleX(1); opacity: 0.5; } }

/* Scene: cleander-hears-agasias (tag: cha) */
.scn-cleander-hears-agasias {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2c24 40%, #1e1510 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a30 0%, transparent 70%);
}
.scn-cleander-hears-agasias .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2c24 0%, #2a1f1a 100%);
  animation: cha-wall 10s ease-in-out infinite alternate;
}
.scn-cleander-hears-agasias .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1510 0%, #0f0a08 100%);
}
.scn-cleander-hears-agasias .arch {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #2a1f1a 40%, #1e1510 100%);
  border-radius: 50% / 60% 60% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.4);
  animation: cha-arch 15s ease-in-out infinite;
}
.scn-cleander-hears-agasias .pillar {
  position: absolute; bottom: 30%; width: 12px; height: 70%;
  background: linear-gradient(90deg, #4a3a30, #2a1f1a, #3a2c24);
  border-radius: 2px;
  animation: cha-pillar 18s ease-in-out infinite;
}
.scn-cleander-hears-agasias .pillar-left { left: 12%; animation-delay: -4s; }
.scn-cleander-hears-agasias .pillar-right { right: 12%; animation-delay: 0s; }
.scn-cleander-hears-agasias .light-sconce {
  position: absolute; bottom: 60%; width: 8px; height: 14px;
  background: radial-gradient(circle, #d49a6a 0%, #a06030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(212,154,106,0.6);
  animation: cha-flicker 2.5s ease-in-out infinite alternate;
}
.scn-cleander-hears-agasias .sconce-left { left: 18%; }
.scn-cleander-hears-agasias .sconce-right { right: 18%; animation-delay: -1.2s; }
.scn-cleander-hears-agasias .figure-cleander {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cha-cleander 9s ease-in-out infinite;
}
.scn-cleander-hears-agasias .figure-agasias {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1f1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cha-agasias 7s ease-in-out infinite;
}
@keyframes cha-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cha-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes cha-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes cha-flicker { 0% { box-shadow: 0 0 12px 4px rgba(212,154,106,0.4); opacity: 0.7; } 50% { box-shadow: 0 0 28px 10px rgba(212,154,106,0.9); opacity: 1; } 100% { box-shadow: 0 0 18px 6px rgba(212,154,106,0.5); opacity: 0.85; } }
@keyframes cha-cleander { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 33% { transform: translateX(-48%) translateY(-1px) rotate(1deg); } 66% { transform: translateX(-52%) translateY(0) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes cha-agasias { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-45%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 75% { transform: translateX(-55%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }

/* Scene: agasias-concludes (tag: agc) */
.scn-agasias-concludes {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2c24 40%, #1e1510 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a30 0%, transparent 70%);
}
.scn-agasias-concludes .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2c24 0%, #2a1f1a 100%);
  animation: agc-wall 14s ease-in-out infinite alternate;
}
.scn-agasias-concludes .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1510 0%, #0f0a08 100%);
}
.scn-agasias-concludes .column {
  position: absolute; bottom: 30%; width: 14px; height: 60%;
  background: linear-gradient(90deg, #4a3a30, #2a1f1a, #3a2c24);
  border-radius: 3px;
  animation: agc-column 22s ease-in-out infinite;
}
.scn-agasias-concludes .column-left { left: 20%; animation-delay: -7s; }
.scn-agasias-concludes .column-right { right: 20%; animation-delay: 0s; }
.scn-agasias-concludes .light-sconce {
  position: absolute; bottom: 60%; width: 8px; height: 14px;
  background: radial-gradient(circle, #d49a6a 0%, #a06030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(212,154,106,0.6);
  animation: agc-flicker 3.5s ease-in-out infinite alternate;
}
.scn-agasias-concludes .sconce-left { left: 25%; }
.scn-agasias-concludes .sconce-right { right: 25%; animation-delay: -1.8s; }
.scn-agasias-concludes .figure-agasias {
  position: absolute; bottom: 30%; left: 40%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1f1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: agc-agasias 6s ease-in-out infinite;
}
.scn-agasias-concludes .figure-cleander.seated {
  position: absolute; bottom: 30%; left: 55%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: agc-cleander 10s ease-in-out infinite;
}
.scn-agasias-concludes .shadow {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: agc-shadow 15s ease-in-out infinite alternate;
}
@keyframes agc-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes agc-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes agc-flicker { 0% { box-shadow: 0 0 10px 3px rgba(212,154,106,0.3); opacity: 0.7; } 50% { box-shadow: 0 0 35px 14px rgba(212,154,106,0.9); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(212,154,106,0.5); opacity: 0.85; } }
@keyframes agc-agasias { 0% { transform: translateX(-50%) rotate(-3deg); } 20% { transform: translateX(-45%) rotate(0deg); } 40% { transform: translateX(-50%) rotate(3deg); } 60% { transform: translateX(-55%) rotate(0deg); } 80% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes agc-cleander { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 33% { transform: translateX(-48%) translateY(-2px) rotate(0deg); } 66% { transform: translateX(-52%) translateY(0) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes agc-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.15); opacity: 0.6; } 100% { transform: scaleX(1); opacity: 0.4; } }

/* Scene: cleander-judges (tag: clj) */
.scn-cleander-judges {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2c24 40%, #1e1510 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a30 0%, transparent 70%);
}
.scn-cleander-judges .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2c24 0%, #2a1f1a 100%);
  animation: clj-wall 16s ease-in-out infinite alternate;
}
.scn-cleander-judges .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1510 0%, #0f0a08 100%);
}
.scn-cleander-judges .throne {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a20 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: clj-throne 12s ease-in-out infinite;
}
.scn-cleander-judges .figure-cleander.seated {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: clj-cleander 9s ease-in-out infinite;
}
.scn-cleander-judges .figure-generals {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1f1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: clj-generals 7s ease-in-out infinite;
}
.scn-cleander-judges .pillar {
  position: absolute; bottom: 30%; width: 12px; height: 50%;
  background: linear-gradient(90deg, #4a3a30, #2a1f1a, #3a2c24);
  border-radius: 2px;
  animation: clj-pillar 20s ease-in-out infinite;
}
.scn-cleander-judges .pillar-left { left: 15%; animation-delay: -6s; }
.scn-cleander-judges .pillar-right { right: 15%; animation-delay: 0s; }
.scn-cleander-judges .light-sconce {
  position: absolute; bottom: 60%; width: 8px; height: 14px;
  background: radial-gradient(circle, #d49a6a 0%, #a06030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(212,154,106,0.6);
  animation: clj-flicker 4s ease-in-out infinite alternate;
}
.scn-cleander-judges .sconce-left { left: 20%; }
.scn-cleander-judges .sconce-right { right: 20%; animation-delay: -2s; }
@keyframes clj-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes clj-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes clj-cleander { 0% { transform: translateX(-50%) rotate(-1deg); } 33% { transform: translateX(-48%) rotate(0deg); } 66% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes clj-generals { 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 clj-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } 100% { transform: scaleY(1); } }
@keyframes clj-flicker { 0% { box-shadow: 0 0 14px 5px rgba(212,154,106,0.4); opacity: 0.75; } 50% { box-shadow: 0 0 32px 12px rgba(212,154,106,0.8); opacity: 1; } 100% { box-shadow: 0 0 20px 7px rgba(212,154,106,0.5); opacity: 0.85; } }

/* Tissaphernes returns – tense, sunlit */
.scn-tissaphernes-returns-march {
  background:
    linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #DAA520 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-tissaphernes-returns-march .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 30%, transparent 100%);
  animation: tiss-sky 8s ease-in-out infinite alternate;
}
.scn-tissaphernes-returns-march .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFFFF0 0%, #FFD700 50%, #B8860B 100%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,215,0,0.6);
  animation: tiss-sun 6s ease-in-out infinite alternate;
}
.scn-tissaphernes-returns-march .dust {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: radial-gradient(ellipse at 30% 50%, rgba(210,180,140,0.5) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 50%, rgba(210,180,140,0.3) 0%, transparent 50%);
  filter: blur(6px);
  animation: tiss-dust 10s linear infinite;
}
.scn-tissaphernes-returns-march .column {
  position: absolute; bottom: 25%; left: 20%; width: 40%; height: 35%;
  background: linear-gradient(90deg, transparent 0%, #B8860B 10%, #DAA520 30%, #B8860B 50%, transparent 60%);
  clip-path: polygon(0% 100%, 100% 100%, 90% 0%, 10% 0%);
  animation: tiss-column 12s ease-in-out infinite alternate;
}
.scn-tissaphernes-returns-march .standard {
  position: absolute; bottom: 55%; left: 35%; width: 4px; height: 60px;
  background: #8B4513; transform: rotate(-5deg);
  animation: tiss-standard 4s ease-in-out infinite alternate;
}
.scn-tissaphernes-returns-march .standard::after {
  content: ''; position: absolute; top: -10px; left: -10px; width: 24px; height: 16px;
  background: linear-gradient(135deg, #DAA520 0%, #FFD700 50%, #B8860B 100%);
  border-radius: 20% 80% 50% 50%; transform: rotate(10deg);
}
.scn-tissaphernes-returns-march .figure-bride {
  position: absolute; bottom: 23%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 50%, #A0522D 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tiss-bride 4s ease-in-out infinite;
}
.scn-tissaphernes-returns-march .figure-bride::before {
  content: ''; position: absolute; top: -8px; left: -4px; width: 22px; height: 14px;
  background: radial-gradient(ellipse, #FFD700 0%, #B8860B 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  opacity: 0.7;
}
.scn-tissaphernes-returns-march .figure-leader {
  position: absolute; bottom: 24%; left: 55%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 50%, #2F1A0E 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: tiss-leader 3s ease-in-out infinite;
}
.scn-tissaphernes-returns-march .shadow {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: tiss-shadow 7s ease-in-out infinite alternate;
}
@keyframes tiss-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tiss-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,215,0,0.5); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px rgba(255,215,0,0.7); } 100% { transform: scale(0.95); box-shadow: 0 0 70px 25px rgba(255,215,0,0.5); } }
@keyframes tiss-dust { 0% { transform: translateX(0); opacity: 0.4; } 50% { opacity: 0.6; } 100% { transform: translateX(-50px); opacity: 0.3; } }
@keyframes tiss-column { 0% { transform: skewX(0deg); } 50% { transform: skewX(-2deg); } 100% { transform: skewX(2deg); } }
@keyframes tiss-standard { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-3deg); } }
@keyframes tiss-bride { 0% { transform: translate(0, 0) rotate(1deg); } 25% { transform: translate(2px, -2px) rotate(-1deg); } 50% { transform: translate(4px, 0) rotate(2deg); } 75% { transform: translate(1px, -1px) rotate(0deg); } 100% { transform: translate(0, 0) rotate(1deg); } }
@keyframes tiss-leader { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(3px, -1px) scale(1.02); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes tiss-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* Hellenes march separately – tense, sunlit */
.scn-hellenes-march-separately {
  background:
    linear-gradient(180deg, #87CEEB 0%, #FFF8DC 30%, #DAA520 70%, #CD853F 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 70%);
}
.scn-hellenes-march-separately .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 40%, transparent 100%);
  animation: hel-sky 10s ease-in-out infinite alternate;
}
.scn-hellenes-march-separately .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #CD853F 0%, #8B7355 50%, #6B4226 100%);
  clip-path: polygon(0% 30%, 100% 20%, 100% 100%, 0% 100%);
}
.scn-hellenes-march-separately .column-a {
  position: absolute; bottom: 20%; left: 5%; width: 35%; height: 50%;
  background: linear-gradient(90deg, transparent 0%, #8B4513 20%, #DAA520 40%, #8B4513 60%, transparent 80%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: hel-col-a 14s ease-in-out infinite alternate;
}
.scn-hellenes-march-separately .column-b {
  position: absolute; bottom: 20%; right: 5%; width: 35%; height: 50%;
  background: linear-gradient(90deg, transparent 0%, #8B4513 20%, #DAA520 40%, #8B4513 60%, transparent 80%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: hel-col-b 14s ease-in-out infinite alternate-reverse;
}
.scn-hellenes-march-separately .dust-a {
  position: absolute; bottom: 35%; left: 10%; width: 30%; height: 12%;
  background: radial-gradient(ellipse, rgba(210,180,140,0.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: hel-dust-a 12s linear infinite;
}
.scn-hellenes-march-separately .dust-b {
  position: absolute; bottom: 35%; right: 10%; width: 30%; height: 12%;
  background: radial-gradient(ellipse, rgba(210,180,140,0.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: hel-dust-b 12s linear infinite reverse;
}
.scn-hellenes-march-separately .spears {
  position: absolute; bottom: 55%; left: 25%; width: 50%; height: 50px;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #8B4513 8px, #8B4513 10px);
  transform: rotate(-5deg);
  opacity: 0.6;
  animation: hel-spears 5s ease-in-out infinite alternate;
}
@keyframes hel-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hel-col-a { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(-5px) skewX(-2deg); } 100% { transform: translateX(0) skewX(2deg); } }
@keyframes hel-col-b { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(5px) skewX(2deg); } 100% { transform: translateX(0) skewX(-2deg); } }
@keyframes hel-dust-a { 0% { transform: translateX(0); opacity: 0.3; } 50% { opacity: 0.6; } 100% { transform: translateX(-30px); opacity: 0.2; } }
@keyframes hel-dust-b { 0% { transform: translateX(0); opacity: 0.3; } 50% { opacity: 0.6; } 100% { transform: translateX(30px); opacity: 0.2; } }
@keyframes hel-spears { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Wall of Media – calm, sunlit */
.scn-wall-of-media {
  background:
    linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #CD853F 70%, #8B7355 100%),
    radial-gradient(ellipse at 50% 60%, #DAA520 0%, transparent 50%);
}
.scn-wall-of-media .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 50%, transparent 100%);
  animation: wall-sky 12s ease-in-out infinite alternate;
}
.scn-wall-of-media .wall-body {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 45%;
  background: linear-gradient(180deg, #BC8F8F 0%, #A0522D 30%, #8B4513 60%, #5C3317 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: wall-body 20s ease-in-out infinite alternate;
}
.scn-wall-of-media .brick-pattern {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 45%;
  background: repeating-linear-gradient(0deg, transparent, transparent 12px, rgba(0,0,0,0.1) 12px, rgba(0,0,0,0.1) 14px);
  background-size: 40px 40px;
  background-position: 0 0;
  filter: blur(0.5px);
  animation: wall-brick 30s linear infinite;
}
.scn-wall-of-media .bitumen-shadow {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #2F1A0E 0%, transparent 100%);
  opacity: 0.4;
  animation: wall-bitumen 8s ease-in-out infinite alternate;
}
.scn-wall-of-media .wall-top {
  position: absolute; bottom: 65%; left: 12%; width: 76%; height: 4%;
  background: #8B4513;
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: wall-top 6s ease-in-out infinite alternate;
}
.scn-wall-of-media .path {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  clip-path: polygon(0% 40%, 100% 30%, 100% 100%, 0% 100%);
  animation: wall-path 10s ease-in-out infinite alternate;
}
@keyframes wall-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wall-body { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes wall-brick { 0% { background-position: 0 0; } 100% { background-position: 0 40px; } }
@keyframes wall-bitumen { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }
@keyframes wall-top { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wall-path { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Canals Tigris – calm, sunlit */
.scn-canals-tigris {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #98FB98 60%, #8FBC8F 100%),
    radial-gradient(ellipse at 50% 80%, #FFD700 0%, transparent 60%);
}
.scn-canals-tigris .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #E0FFFF 40%, transparent 100%);
  animation: can-sky 14s ease-in-out infinite alternate;
}
.scn-canals-tigris .water {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #2E8B57 0%, #1E6B47 50%, #0D3B21 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: can-water 6s ease-in-out infinite alternate;
}
.scn-canals-tigris .bridge {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #DAA520 0%, #B8860B 100%);
  border-radius: 50% / 100% 100% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: can-bridge 8s ease-in-out infinite alternate;
}
.scn-canals-tigris .bridge::after {
  content: ''; position: absolute; bottom: -8px; left: 20%; width: 60%; height: 8px;
  background: linear-gradient(90deg, #8B4513, #DAA520, #8B4513);
  border-radius: 0 0 30% 30%;
}
.scn-canals-tigris .boat-1 {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  animation: can-boat1 12s ease-in-out infinite;
}
.scn-canals-tigris .boat-2 {
  position: absolute; bottom: 20%; left: 55%; width: 32px; height: 10px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  animation: can-boat2 14s ease-in-out infinite;
}
.scn-canals-tigris .ripples {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(255,255,255,0.1) 20px, rgba(255,255,255,0.1) 24px);
  background-size: 40px 100%;
  animation: can-ripple 4s linear infinite;
}
.scn-canals-tigris .cloud {
  position: absolute; top: 10%; left: 60%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: can-cloud 40s linear infinite;
}
.scn-canals-tigris .reeds {
  position: absolute; bottom: 18%; left: 5%; width: 8%; height: 30%;
  background: linear-gradient(0deg, #3CB371 0%, #2E8B57 40%, #1E6B47 100%);
  clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%);
  animation: can-reeds 5s ease-in-out infinite alternate;
}
@keyframes can-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes can-water { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(2px); } }
@keyframes can-bridge { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.98); } }
@keyframes can-boat1 { 0% { transform: translate(0, 0) rotate(2deg); } 25% { transform: translate(3px, -1px) rotate(-1deg); } 50% { transform: translate(6px, 0) rotate(0deg); } 75% { transform: translate(3px, 1px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes can-boat2 { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(-2px, 1px) rotate(1deg); } 50% { transform: translate(-4px, 0) rotate(0deg); } 75% { transform: translate(-2px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0) rotate(2deg); } }
@keyframes can-ripple { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes can-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes can-reeds { 0% { transform: scaleX(1) skewX(0deg); } 50% { transform: scaleX(1.05) skewX(2deg); } 100% { transform: scaleX(1) skewX(0deg); } }

/* soldiers-demand-pay-increase - dim interior, tense */
.scn-soldiers-demand-pay-increase {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0f0b0a 100%),
    radial-gradient(ellipse at 30% 50%, #4a3028 0%, transparent 70%);
}
.scn-soldiers-demand-pay-increase .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a2a24 0%, #1f1815 100%);
  animation: spd-wall 12s ease-in-out infinite alternate;
}
.scn-soldiers-demand-pay-increase .table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 10%;
  background: linear-gradient(180deg, #5a4035 0%, #3a2a1f 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: spd-table 5s ease-in-out infinite;
}
.scn-soldiers-demand-pay-increase .soldier {
  position: absolute; bottom: 30%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a22 0%, #1f1812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-soldiers-demand-pay-increase .soldier-a { left: 20%; animation: spd-soldier-a 3s ease-in-out infinite; }
.scn-soldiers-demand-pay-increase .soldier-b { left: 38%; animation: spd-soldier-b 3.5s ease-in-out infinite 0.5s; }
.scn-soldiers-demand-pay-increase .soldier-c { left: 56%; animation: spd-soldier-c 4s ease-in-out infinite 1s; }
.scn-soldiers-demand-pay-increase .coin-pile {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #d4a060 0%, #a07040 60%, #604020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: spd-coin 2s ease-in-out infinite alternate;
}
.scn-soldiers-demand-pay-increase .lantern {
  position: absolute; top: 15%; right: 12%; width: 14px; height: 24px;
  background: radial-gradient(circle at 50% 60%, #f0a040 0%, #804020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.3);
  animation: spd-lantern 4s ease-in-out infinite alternate;
}
.scn-soldiers-demand-pay-increase .shadow {
  position: absolute; bottom: 20%; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: spd-shadow 7s ease-in-out infinite alternate;
}
@keyframes spd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes spd-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes spd-soldier-a { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-0.5deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes spd-soldier-b { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(3px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes spd-soldier-c { 0%, 100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.02); } }
@keyframes spd-coin { 0% { transform: translateY(0) scaleX(1); box-shadow: 0 2px 8px rgba(0,0,0,0.5); } 100% { transform: translateY(-2px) scaleX(1.1); box-shadow: 0 4px 12px rgba(0,0,0,0.6); } }
@keyframes spd-lantern { 0% { box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.2); opacity: 0.9; } 50% { box-shadow: 0 0 35px 12px #f0a040, 0 0 70px 24px rgba(240,160,64,0.4); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #c08040, 0 0 50px 16px rgba(192,128,64,0.3); opacity: 0.85; } }
@keyframes spd-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* issi-fleet-arrives - sunlit coastal calm */
.scn-issi-fleet-arrives {
  background:
    linear-gradient(180deg, #b8d4e8 0%, #d8edf4 40%, #e8f4f8 100%),
    radial-gradient(ellipse at 60% 20%, #fff8d0 0%, transparent 60%);
}
.scn-issi-fleet-arrives .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6caed4 0%, #a8d4ec 40%, transparent 100%);
  animation: ifa-sky 20s ease-in-out infinite alternate;
}
.scn-issi-fleet-arrives .sea {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 55%;
  background: linear-gradient(180deg, #1f6c8a 0%, #0e4a5e 100%);
  animation: ifa-sea 10s ease-in-out infinite;
}
.scn-issi-fleet-arrives .city-wall {
  position: absolute; bottom: 40%; left: 10%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: ifa-wall 15s ease-in-out infinite alternate;
}
.scn-issi-fleet-arrives .ship {
  position: absolute; bottom: 30%;
  width: 80px; height: 25px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-issi-fleet-arrives .ship-a { left: 45%; animation: ifa-ship-a 12s ease-in-out infinite; }
.scn-issi-fleet-arrives .ship-b { left: 60%; animation: ifa-ship-b 14s ease-in-out infinite 2s; }
.scn-issi-fleet-arrives .sail {
  position: absolute; bottom: 48%;
  width: 0; height: 0;
  border-left: 20px solid transparent; border-right: 20px solid transparent; border-bottom: 40px solid #f0e8d0;
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.2));
}
.scn-issi-fleet-arrives .sail-a { left: 50%; animation: ifa-sail-a 6s ease-in-out infinite; }
.scn-issi-fleet-arrives .sail-b { left: 65%; animation: ifa-sail-b 6s ease-in-out infinite 1s; }
.scn-issi-fleet-arrives .figure {
  position: absolute; bottom: 38%; left: 48%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ifa-figure 4s ease-in-out infinite alternate;
}
@keyframes ifa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes ifa-sea { 0% { background-position: 0% 0%; } 50% { background-position: 2% -2%; } 100% { background-position: -2% 0%; } }
@keyframes ifa-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ifa-ship-a { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(3px) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(5px) translateY(0) rotate(0); } 75% { transform: translateX(3px) translateY(1px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ifa-ship-b { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-0.5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ifa-sail-a { 0%, 100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.05); } }
@keyframes ifa-sail-b { 0%, 100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-2px) scaleX(1.05); } }
@keyframes ifa-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }

/* cheirisophus-arrives - sunlit naval arrival, calm */
.scn-cheirisophus-arrives {
  background:
    linear-gradient(180deg, #a0cce8 0%, #c8e0f0 50%, #d8eef4 100%),
    radial-gradient(ellipse at 30% 30%, #fff8e0 0%, transparent 60%);
}
.scn-cheirisophus-arrives .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a9ec8 0%, #8ac0e0 40%, transparent 100%);
  animation: ca-sky 25s ease-in-out infinite alternate;
}
.scn-cheirisophus-arrives .bg-sea {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, #1a5c78 0%, #0e3a4e 100%);
  animation: ca-sea 12s ease-in-out infinite;
}
.scn-cheirisophus-arrives .galley {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ca-galley 8s ease-in-out infinite;
}
.scn-cheirisophus-arrives .mast {
  position: absolute; bottom: 55%; left: 47%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2a10 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ca-mast 5s ease-in-out infinite alternate;
}
.scn-cheirisophus-arrives .sail-main {
  position: absolute; bottom: 60%; left: 40%;
  width: 0; height: 0;
  border-left: 30px solid transparent; border-right: 30px solid transparent; border-bottom: 50px solid #f0e8d8;
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.2));
  animation: ca-sail-main 7s ease-in-out infinite;
}
.scn-cheirisophus-arrives .sail-jib {
  position: absolute; bottom: 52%; left: 60%;
  width: 0; height: 0;
  border-left: 15px solid transparent; border-right: 15px solid transparent; border-bottom: 35px solid #f0e8d8;
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.2));
  animation: ca-sail-jib 7s ease-in-out infinite 1s;
}
.scn-cheirisophus-arrives .rower {
  position: absolute; bottom: 28%;
  width: 10px; height: 20px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30%;
}
.scn-cheirisophus-arrives .rower-1 { left: 35%; animation: ca-rower1 2s ease-in-out infinite; }
.scn-cheirisophus-arrives .rower-2 { left: 42%; animation: ca-rower2 2.2s ease-in-out infinite 0.5s; }
.scn-cheirisophus-arrives .figure-helm {
  position: absolute; bottom: 35%; left: 50%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-helm 4s ease-in-out infinite alternate;
}
@keyframes ca-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ca-sea { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ca-galley { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(0.3deg); } 50% { transform: translateX(4px) rotate(0); } 75% { transform: translateX(2px) rotate(-0.3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ca-mast { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes ca-sail-main { 0%, 100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(1.05) rotate(-1deg); } }
@keyframes ca-sail-jib { 0%, 100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.05) rotate(1deg); } }
@keyframes ca-rower1 { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(10deg); } }
@keyframes ca-rower2 { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-10deg); } }
@keyframes ca-helm { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }

/* gates-of-cilicia-and-syria - sunlit tense fortress */
.scn-gates-of-cilicia-and-syria {
  background:
    linear-gradient(180deg, #d4b890 0%, #b89870 40%, #9a7a5a 100%),
    radial-gradient(ellipse at 40% 50%, #e8d8c0 0%, transparent 70%);
}
.scn-gates-of-cilicia-and-syria .bg-mountains {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 0 0 30% 30%;
  animation: gcs-mountains 20s ease-in-out infinite alternate;
}
.scn-gates-of-cilicia-and-syria .gate-inner {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: gcs-gate-inner 8s ease-in-out infinite alternate;
}
.scn-gates-of-cilicia-and-syria .gate-outer {
  position: absolute; bottom: 30%; left: 50%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: gcs-gate-outer 8s ease-in-out infinite alternate 0.5s;
}
.scn-gates-of-cilicia-and-syria .wall-left {
  position: absolute; bottom: 25%; left: 0; width: 35%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 10% 0 0;
  animation: gcs-wall-left 12s ease-in-out infinite;
}
.scn-gates-of-cilicia-and-syria .wall-right {
  position: absolute; bottom: 25%; right: 0; width: 35%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 0 0 0;
  animation: gcs-wall-right 12s ease-in-out infinite 1s;
}
.scn-gates-of-cilicia-and-syria .shadow-arch {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: gcs-shadow-arch 6s ease-in-out infinite alternate;
}
.scn-gates-of-cilicia-and-syria .figure-guard {
  position: absolute; bottom: 28%; left: 42%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gcs-guard 3.5s ease-in-out infinite alternate;
}
@keyframes gcs-mountains { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes gcs-gate-inner { 0% { transform: translateY(0) scaleY(1); box-shadow: 0 8px 20px rgba(0,0,0,0.5); } 50% { transform: translateY(-2px) scaleY(1.02); box-shadow: 0 12px 28px rgba(0,0,0,0.6); } 100% { transform: translateY(0) scaleY(0.98); box-shadow: 0 8px 20px rgba(0,0,0,0.5); } }
@keyframes gcs-gate-outer { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(0.99); } }
@keyframes gcs-wall-left { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gcs-wall-right { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gcs-shadow-arch { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes gcs-guard { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* seuthes-promises-towns - tense, dim interior */
.scn-seuthes-promises-towns { background: linear-gradient(180deg, #1a1220 0%, #2a1a28 40%, #3a1e2a 100%), radial-gradient(ellipse at 50% 60%, #4a2a3a 0%, transparent 70%); }
.scn-seuthes-promises-towns .tent { position:absolute; inset:10% 5% 20% 5%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: stp-tent 12s ease-in-out infinite alternate; }
.scn-seuthes-promises-towns .table { position:absolute; bottom:30%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: stp-table 6s ease-in-out infinite; }
.scn-seuthes-promises-towns .map { position:absolute; bottom:32%; left:35%; right:35%; height:12%; background: linear-gradient(135deg, #c8a868 0%, #a08040 50%, #806030 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: stp-map 8s ease-in-out infinite; }
.scn-seuthes-promises-towns .figure-seuthes { position:absolute; bottom:25%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: stp-fig-stp 4s ease-in-out infinite; }
.scn-seuthes-promises-towns .figure-xenophon { position:absolute; bottom:25%; right:20%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: stp-fig-xen 4s ease-in-out infinite 0.5s; }
.scn-seuthes-promises-towns .lantern { position:absolute; bottom:35%; left:48%; width:10px; height:12px; background: radial-gradient(circle, #e0a050 0%, #805030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px rgba(224,160,80,.6), 0 0 40px 12px rgba(224,160,80,.3); animation: stp-lantern 3s ease-in-out infinite alternate; }
.scn-seuthes-promises-towns .shadow { position:absolute; bottom:20%; left:15%; right:15%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 60%); filter: blur(4px); animation: stp-shadow 6s ease-in-out infinite; }
@keyframes stp-tent  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(0.98) translateY(1px) } }
@keyframes stp-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes stp-map { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-5deg) } }
@keyframes stp-fig-stp { 0% { transform: rotate(-2deg) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-2deg) } }
@keyframes stp-fig-xen { 0% { transform: rotate(2deg) } 25% { transform: rotate(-2deg) translateY(-2px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(2deg) } }
@keyframes stp-lantern { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); box-shadow: 0 0 30px 10px rgba(224,160,80,.8); } 100% { opacity:.8; transform: scale(0.95); } }
@keyframes stp-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* xenophon-considers-retreat - tense, dim interior */
.scn-xenophon-considers-retreat { background: linear-gradient(180deg, #10141a 0%, #1a2028 50%, #2a3038 100%), radial-gradient(ellipse at 50% 70%, #3a3a4a 0%, transparent 60%); }
.scn-xenophon-considers-retreat .tent { position:absolute; inset:8% 3% 15% 3%; background: linear-gradient(180deg, #2a3038 0%, #10141a 100%); border-radius: 15% 15% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: xcr-tent 15s ease-in-out infinite alternate; }
.scn-xenophon-considers-retreat .brazier { position:absolute; bottom:35%; left:45%; width:20px; height:15px; background: radial-gradient(circle, #f0a050 0%, #b06030 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 8px rgba(240,160,80,.5), 0 0 60px 20px rgba(240,160,80,.2); animation: xcr-brazier 4s ease-in-out infinite alternate; }
.scn-xenophon-considers-retreat .map { position:absolute; bottom:30%; left:25%; right:25%; height:14%; background: linear-gradient(135deg, #c8a060 0%, #a08040 50%, #806030 100%); border-radius: 4px; transform: rotate(3deg); box-shadow: 0 3px 8px rgba(0,0,0,.5); animation: xcr-map 10s ease-in-out infinite; }
.scn-xenophon-considers-retreat .figure-xenophon { position:absolute; bottom:22%; left:35%; width:22px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xcr-fig-xen 5s ease-in-out infinite; }
.scn-xenophon-considers-retreat .cloak { position:absolute; bottom:20%; left:32%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30%; transform: rotate(-10deg); opacity:.8; animation: xcr-cloak 6s ease-in-out infinite; }
.scn-xenophon-considers-retreat .stool { position:absolute; bottom:20%; left:42%; width:15px; height:10px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: xcr-stool 8s ease-in-out infinite; }
@keyframes xcr-tent { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(2px) } }
@keyframes xcr-brazier { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.15); box-shadow: 0 0 40px 12px rgba(240,160,80,.7); } 100% { opacity:.8; transform: scale(0.95) } }
@keyframes xcr-map { 0% { transform: rotate(3deg) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(3deg) } }
@keyframes xcr-fig-xen { 0% { transform: rotate(2deg) } 20% { transform: rotate(-3deg) translateY(-2px) } 40% { transform: rotate(1deg) } 60% { transform: rotate(-2deg) translateY(-1px) } 80% { transform: rotate(3deg) } 100% { transform: rotate(2deg) } }
@keyframes xcr-cloak { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-8deg) scale(1.05) translateX(2px) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes xcr-stool { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* generals-refuse-herclides - calm, dim interior */
.scn-generals-refuse-herclides { background: linear-gradient(180deg, #1a1820 0%, #2a2832 50%, #3a3842 100%), radial-gradient(ellipse at 50% 50%, #4a4852 0%, transparent 60%); }
.scn-generals-refuse-herclides .tent { position:absolute; inset:5% 5% 10% 5%; background: linear-gradient(180deg, #3a3842 0%, #1a1820 100%); border-radius: 25% 25% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.4); animation: grf-tent 18s ease-in-out infinite alternate; }
.scn-generals-refuse-herclides .lamp { position:absolute; bottom:35%; left:48%; width:12px; height:15px; background: radial-gradient(circle, #e0c080 0%, #a08050 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 25px 8px rgba(224,192,128,.5), 0 0 50px 18px rgba(224,192,128,.2); animation: grf-lamp 6s ease-in-out infinite alternate; }
.scn-generals-refuse-herclides .figure-timasion { position:absolute; bottom:22%; left:18%; width:20px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: grf-fig-tim 7s ease-in-out infinite; }
.scn-generals-refuse-herclides .figure-phryniscus { position:absolute; bottom:22%; left:42%; width:20px; height:42px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: grf-fig-phr 7s ease-in-out infinite 1s; }
.scn-generals-refuse-herclides .figure-cleanor { position:absolute; bottom:22%; right:18%; width:20px; height:42px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: grf-fig-cle 7s ease-in-out infinite 2s; }
@keyframes grf-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) translateY(-1px) } 100% { transform: scaleY(0.99) translateY(1px) } }
@keyframes grf-lamp { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05); box-shadow: 0 0 30px 10px rgba(224,192,128,.6); } 100% { opacity:.9; transform: scale(0.98) } }
@keyframes grf-fig-tim { 0% { transform: rotate(0deg) } 33% { transform: rotate(2deg) translateY(-1px) } 66% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes grf-fig-phr { 0% { transform: rotate(0deg) } 33% { transform: rotate(-2deg) translateY(-1px) } 66% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes grf-fig-cle { 0% { transform: rotate(0deg) } 33% { transform: rotate(1deg) translateY(-1px) } 66% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }

/* seuthes-upbraids-heraclides - tense, dim interior */
.scn-seuthes-upbraids-heraclides { background: linear-gradient(180deg, #1a1020 0%, #2a1a2e 40%, #3a203a 100%), radial-gradient(ellipse at 50% 30%, #4a2a4a 0%, transparent 70%); }
.scn-seuthes-upbraids-heraclides .tent { position:absolute; inset:8% 5% 15% 5%; background: linear-gradient(180deg, #3a203a 0%, #1a1020 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: suh-tent 10s ease-in-out infinite alternate; }
.scn-seuthes-upbraids-heraclides .curtain { position:absolute; top:5%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: suh-curtain 8s ease-in-out infinite; }
.scn-seuthes-upbraids-heraclides .figure-seuthes { position:absolute; bottom:22%; left:15%; width:22px; height:44px; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: suh-fig-stp 3s ease-in-out infinite; }
.scn-seuthes-upbraids-heraclides .figure-heraclides { position:absolute; bottom:20%; right:20%; width:20px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: suh-fig-her 3s ease-in-out infinite 0.5s; }
.scn-seuthes-upbraids-heraclides .stool { position:absolute; bottom:18%; left:35%; width:18px; height:8px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: suh-stool 6s ease-in-out infinite; }
.scn-seuthes-upbraids-heraclides .lamp { position:absolute; bottom:32%; left:45%; width:10px; height:12px; background: radial-gradient(circle, #e08040 0%, #a05020 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px rgba(224,128,64,.6), 0 0 40px 12px rgba(224,128,64,.3); animation: suh-lamp 2.5s ease-in-out infinite alternate; }
@keyframes suh-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) translateY(-2px) } 100% { transform: scaleY(0.97) translateY(2px) } }
@keyframes suh-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(3px) } }
@keyframes suh-fig-stp { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-3px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(-5deg) } }
@keyframes suh-fig-her { 0% { transform: rotate(3deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-1px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(4deg) translateY(-1px) } 100% { transform: rotate(3deg) } }
@keyframes suh-stool { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes suh-lamp { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2); box-shadow: 0 0 30px 10px rgba(224,128,64,.8); } 100% { opacity:.7; transform: scale(0.95) } }

.scn-generals-agree-to-night-march {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1220 50%, #2a1a2a 100%), radial-gradient(ellipse at 30% 60%, #3a2a3a 0%, transparent 70%);
}
.scn-generals-agree-to-night-march .tent-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1220 0%, #0a0810 100%); animation: gxm-wall 20s ease-in-out infinite alternate;
}
.scn-generals-agree-to-night-march .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: gxm-table 12s ease-in-out infinite;
}
.scn-generals-agree-to-night-march .map {
  position: absolute; bottom: 24%; left: 35%; width: 30%; height: 6%; background: linear-gradient(135deg, #8a7a5a 0%, #4a3a2a 100%); transform: skewX(-5deg); border-radius: 2px; animation: gxm-map 15s ease-in-out infinite;
}
.scn-generals-agree-to-night-march .lantern-glow {
  position: absolute; bottom: 26%; left: 48%; width: 20px; height: 20px; background: radial-gradient(circle, #ffd080 0%, #b06020 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 10px #b06020, 0 0 80px 20px rgba(176,96,32,.5); animation: gxm-lantern 3s ease-in-out infinite alternate;
}
.scn-generals-agree-to-night-march .figure {
  position: absolute; bottom: 16%; width: 20px; height: 50px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gxm-figure 5s ease-in-out infinite;
}
.scn-generals-agree-to-night-march .gen-left { left: 28%; animation-delay: -1s; }
.scn-generals-agree-to-night-march .gen-right { left: 58%; animation-delay: 0s; }
.scn-generals-agree-to-night-march .brazier {
  position: absolute; bottom: 20%; left: 22%; width: 12px; height: 12px; background: radial-gradient(circle, #ff8030 0%, #ff4010 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #ff4010; animation: gxm-brazier 2.5s ease-in-out infinite alternate;
}
@keyframes gxm-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes gxm-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes gxm-map { 0%,100% { transform: skewX(-5deg) translateX(0) } 50% { transform: skewX(-3deg) translateX(2px) } }
@keyframes gxm-lantern { 0% { box-shadow: 0 0 30px 8px #b06020; opacity: .8 } 50% { box-shadow: 0 0 50px 15px #ffd080; opacity: 1 } 100% { box-shadow: 0 0 35px 10px #b06020; opacity: .9 } }
@keyframes gxm-figure { 0%,100% { transform: translateY(0) rotate(-2deg) } 33% { transform: translateY(-5px) rotate(1deg) } 66% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes gxm-brazier { 0% { transform: scale(1); opacity: .9 } 50% { transform: scale(1.15); opacity: 1 } 100% { transform: scale(.95); opacity: .8 } }

.scn-seuthes-adopts-greek-formation {
  background: linear-gradient(180deg, #0f1428 0%, #1a2240 50%, #2a3a5a 100%), radial-gradient(ellipse at 50% 100%, #3a4a6a 0%, transparent 70%);
}
.scn-seuthes-adopts-greek-formation .night-sky {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #0a0e20 0%, #1a2a4a 100%); animation: sgf-sky 25s ease-in-out infinite alternate;
}
.scn-seuthes-adopts-greek-formation .moon {
  position: absolute; top: 12%; right: 25%; width: 40px; height: 40px; background: radial-gradient(circle, #c8d8e8 0%, #8898b8 60%); border-radius: 50%; box-shadow: 0 0 30px 10px #8898b8, 0 0 60px 20px rgba(136,152,184,.4); animation: sgf-moon 20s ease-in-out infinite;
}
.scn-seuthes-adopts-greek-formation .hill-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: sgf-hills 40s ease-in-out infinite alternate;
}
.scn-seuthes-adopts-greek-formation .hill-mid {
  position: absolute; bottom: 20%; left: -5%; width: 110%; height: 18%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.4); animation: sgf-hills 60s ease-in-out infinite alternate-reverse;
}
.scn-seuthes-adopts-greek-formation .figure-seuthes {
  position: absolute; bottom: 18%; left: 30%; width: 16px; height: 40px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sgf-figure 6s ease-in-out infinite;
}
.scn-seuthes-adopts-greek-formation .soldier-line {
  position: absolute; bottom: 18%; left: 40%; width: 100px; height: 40px; background: repeating-linear-gradient(90deg, #0a0a1a 0px, #0a0a1a 4px, transparent 4px, transparent 10px); animation: sgf-soldiers 8s ease-in-out infinite;
}
@keyframes sgf-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes sgf-moon { 0%,100% { transform: translateY(0) } 50% { transform: translateY(4px) } }
@keyframes sgf-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes sgf-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 33% { transform: translateY(-3px) rotate(1deg) } 66% { transform: translateY(-1px) rotate(0) } }
@keyframes sgf-soldiers { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) translateY(-1px) } }

.scn-night-march-at-midnight {
  background: linear-gradient(180deg, #050510 0%, #101028 40%, #1c1c3a 100%), radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%);
}
.scn-night-march-at-midnight .dark-sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #080820 0%, #0c0c28 100%); animation: nmm-sky 30s ease-in-out infinite alternate;
}
.scn-night-march-at-midnight .dark-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #0a0a1a 0%, #020210 100%); animation: nmm-ground 20s ease-in-out infinite;
}
.scn-night-march-at-midnight .marcher {
  position: absolute; bottom: 35%; width: 14px; height: 38px; background: linear-gradient(180deg, #12122a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nmm-walk 3s ease-in-out infinite;
}
.scn-night-march-at-midnight .nmm-m1 { left: 20%; animation-delay: 0s; }
.scn-night-march-at-midnight .nmm-m2 { left: 35%; animation-delay: -1s; }
.scn-night-march-at-midnight .nmm-m3 { left: 50%; animation-delay: -2s; }
.scn-night-march-at-midnight .lantern {
  position: absolute; bottom: 40%; width: 8px; height: 8px; background: radial-gradient(circle, #ffd080 0%, #b06020 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 12px 4px #b06020; animation: nmm-lantern 2s ease-in-out infinite alternate;
}
.scn-night-march-at-midnight .nmm-l1 { left: 22%; animation-delay: 0s; }
.scn-night-march-at-midnight .nmm-l2 { left: 52%; animation-delay: -1.3s; }
@keyframes nmm-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes nmm-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes nmm-walk { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(8px) translateY(-4px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-8px) translateY(-4px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(3deg) } }
@keyframes nmm-lantern { 0% { transform: translateY(0) rotate(-5deg); opacity: .7 } 50% { transform: translateY(-3px) rotate(5deg); opacity: 1 } 100% { transform: translateY(0) rotate(0); opacity: .8 } }

.scn-seuthes-scouts-ahead {
  background: linear-gradient(180deg, #2a1a10 0%, #4a3020 30%, #6a5040 60%, #8a7a6a 100%), radial-gradient(ellipse at 50% 0%, #d0c0a0 0%, transparent 70%);
}
.scn-seuthes-scouts-ahead .dawn-sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #d0b080 0%, #f0d8b0 40%, #e8c8a0 100%); animation: ssa-dawn 12s ease-in-out infinite alternate;
}
.scn-seuthes-scouts-ahead .snow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 100%); animation: ssa-snow 20s ease-in-out infinite;
}
.scn-seuthes-scouts-ahead .horse-rider {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 28px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ssa-horse 3.5s ease-in-out infinite;
}
.scn-seuthes-scouts-ahead .tree {
  position: absolute; bottom: 35%; width: 12px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 60% 60%; animation: ssa-tree 15s ease-in-out infinite alternate;
}
.scn-seuthes-scouts-ahead .t-left { left: 15%; }
.scn-seuthes-scouts-ahead .t-right { left: 75%; animation-delay: -5s; }
.scn-seuthes-scouts-ahead .footprints {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 8px; background: repeating-linear-gradient(90deg, #8a7a6a 0px, #8a7a6a 4px, transparent 4px, transparent 12px); opacity: .5; animation: ssa-footprints 8s linear infinite;
}
@keyframes ssa-dawn { 0% { opacity: .8; background-position: 0% 0% } 50% { opacity: 1; background-position: 50% 0% } 100% { opacity: .9; background-position: 100% 0% } }
@keyframes ssa-snow { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ssa-horse { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-3px) rotate(1deg) } 50% { transform: translateX(12px) translateY(0) rotate(0) } 75% { transform: translateX(6px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes ssa-tree { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes ssa-footprints { 0% { background-position: 0 0 } 100% { background-position: -100px 0 } }

/* Scene 1: generals-plot-to-sail-phasis */
.scn-generals-plot-to-sail-phasis {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a0e 40%, #0e0a06 80%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-generals-plot-to-sail-phasis .tent-wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,15,10,.8) 0%, rgba(10,7,4,.95) 100%); animation: gps-tent 20s ease-in-out infinite; }
.scn-generals-plot-to-sail-phasis .table { position:absolute; bottom:20%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 10% / 20%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: gps-table 8s ease-in-out infinite alternate; }
.scn-generals-plot-to-sail-phasis .map { position:absolute; bottom:22%; left:30%; width:18%; height:6%; background: linear-gradient(135deg, #5a4a3a 0%, #8a7a5a 50%, #5a4a3a 100%); border-radius: 4px; transform: rotate(-5deg); opacity:.7; animation: gps-map 12s ease-in-out infinite; }
.scn-generals-plot-to-sail-phasis .lamp { position:absolute; bottom:25%; left:50%; width:12px; height:16px; margin-left:-6px; background: radial-gradient(circle, #e0a030 0%, #a06020 60%); border-radius: 50% 50% 60% 60%; box-shadow: 0 0 30px 10px rgba(200,100,20,.5), 0 0 60px 20px rgba(200,100,20,.2); animation: gps-lamp 3s ease-in-out infinite alternate; }
.scn-generals-plot-to-sail-phasis .figure-a { position:absolute; bottom:10%; left:20%; width:24px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gps-figA 5s ease-in-out infinite; }
.scn-generals-plot-to-sail-phasis .figure-b { position:absolute; bottom:12%; left:45%; width:22px; height:46px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gps-figB 6s ease-in-out infinite; }
.scn-generals-plot-to-sail-phasis .figure-c { position:absolute; bottom:10%; left:65%; width:20px; height:44px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gps-figC 7s ease-in-out infinite; }
@keyframes gps-tent { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gps-table { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes gps-map { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-6deg) scale(1) } }
@keyframes gps-lamp { 0% { transform: scaleY(1); box-shadow: 0 0 30px 10px rgba(200,100,20,.5), 0 0 60px 20px rgba(200,100,20,.2) } 50% { transform: scaleY(1.05); box-shadow: 0 0 40px 15px rgba(200,100,20,.6), 0 0 80px 30px rgba(200,100,20,.3) } 100% { transform: scaleY(1); box-shadow: 0 0 30px 10px rgba(200,100,20,.5), 0 0 60px 20px rgba(200,100,20,.2) } }
@keyframes gps-figA { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(1px) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes gps-figB { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes gps-figC { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }

/* Scene 2: generals-conciliate-officers */
.scn-generals-conciliate-officers {
  background: linear-gradient(180deg, #1e1820 0%, #2a1e12 40%, #0e0804 80%), radial-gradient(ellipse at 40% 35%, #3a2a1a 0%, transparent 70%);
}
.scn-generals-conciliate-officers .bg-tent { position:absolute; inset:0; background: linear-gradient(135deg, rgba(20,15,12,.8) 0%, rgba(10,8,6,.95) 100%); animation: gco-tent 15s ease-in-out infinite; }
.scn-generals-conciliate-officers .lamp-low { position:absolute; bottom:30%; left:35%; width:10px; height:14px; background: radial-gradient(circle, #d09030 0%, #a06020 60%); border-radius: 50%; box-shadow: 0 0 25px 8px rgba(200,120,20,.4), 0 0 50px 15px rgba(200,120,20,.15); animation: gco-lamp 3.5s ease-in-out infinite alternate; }
.scn-generals-conciliate-officers .officer-left { position:absolute; bottom:15%; left:22%; width:22px; height:48px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gco-left 5s ease-in-out infinite; }
.scn-generals-conciliate-officers .officer-right { position:absolute; bottom:15%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gco-right 6s ease-in-out infinite; }
.scn-generals-conciliate-officers .hand-gesture { position:absolute; bottom:35%; left:40%; width:12px; height:20px; background: #1a1410; border-radius: 40% 40% 20% 20%; transform-origin: bottom left; animation: gco-hand 4s ease-in-out infinite; }
.scn-generals-conciliate-officers .shadow-figures { position:absolute; bottom:12%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, rgba(10,8,6,.6) 0%, transparent 100%); border-radius: 40% 40% 0 0; animation: gco-shadows 12s ease-in-out infinite alternate; }
.scn-generals-conciliate-officers .ground-shadow { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 0 0 20% 20%; animation: gco-ground 10s ease-in-out infinite; }
@keyframes gco-tent { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes gco-lamp { 0% { transform: scaleY(1); box-shadow: 0 0 25px 8px rgba(200,120,20,.4), 0 0 50px 15px rgba(200,120,20,.15) } 50% { transform: scaleY(1.06); box-shadow: 0 0 35px 12px rgba(200,120,20,.5), 0 0 70px 25px rgba(200,120,20,.25) } 100% { transform: scaleY(1); box-shadow: 0 0 25px 8px rgba(200,120,20,.4), 0 0 50px 15px rgba(200,120,20,.15) } }
@keyframes gco-left { 0% { transform: translateY(0) rotate(2deg) } 30% { transform: translateY(-1px) rotate(-1deg) } 60% { transform: translateY(1px) rotate(3deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes gco-right { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-1px) rotate(1deg) } 60% { transform: translateY(1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes gco-hand { 0% { transform: rotate(-10deg) scaleY(1) } 25% { transform: rotate(0deg) scaleY(1.1) } 50% { transform: rotate(10deg) scaleY(1) } 75% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-10deg) scaleY(1) } }
@keyframes gco-shadows { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes gco-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }

/* Scene 3: soldier-anger-at-xenophon */
.scn-soldier-anger-at-xenophon {
  background: linear-gradient(180deg, #0e0a0e 0%, #1a0e08 40%, #050302 80%), radial-gradient(ellipse at 60% 40%, #2a180e 0%, transparent 70%);
}
.scn-soldier-anger-at-xenophon .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,6,4,.9) 0%, rgba(4,2,1,.95) 100%); animation: sax-bg 12s ease-in-out infinite; }
.scn-soldier-anger-at-xenophon .lamp-flicker { position:absolute; bottom:40%; left:70%; width:8px; height:10px; background: radial-gradient(circle, #d09020 0%, #a06010 60%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(180,90,15,.5), 0 0 40px 12px rgba(180,90,15,.2); animation: sax-lamp 2.5s ease-in-out infinite alternate; }
.scn-soldier-anger-at-xenophon .soldier-body { position:absolute; bottom:12%; left:35%; width:28px; height:56px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sax-soldier 3s ease-in-out infinite; }
.scn-soldier-anger-at-xenophon .xenophon-body { position:absolute; bottom:15%; left:60%; width:24px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sax-xeno 4s ease-in-out infinite; }
.scn-soldier-anger-at-xenophon .spear { position:absolute; bottom:18%; left:32%; width:3px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); transform: rotate(15deg); transform-origin: bottom center; animation: sax-spear 5s ease-in-out infinite; }
.scn-soldier-anger-at-xenophon .tent-pole { position:absolute; bottom:0; left:50%; width:4px; height:90%; background: linear-gradient(180deg, #2a1a0e 0%, #0e0a04 100%); transform: translateX(-50%); border-radius: 2px; opacity:.7; animation: sax-pole 20s linear infinite; }
@keyframes sax-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sax-lamp { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px 6px rgba(180,90,15,.5), 0 0 40px 12px rgba(180,90,15,.2) } 50% { transform: scaleY(1.08) scaleX(.95); box-shadow: 0 0 30px 10px rgba(180,90,15,.6), 0 0 60px 20px rgba(180,90,15,.3) } 100% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px 6px rgba(180,90,15,.5), 0 0 40px 12px rgba(180,90,15,.2) } }
@keyframes sax-soldier { 0% { transform: translateY(0) rotate(-2deg) } 20% { transform: translateY(-3px) rotate(4deg) } 40% { transform: translateY(0) rotate(-3deg) } 60% { transform: translateY(-2px) rotate(1deg) } 80% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sax-xeno { 0% { transform: translateY(0) rotate(1deg) scaleX(1) } 30% { transform: translateY(-2px) rotate(-2deg) scaleX(.98) } 60% { transform: translateY(0) rotate(0deg) scaleX(1) } 100% { transform: translateY(0) rotate(1deg) scaleX(1) } }
@keyframes sax-spear { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes sax-pole { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.01) } 100% { transform: translateX(-50%) scaleY(1) } }

/* Scene 4: xenophon-summon-assembly */
.scn-xenophon-summon-assembly {
  background: linear-gradient(180deg, #4a4a5a 0%, #5a5a4a 30%, #3a3a2e 60%, #2a2a22 100%), radial-gradient(ellipse at 50% 0%, #6a6a5a 0%, transparent 80%);
}
.scn-xenophon-summon-assembly .overcast-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a5a5a 0%, #4a4a4a 50%, #3a3a3a 100%); animation: xsa-sky 18s ease-in-out infinite alternate; }
.scn-xenophon-summon-assembly .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1e 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: xsa-ground 10s ease-in-out infinite; }
.scn-xenophon-summon-assembly .xenophon-figure { position:absolute; bottom:45%; left:45%; width:26px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xsa-xeno 4s ease-in-out infinite; }
.scn-xenophon-summon-assembly .herald { position:absolute; bottom:38%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xsa-herald 5s ease-in-out infinite; }
.scn-xenophon-summon-assembly .crowd-left { position:absolute; bottom:30%; left:5%; right:55%; height:25%; background: linear-gradient(180deg, rgba(30,30,25,.8) 0%, rgba(10,10,8,.9) 100%); border-radius: 50% 60% 0 0; filter: blur(4px); animation: xsa-crowd 8s ease-in-out infinite alternate; }
.scn-xenophon-summon-assembly .crowd-right { position:absolute; bottom:30%; left:60%; right:5%; height:25%; background: linear-gradient(180deg, rgba(30,30,25,.8) 0%, rgba(10,10,8,.9) 100%); border-radius: 60% 50% 0 0; filter: blur(4px); animation: xsa-crowd 9s ease-in-out infinite alternate; }
.scn-xenophon-summon-assembly .banner { position:absolute; bottom:48%; left:40%; width:4px; height:40px; background: #3a2a1a; transform: rotate(-8deg); transform-origin: bottom center; animation: xsa-banner 6s ease-in-out infinite; }
.scn-xenophon-summon-assembly .wind-line { position:absolute; top:20%; left:10%; width:50%; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(150,150,140,.3) 50%, transparent 100%); animation: xsa-wind 4s linear infinite; }
@keyframes xsa-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes xsa-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes xsa-xeno { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes xsa-herald { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-1px) rotate(1deg) } 60% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes xsa-crowd { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes xsa-banner { 0% { transform: rotate(-8deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.05) } 100% { transform: rotate(-8deg) scaleY(1) } }
@keyframes xsa-wind { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }

.scn-hellenes-charge {
  background: linear-gradient(180deg, #4a7b9b 0%, #8ba9c4 40%, #f9d68c 100%),
              radial-gradient(ellipse at 70% 20%, #fff2d0 0%, transparent 60%);
}
.scn-hellenes-charge .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2c5a7a 0%, transparent 100%);
  animation: hc-sky 10s ease-in-out infinite alternate;
}
.scn-hellenes-charge .sun {
  position: absolute; top: 15%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff4d0 0%, #f5c842 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(245,200,66,.5);
  animation: hc-sun 6s ease-in-out infinite alternate;
}
.scn-hellenes-charge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-hellenes-charge .hill {
  position: absolute; bottom: 35%; left: 0; width: 60%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 0 80% 0 0;
  opacity: 0.6;
  animation: hc-hill 12s ease-in-out infinite alternate;
}
.scn-hellenes-charge .dust-cloud {
  position: absolute; bottom: 30%; left: 10%; width: 200px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.7) 0%, transparent 70%);
  filter: blur(10px);
  animation: hc-dust 4s ease-in-out infinite alternate;
}
.scn-hellenes-charge .soldier {
  position: absolute; bottom: 28%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-hellenes-charge .soldier-a {
  left: 30%;
  animation: hc-march-a 2s ease-in-out infinite;
}
.scn-hellenes-charge .soldier-b {
  left: 40%;
  animation: hc-march-b 2s ease-in-out infinite 0.15s;
}
.scn-hellenes-charge .soldier-c {
  left: 50%;
  animation: hc-march-c 2s ease-in-out infinite 0.3s;
}
.scn-hellenes-charge .shield-wave {
  position: absolute; bottom: 32%; left: 25%; width: 120px; height: 16px;
  background: linear-gradient(90deg, #8a6a4a 0%, #baa07a 40%, transparent 60%);
  border-radius: 50%;
  filter: blur(3px);
  animation: hc-shield 1.5s ease-in-out infinite alternate;
}
@keyframes hc-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hc-sun {
  0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 60px 20px rgba(245,200,66,.4); }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 100px 40px rgba(245,200,66,.7); }
  100% { transform: scale(1); opacity: 0.95; box-shadow: 0 0 70px 25px rgba(245,200,66,.5); }
}
@keyframes hc-hill {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes hc-dust {
  0% { transform: translateX(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(10px) scaleX(1.2); opacity: 1; }
  100% { transform: translateX(-5px) scaleX(0.9); opacity: 0.5; }
}
@keyframes hc-march-a {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hc-march-b {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hc-march-c {
  0% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes hc-shield {
  0% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(-5px) scaleX(1.3); opacity: 0.8; }
  100% { transform: translateX(5px) scaleX(1); opacity: 0.4; }
}

/* ------------------------------------------------------------ */

.scn-hellenes-pursue-chariots {
  background: linear-gradient(180deg, #8ba9c4 0%, #c4a982 60%, #8a6a4a 100%),
              radial-gradient(ellipse at 60% 30%, #fff4d0 0%, transparent 50%);
}
.scn-hellenes-pursue-chariots .dust-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(180,150,110,0.4) 0%, transparent 60%);
  animation: hp-dustbg 8s linear infinite;
}
.scn-hellenes-pursue-chariots .ground-rut {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-hellenes-pursue-chariots .chariot {
  position: absolute; bottom: 22%; width: 40px; height: 20px;
  background: linear-gradient(90deg, #5a2a1a 0%, #7a4a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-hellenes-pursue-chariots .chariot-fore {
  left: 25%;
  animation: hp-chariot-fore 1.5s ease-in-out infinite;
}
.scn-hellenes-pursue-chariots .chariot-aft {
  left: 55%;
  animation: hp-chariot-aft 1.5s ease-in-out infinite 0.3s;
}
.scn-hellenes-pursue-chariots .horse {
  position: absolute; bottom: 24%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 30% 20% 20% / 60% 50% 30% 30%;
  animation: hp-gallop 0.8s ease-in-out infinite;
}
.scn-hellenes-pursue-chariots .horse-1 { left: 22%; }
.scn-hellenes-pursue-chariots .horse-2 { left: 52%; animation-delay: 0.4s; }
.scn-hellenes-pursue-chariots .runner {
  position: absolute; bottom: 20%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hp-run 1s ease-in-out infinite;
}
.scn-hellenes-pursue-chariots .runner-a { left: 70%; }
.scn-hellenes-pursue-chariots .runner-b { left: 80%; animation-delay: 0.5s; }
.scn-hellenes-pursue-chariots .dust-trail {
  position: absolute; bottom: 22%; left: 10%; width: 300px; height: 30px;
  background: linear-gradient(90deg, rgba(200,170,130,0.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: hp-dusttrail 3s ease-in-out infinite;
}
@keyframes hp-dustbg {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(-20px); }
  100% { opacity: 0.3; transform: translateX(0); }
}
@keyframes hp-chariot-fore {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes hp-chariot-aft {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes hp-gallop {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(0) rotate(3deg); }
  75% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes hp-run {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-5px) rotate(5deg); }
  50% { transform: translateY(0) rotate(-5deg); }
  75% { transform: translateY(-5px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes hp-dusttrail {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { transform: translateX(15px); opacity: 0.8; }
  100% { transform: translateX(0); opacity: 0.3; }
}

/* ------------------------------------------------------------ */

.scn-cyrus-waits-with-guard {
  background: linear-gradient(180deg, #4a7b9b 0%, #c4a982 60%, #f5d68c 100%),
              radial-gradient(ellipse at 50% 30%, #fff4d0 0%, transparent 60%);
}
.scn-cyrus-waits-with-guard .sky-gold {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a8a9a 0%, transparent 100%);
  animation: cw-sky 12s ease-in-out infinite alternate;
}
.scn-cyrus-waits-with-guard .sun-halo {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff4d0 0%, #f5c842 40%, transparent 70%);
  transform: translateX(-50%);
  border-radius: 50%;
  box-shadow: 0 0 100px 50px rgba(245,200,66,.3);
  animation: cw-sun 8s ease-in-out infinite alternate;
}
.scn-cyrus-waits-with-guard .ground-palace {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-cyrus-waits-with-guard .guard {
  position: absolute; bottom: 25%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cw-guard 4s ease-in-out infinite;
}
.scn-cyrus-waits-with-guard .guard-l { left: 30%; }
.scn-cyrus-waits-with-guard .guard-r { left: 65%; animation-delay: 2s; }
.scn-cyrus-waits-with-guard .cyrus {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 10px rgba(245,200,66,.4);
  animation: cw-cyrus 3s ease-in-out infinite alternate;
}
.scn-cyrus-waits-with-guard .spear {
  position: absolute; bottom: 55%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cw-spear 6s ease-in-out infinite;
}
.scn-cyrus-waits-with-guard .spear-l { left: 28%; }
.scn-cyrus-waits-with-guard .spear-r { left: 68%; animation-delay: 3s; }
.scn-cyrus-waits-with-guard .banner {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); /* desaturated red */
  border-radius: 0 0 40% 40%;
  transform: translateX(-50%);
  animation: cw-banner 3s ease-in-out infinite alternate;
}
@keyframes cw-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cw-sun {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.95; }
}
@keyframes cw-guard {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes cw-cyrus {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes cw-spear {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes cw-banner {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.3); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
}

/* ------------------------------------------------------------ */

.scn-king-in-centre {
  background: linear-gradient(180deg, #6a8a9a 0%, #f5d68c 60%, #c4a982 100%),
              radial-gradient(ellipse at 50% 40%, #fff4d0 0%, transparent 50%);
}
.scn-king-in-centre .sky-battle {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a5a7a 0%, transparent 100%);
  animation: kc-sky 10s ease-in-out infinite alternate;
}
.scn-king-in-centre .sun-bleed {
  position: absolute; top: 10%; left: 40%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff4d0 0%, #f5c842 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 120px 60px rgba(245,200,66,.3);
  animation: kc-sun 7s ease-in-out infinite alternate;
}
.scn-king-in-centre .ground-army {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 50% 30% 0 0;
}
.scn-king-in-centre .king-figure {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 15px rgba(245,200,66,.5);
  animation: kc-king 4s ease-in-out infinite alternate;
}
.scn-king-in-centre .chariot-king {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 24px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 100%);
  transform: translateX(-50%);
  border-radius: 20% 20% 10% 10%;
  animation: kc-chariot 6s ease-in-out infinite;
}
.scn-king-in-centre .horse-king {
  position: absolute; bottom: 22%; left: 45%; width: 35px; height: 26px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 30% 20% 20% / 60% 50% 30% 30%;
  animation: kc-horse 0.6s ease-in-out infinite;
}
.scn-king-in-centre .soldier-king {
  position: absolute; bottom: 20%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: kc-soldier 1.2s ease-in-out infinite;
}
.scn-king-in-centre .soldier-kl { left: 35%; animation-delay: 0.6s; }
.scn-king-in-centre .soldier-kr { left: 62%; }
.scn-king-in-centre .dust-whirl {
  position: absolute; bottom: 15%; left: 20%; width: 200px; height: 50px;
  background: radial-gradient(ellipse, rgba(200,170,130,0.6) 0%, transparent 70%);
  filter: blur(12px);
  animation: kc-dust 5s ease-in-out infinite;
}
@keyframes kc-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes kc-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(1); opacity: 0.95; }
}
@keyframes kc-king {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes kc-chariot {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes kc-horse {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-5px) rotate(0deg); }
  50% { transform: translateY(0) rotate(5deg); }
  75% { transform: translateY(-5px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes kc-soldier {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes kc-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(-10px) scale(1.2); opacity: 0.8; }
  100% { transform: translateX(0) scale(1); opacity: 0.3; }
}

.scn-cyrus-riches-for-upright {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 40%, #0f0b05 100%), radial-gradient(ellipse at 50% 0%, #b87a3a 0%, transparent 60%);
}
.scn-cyrus-riches-for-upright .wall-bg {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #5a3a1a 0%, #2a1808 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-cyrus-riches-for-upright .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a2a15 0%, #1a0f05 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.7);
}
.scn-cyrus-riches-for-upright .brazier {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 40px; background: radial-gradient(circle at 50% 20%, #ffb040 0%, #a04010 40%, #2a0a00 80%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: 0 0 30px 8px rgba(255,160,60,.5); animation: cr1-brazier 6s ease-in-out infinite;
}
.scn-cyrus-riches-for-upright .figure-cyrus {
  position: absolute; bottom: 18%; left: 38%; width: 28px; height: 60px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cr1-cyrus 4s ease-in-out infinite;
}
.scn-cyrus-riches-for-upright .figure-upright {
  position: absolute; bottom: 18%; left: 54%; width: 26px; height: 56px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cr1-upright 4.5s ease-in-out infinite alternate;
}
.scn-cyrus-riches-for-upright .gift-pouch {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 12px; background: radial-gradient(circle, #c08040 0%, #6a4020 100%); border-radius: 40%; box-shadow: 0 0 8px 2px rgba(192,128,64,.6); animation: cr1-pouch 3s ease-in-out infinite;
}
.scn-cyrus-riches-for-upright .light-halo {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 80px; background: radial-gradient(circle at 50% 50%, rgba(255,200,100,.3) 0%, transparent 70%); filter: blur(10px); animation: cr1-halo 8s ease-in-out infinite alternate;
}
.scn-cyrus-riches-for-upright .shadow-arch {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 40%; background: radial-gradient(ellipse at 50% 0%, transparent 40%, rgba(0,0,0,.6) 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%;
}
@keyframes cr1-brazier {
  0% { transform: scale(1) translateY(0); opacity: .9; box-shadow: 0 0 20px 6px rgba(255,160,60,.4); }
  50% { transform: scale(1.05) translateY(-2px); opacity: 1; box-shadow: 0 0 35px 10px rgba(255,180,80,.6); }
  100% { transform: scale(1) translateY(0); opacity: .9; box-shadow: 0 0 20px 6px rgba(255,160,60,.4); }
}
@keyframes cr1-cyrus {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cr1-upright {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(3px) rotate(3deg); }
}
@keyframes cr1-pouch {
  0% { transform: translateY(0) scale(1); opacity: .8; }
  50% { transform: translateY(-4px) scale(1.1); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: .8; }
}
@keyframes cr1-halo {
  0% { opacity: .3; transform: scale(.9); }
  50% { opacity: .6; transform: scale(1.1); }
  100% { opacity: .3; transform: scale(.9); }
}

.scn-cyrus-rewards-service {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 50%, #0f0804 100%), radial-gradient(ellipse at 50% 100%, #7a5020 0%, transparent 70%);
}
.scn-cyrus-rewards-service .tapestry {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 50%; background: linear-gradient(90deg, #5a3020 0%, #4a2010 30%, #3a1810 70%, #5a3020 100%); border-radius: 10% / 20%; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 6px rgba(0,0,0,.4); animation: cr2-tapestry 12s ease-in-out infinite alternate;
}
.scn-cyrus-rewards-service .bench {
  position: absolute; bottom: 18%; left: 35%; right: 35%; height: 10%; background: linear-gradient(180deg, #4a3010 0%, #2a1808 100%); border-radius: 5% 5% 20% 20% / 10% 10% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-cyrus-rewards-service .figure-cyrus {
  position: absolute; bottom: 18%; left: 30%; width: 28px; height: 60px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cr2-cyrus 5s ease-in-out infinite;
}
.scn-cyrus-rewards-service .figure-steward {
  position: absolute; bottom: 18%; left: 55%; width: 26px; height: 54px; background: linear-gradient(180deg, #4a2a15 0%, #2a1508 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: cr2-steward 3s ease-in-out infinite alternate;
}
.scn-cyrus-rewards-service .reward-cup {
  position: absolute; bottom: 22%; left: 48%; width: 14px; height: 16px; background: radial-gradient(circle at 50% 30%, #d4a050 0%, #805020 80%, #402010 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; box-shadow: 0 0 10px 2px rgba(212,160,80,.5); animation: cr2-cup 4s ease-in-out infinite;
}
.scn-cyrus-rewards-service .oil-lamp {
  position: absolute; top: 30%; left: 55%; width: 14px; height: 20px; background: radial-gradient(circle at 50% 0%, #ffd080 0%, #b06020 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,208,128,.6); animation: cr2-lamp 3.5s ease-in-out infinite alternate;
}
.scn-cyrus-rewards-service .glow-spot {
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 50px; background: radial-gradient(circle at 50% 50%, rgba(255,200,100,.25) 0%, transparent 70%); filter: blur(12px); animation: cr2-glow 7s ease-in-out infinite;
}
@keyframes cr2-tapestry {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.01); }
  100% { transform: scaleX(1); }
}
@keyframes cr2-cyrus {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes cr2-steward {
  0% { transform: translateX(0) scale(1); }
  100% { transform: translateX(2px) scale(1.02); }
}
@keyframes cr2-cup {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 8px 2px rgba(212,160,80,.4); }
  50% { transform: translateY(-3px) scale(1.05); box-shadow: 0 0 14px 4px rgba(212,160,80,.7); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 8px 2px rgba(212,160,80,.4); }
}
@keyframes cr2-lamp {
  0% { opacity: .8; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.08); }
}
@keyframes cr2-glow {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.15); }
  100% { opacity: .4; transform: scale(1); }
}

.scn-cyrus-courtesy-gifts {
  background: linear-gradient(180deg, #3a2515 0%, #1a1008 40%, #0f0804 100%), radial-gradient(ellipse at 50% 60%, #9a6030 0%, transparent 70%);
}
.scn-cyrus-courtesy-gifts .column-l {
  position: absolute; bottom: 0; left: 10%; width: 20px; height: 70%; background: linear-gradient(90deg, #4a3020 0%, #2a1808 50%, #4a3020 100%); border-radius: 10% / 5%; box-shadow: inset -4px 0 8px rgba(0,0,0,.5); animation: cr3-col-l 20s ease-in-out infinite alternate;
}
.scn-cyrus-courtesy-gifts .column-r {
  position: absolute; bottom: 0; right: 10%; width: 20px; height: 70%; background: linear-gradient(90deg, #4a3020 0%, #2a1808 50%, #4a3020 100%); border-radius: 10% / 5%; box-shadow: inset 4px 0 8px rgba(0,0,0,.5); animation: cr3-col-r 20s ease-in-out infinite alternate reverse;
}
.scn-cyrus-courtesy-gifts .floor-pattern {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: repeating-linear-gradient(0deg, #2a1a0a 0px, #1a0f05 4px, #2a1a0a 8px); box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-cyrus-courtesy-gifts .figure-giver {
  position: absolute; bottom: 18%; left: 38%; width: 28px; height: 62px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cr3-giver 4s ease-in-out infinite;
}
.scn-cyrus-courtesy-gifts .figure-receiver {
  position: absolute; bottom: 18%; left: 52%; width: 26px; height: 56px; background: linear-gradient(180deg, #4a2a15 0%, #2a1508 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: cr3-receiver 3.5s ease-in-out infinite alternate;
}
.scn-cyrus-courtesy-gifts .gift-box {
  position: absolute; bottom: 22%; left: 46%; width: 18px; height: 14px; background: linear-gradient(135deg, #c08040 0%, #805020 100%); border-radius: 10%; box-shadow: 0 0 12px 3px rgba(192,128,64,.5); animation: cr3-box 5s ease-in-out infinite;
}
.scn-cyrus-courtesy-gifts .candle-crown {
  position: absolute; top: 15%; left: 40%; width: 30px; height: 40px; background: radial-gradient(circle at 50% 0%, #ffd080 0%, #b06020 40%, transparent 70%); border-radius: 50% / 40%; filter: blur(4px); animation: cr3-candle 6s ease-in-out infinite alternate;
}
.scn-cyrus-courtesy-gifts .warm-fog {
  position: absolute; inset: 0; background: radial-gradient(circle at 50% 60%, rgba(255,200,100,.15) 0%, transparent 60%); filter: blur(20px); animation: cr3-fog 10s ease-in-out infinite;
}
@keyframes cr3-col-l {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(1.02); }
}
@keyframes cr3-col-r {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(1.02); }
}
@keyframes cr3-giver {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-2px) rotate(-3deg); }
  75% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cr3-receiver {
  0% { transform: translateX(0) scale(1); }
  100% { transform: translateX(3px) scale(1.03); }
}
@keyframes cr3-box {
  0% { transform: translateY(0) rotate(0); box-shadow: 0 0 8px 2px rgba(192,128,64,.4); }
  50% { transform: translateY(-5px) rotate(5deg); box-shadow: 0 0 20px 6px rgba(192,128,64,.7); }
  100% { transform: translateY(0) rotate(0); box-shadow: 0 0 8px 2px rgba(192,128,64,.4); }
}
@keyframes cr3-candle {
  0% { opacity: .6; transform: scaleY(.95); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: .6; transform: scaleY(.95); }
}
@keyframes cr3-fog {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .3; }
}

.scn-cyrus-generous-with-gifts {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 30%, #0f0804 100%), radial-gradient(ellipse at 50% 0%, #b07830 0%, transparent 50%);
}
.scn-cyrus-generous-with-gifts .chest {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 25%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 50%, #2a1508 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 -6px 10px rgba(0,0,0,.6), 0 4px 6px rgba(0,0,0,.5); animation: cr4-chest 8s ease-in-out infinite;
}
.scn-cyrus-generous-with-gifts .gift-pile {
  position: absolute; bottom: 28%; left: 38%; width: 24%; height: 20%; background: radial-gradient(circle at 30% 40%, #c08040 0%, #805020 50%, #402010 100%); border-radius: 40% 60% 30% 40% / 50% 40% 60% 50%; box-shadow: 0 0 20px 6px rgba(192,128,64,.5); animation: cr4-pile 10s ease-in-out infinite;
}
.scn-cyrus-generous-with-gifts .gift-scattered {
  position: absolute; bottom: 12%; left: 20%; width: 15px; height: 12px; background: radial-gradient(circle, #b08040 0%, #6a4020 100%); border-radius: 20% 30% 40% 20%; box-shadow: 0 0 8px 2px rgba(176,128,64,.4); animation: cr4-scatter 6s ease-in-out infinite alternate;
}
.scn-cyrus-generous-with-gifts .figure-cyrus {
  position: absolute; bottom: 20%; left: 58%; width: 30px; height: 65px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cr4-cyrus 4s ease-in-out infinite;
}
.scn-cyrus-generous-with-gifts .torch {
  position: absolute; top: 15%; left: 50%; width: 10px; height: 30px; background: linear-gradient(180deg, #ffc080 0%, #a04010 60%, #2a0a00 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,192,128,.6); animation: cr4-torch 3s ease-in-out infinite alternate;
}
.scn-cyrus-generous-with-gifts .wood-panel {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 70%, rgba(40,20,10,.5) 100%); pointer-events: none;
}
.scn-cyrus-generous-with-gifts .ember-glow {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,180,80,.2) 0%, transparent 70%); filter: blur(15px); animation: cr4-ember 12s ease-in-out infinite;
}
@keyframes cr4-chest {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(1); }
}
@keyframes cr4-pile {
  0% { transform: scale(1) rotate(0); }
  25% { transform: scale(1.02) rotate(-1deg); }
  75% { transform: scale(.98) rotate(1deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes cr4-scatter {
  0% { transform: translate(0,0) rotate(0); }
  100% { transform: translate(2px,-2px) rotate(10deg); }
}
@keyframes cr4-cyrus {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes cr4-torch {
  0% { transform: scaleY(1); opacity: .9; box-shadow: 0 0 20px 6px rgba(255,192,128,.5); }
  100% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 40px 12px rgba(255,192,128,.7); }
}
@keyframes cr4-ember {
  0% { opacity: .3; transform: scale(.95); }
  50% { opacity: .6; transform: scale(1.05); }
  100% { opacity: .3; transform: scale(.95); }
}

/* === Scene: mantinean-warrior-dance === */
.scn-mantinean-warrior-dance { 
  position: relative;
  background: 
    linear-gradient(180deg, #1a0c00 0%, #3a1a00 30%, #8b3f00 60%, #b85a00 80%, #ff8c00 100%),
    radial-gradient(ellipse at 50% 100%, #ff6a00 0%, transparent 70%);
}
.scn-mantinean-warrior-dance .bg-fire {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 60%, #4a2a00 100%);
  animation: mwd-fire 4s ease-in-out infinite alternate;
}
.scn-mantinean-warrior-dance .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a2a0a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: mwd-ground 3s ease-in-out infinite;
}
.scn-mantinean-warrior-dance .musician {
  position: absolute; bottom: 32%; left: 18%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mwd-musician 2s ease-in-out infinite;
}
.scn-mantinean-warrior-dance .musician::after {
  content: ""; position: absolute; top: 8px; left: 20px; width: 24px; height: 6px;
  background: #5a3a1a; border-radius: 20% 50% 50% 20%;
  animation: mwd-pipe 0.8s ease-in-out infinite alternate;
}
.scn-mantinean-warrior-dance .warrior-a {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mwd-warrior-a 3s ease-in-out infinite;
}
.scn-mantinean-warrior-dance .warrior-b {
  position: absolute; bottom: 30%; left: 52%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mwd-warrior-b 3s ease-in-out infinite 1.5s;
}
.scn-mantinean-warrior-dance .spear-a {
  position: absolute; bottom: 52%; left: 38%; width: 2px; height: 28px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: bottom center;
  animation: mwd-spear-a 0.6s ease-in-out infinite alternate;
}
.scn-mantinean-warrior-dance .spear-b {
  position: absolute; bottom: 52%; left: 55%; width: 2px; height: 28px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: bottom center;
  animation: mwd-spear-b 0.6s ease-in-out infinite alternate 0.3s;
}
@keyframes mwd-fire { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mwd-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mwd-musician { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } }
@keyframes mwd-pipe { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.15) } }
@keyframes mwd-warrior-a { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(3px) rotate(-3deg) } 66% { transform: translateX(-1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mwd-warrior-b { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-3px) rotate(3deg) } 66% { transform: translateX(1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mwd-spear-a { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes mwd-spear-b { 0% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

/* === Scene: dancing-girl-pyrrhic === */
.scn-dancing-girl-pyrrhic { 
  position: relative;
  background: 
    linear-gradient(180deg, #1a0800 0%, #4a1a00 30%, #8b3f00 60%, #ff6a00 100%),
    radial-gradient(ellipse at 50% 0%, #e65c00 0%, transparent 70%);
}
.scn-dancing-girl-pyrrhic .bg-fire {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, #3a1a00 100%);
  animation: dgp-fire 3s ease-in-out infinite alternate;
}
.scn-dancing-girl-pyrrhic .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a2a0a 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
  animation: dgp-floor 2s ease-in-out infinite;
}
.scn-dancing-girl-pyrrhic .dancer {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dgp-dancer 1.2s ease-in-out infinite;
}
.scn-dancing-girl-pyrrhic .arm-left {
  position: absolute; bottom: 58%; left: 44%; width: 18px; height: 4px;
  background: #2a1a10;
  border-radius: 50% 50% 0 0;
  transform-origin: right center;
  animation: dgp-arm-l 0.25s ease-in-out infinite alternate;
}
.scn-dancing-girl-pyrrhic .arm-right {
  position: absolute; bottom: 58%; left: 52%; width: 18px; height: 4px;
  background: #2a1a10;
  border-radius: 0 0 50% 50%;
  transform-origin: left center;
  animation: dgp-arm-r 0.25s ease-in-out infinite alternate 0.125s;
}
.scn-dancing-girl-pyrrhic .spark {
  position: absolute; bottom: 68%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, #ff8c00 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #ff8c00, 0 0 24px 6px rgba(255,140,0,.4);
  animation: dgp-spark 0.8s ease-out infinite;
}
@keyframes dgp-fire { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dgp-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(3px) } }
@keyframes dgp-dancer { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-15deg) translateY(-4px) } 50% { transform: rotate(10deg) translateY(2px) } 75% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes dgp-arm-l { 0% { transform: rotate(20deg) } 100% { transform: rotate(-30deg) } }
@keyframes dgp-arm-r { 0% { transform: rotate(-20deg) } 100% { transform: rotate(30deg) } }
@keyframes dgp-spark { 0% { opacity:1; transform: translate(0,0) scale(1) } 100% { opacity:0; transform: translate(15px,-20px) scale(0.3) } }

/* === Scene: treaty-with-paphlagonians === */
.scn-treaty-with-paphlagonians { 
  position: relative;
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0d4e8 40%, #e6dba0 70%, #b8860b 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-treaty-with-paphlagonians .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0e0ff 0%, transparent 100%);
  animation: twp-sky 12s ease-in-out infinite alternate;
}
.scn-treaty-with-paphlagonians .horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
  animation: twp-horizon 20s ease-in-out infinite alternate;
}
.scn-treaty-with-paphlagonians .table {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: twp-table 8s ease-in-out infinite;
}
.scn-treaty-with-paphlagonians .figure-left {
  position: absolute; bottom: 24%; left: 32%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: twp-figure-l 6s ease-in-out infinite;
}
.scn-treaty-with-paphlagonians .figure-right {
  position: absolute; bottom: 24%; left: 58%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: twp-figure-r 6s ease-in-out infinite 3s;
}
.scn-treaty-with-paphlagonians .document {
  position: absolute; bottom: 26%; left: 50%; width: 20px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: twp-doc 5s ease-in-out infinite alternate;
}
.scn-treaty-with-paphlagonians .sun {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffb040;
  animation: twp-sun 15s ease-in-out infinite alternate;
}
@keyframes twp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes twp-horizon { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes twp-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes twp-figure-l { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes twp-figure-r { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes twp-doc { 0% { transform: translateX(-50%) rotate(-3deg) } 100% { transform: translateX(-50%) rotate(3deg) } }
@keyframes twp-sun { 0% { transform: scale(0.9); opacity:0.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:0.9 } }

/* === Scene: gifts-from-sinopeans === */
.scn-gifts-from-sinopeans { 
  position: relative;
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0d4e8 40%, #e6dba0 70%, #b8860b 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-gifts-from-sinopeans .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c0e8f0 0%, transparent 100%);
  animation: gfs-sky 10s ease-in-out infinite alternate;
}
.scn-gifts-from-sinopeans .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #3a6a8a 0%, #6a9aba 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: gfs-sea 6s ease-in-out infinite;
}
.scn-gifts-from-sinopeans .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(0deg, #c0a060 0%, #e0c080 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.2);
  animation: gfs-shore 8s ease-in-out infinite alternate;
}
.scn-gifts-from-sinopeans .ship {
  position: absolute; bottom: 26%; left: 25%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 100% 100%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: gfs-ship 15s linear infinite;
}
.scn-gifts-from-sinopeans .sail {
  position: absolute; bottom: 38%; left: 22%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom left;
  animation: gfs-sail 8s ease-in-out infinite;
}
.scn-gifts-from-sinopeans .barrel-a {
  position: absolute; bottom: 15%; left: 55%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: gfs-barrel 12s ease-in-out infinite;
}
.scn-gifts-from-sinopeans .barrel-b {
  position: absolute; bottom: 15%; left: 65%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: gfs-barrel 12s ease-in-out infinite 4s;
}
.scn-gifts-from-sinopeans .jar {
  position: absolute; bottom: 18%; left: 72%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 3px 6px rgba(0,0,0,.2);
  animation: gfs-jar 10s ease-in-out infinite;
}
@keyframes gfs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gfs-sea { 0%,100% { transform: translateY(0) } 50% { transform: translateY(3px) } }
@keyframes gfs-shore { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gfs-ship { 0% { transform: translateX(-50px) } 100% { transform: translateX(calc(100vw + 60px)) } }
@keyframes gfs-sail { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }
@keyframes gfs-barrel { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes gfs-jar { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }

.scn-xenophon-arises-in-bravest-apparel {
  background:
    linear-gradient(180deg, #ffd699 0%, #f4a460 30%, #c07740 60%, #4a2e1a 90%),
    radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%);
}
.scn-xenophon-arises-in-bravest-apparel .dawn-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #ffe8c8 0%, #ffb56b 40%, transparent 100%);
  animation: xabar-sky 12s ease-in-out infinite alternate;
}
.scn-xenophon-arises-in-bravest-apparel .horizon-hills {
  position:absolute; bottom:30%; left:0; right:0; height:18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.5);
  animation: xabar-hills 20s ease-in-out infinite alternate;
}
.scn-xenophon-arises-in-bravest-apparel .figure-xen {
  position:absolute; bottom:28%; left:50%; width:60px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: xabar-figure 4s ease-in-out infinite;
}
.scn-xenophon-arises-in-bravest-apparel .armor-gleam {
  position:absolute; bottom:48%; left:50%; width:40px; height:50px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c0a060 0%, #806030 50%, #c0a060 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px #d0a040, 0 0 40px 16px rgba(208,160,64,0.3);
  animation: xabar-gleam 3s ease-in-out infinite alternate;
}
.scn-xenophon-arises-in-bravest-apparel .spear {
  position:absolute; bottom:28%; left:50%; margin-left:22px;
  width:4px; height:110px;
  background: linear-gradient(180deg, #8a6a40 0%, #4a3018 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  transform-origin: bottom center;
  animation: xabar-spear 4s ease-in-out infinite;
}
.scn-xenophon-arises-in-bravest-apparel .cloak {
  position:absolute; bottom:28%; left:50%; margin-left:-28px;
  width:30px; height:60px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0d 100%);
  border-radius: 50% 20% 40% 40% / 60% 30% 50% 50%;
  transform: rotate(-15deg);
  transform-origin: top center;
  animation: xabar-cloak 5s ease-in-out infinite alternate;
}
.scn-xenophon-arises-in-bravest-apparel .cloud-a-xen {
  position:absolute; top:12%; left:10%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(255,230,190,0.6) 0%, rgba(255,180,100,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: xabar-drift-a 40s linear infinite;
}
.scn-xenophon-arises-in-bravest-apparel .cloud-b-xen {
  position:absolute; top:8%; right:15%; width:80px; height:16px;
  background: linear-gradient(180deg, rgba(255,220,170,0.5) 0%, rgba(255,160,80,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: xabar-drift-b 55s linear infinite reverse;
}

@keyframes xabar-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.75} }
@keyframes xabar-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(2px)} }
@keyframes xabar-figure { 0%,100%{transform:translateX(-50%) translateY(0) rotate(0deg)} 50%{transform:translateX(-50%) translateY(-3px) rotate(1deg)} }
@keyframes xabar-gleam { 0%{box-shadow:0 0 15px 5px #c0a040, 0 0 30px 10px rgba(192,160,64,0.2);opacity:0.8} 50%{box-shadow:0 0 30px 12px #e0c060, 0 0 60px 24px rgba(224,192,96,0.5);opacity:1} 100%{box-shadow:0 0 20px 8px #d0a050, 0 0 40px 16px rgba(208,160,80,0.3);opacity:0.85} }
@keyframes xabar-spear { 0%,100%{transform:rotate(8deg) translateY(0)} 50%{transform:rotate(10deg) translateY(-2px)} }
@keyframes xabar-cloak { 0%{transform:rotate(-15deg) translateY(0)} 50%{transform:rotate(-18deg) translateY(-2px)} 100%{transform:rotate(-13deg) translateY(1px)} }
@keyframes xabar-drift-a { 0%{transform:translateX(-40px)} 100%{transform:translateX(120vw)} }
@keyframes xabar-drift-b { 0%{transform:translateX(0)} 100%{transform:translateX(-100vw)} }

.scn-xenophon-speech-friendship-or-war {
  background:
    linear-gradient(180deg, #ffcc88 0%, #e09a50 40%, #7a4a20 80%),
    radial-gradient(ellipse at 50% 0%, #ffdeaa 0%, transparent 70%);
}
.scn-xenophon-speech-friendship-or-war .dawn-sky-spe {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #f5b070 40%, transparent 100%);
  animation: xsp-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-speech-friendship-or-war .ground-spe {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.6);
  animation: xsp-ground 8s ease-in-out infinite alternate;
}
.scn-xenophon-speech-friendship-or-war .xenophon-speaker {
  position:absolute; bottom:35%; left:50%; width:50px; height:100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: xsp-speaker 3s ease-in-out infinite;
}
.scn-xenophon-speech-friendship-or-war .soldier {
  position:absolute; bottom:32%; height:85px; width:40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: xsp-soldier 5s ease-in-out infinite alternate;
}
.scn-xenophon-speech-friendship-or-war .s1 { left:30%; animation-delay:0s; }
.scn-xenophon-speech-friendship-or-war .s2 { left:38%; animation-delay:0.5s; }
.scn-xenophon-speech-friendship-or-war .s3 { left:58%; animation-delay:1s; }
.scn-xenophon-speech-friendship-or-war .banner-spe {
  position:absolute; bottom:40%; left:55%; width:6px; height:80px;
  background: linear-gradient(180deg, #8a6a40 0%, #4a3018 100%);
  border-radius: 3px; transform: rotate(-5deg); transform-origin: bottom center;
  animation: xsp-banner 6s ease-in-out infinite alternate;
}
.scn-xenophon-speech-friendship-or-war .mist-spe {
  position:absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(255,200,150,0.15) 0%, rgba(255,180,120,0.05) 100%);
  filter: blur(12px);
  animation: xsp-mist 20s ease-in-out infinite alternate;
}

@keyframes xsp-sky { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes xsp-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(2px)} }
@keyframes xsp-speaker { 0%,100%{transform:translateX(-50%) translateY(0) rotate(0deg)} 50%{transform:translateX(-50%) translateY(-2px) rotate(1deg)} }
@keyframes xsp-soldier { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes xsp-banner { 0%{transform:rotate(-5deg) scaleY(1)} 50%{transform:rotate(-3deg) scaleY(1.02)} 100%{transform:rotate(-7deg) scaleY(0.98)} }
@keyframes xsp-mist { 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.2} }

.scn-omen-sneeze {
  background:
    linear-gradient(180deg, #d4b896 0%, #b88b5a 40%, #6e4e2e 80%),
    radial-gradient(ellipse at 50% 20%, #f0d4a8 0%, transparent 70%);
}
.scn-omen-sneeze .dawn-sky-omn {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #f5dbb0 0%, #e0b07c 50%, transparent 100%);
  animation: omsn-sky 18s ease-in-out infinite alternate;
}
.scn-omen-sneeze .ground-omn {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #5a4430 0%, #2e1e0a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.5);
  animation: omsn-ground 14s ease-in-out infinite alternate;
}
.scn-omen-sneeze .sneezer {
  position:absolute; bottom:33%; left:42%; width:40px; height:90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg) translateY(0);
  transform-origin: bottom center;
  animation: omsn-sneeze 2s ease-in-out infinite;
}
.scn-omen-sneeze .bowing-soldier {
  position:absolute; bottom:30%; height:80px; width:38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: omsn-bow 6s ease-in-out infinite alternate;
}
.scn-omen-sneeze .b1 { left:32%; animation-delay:0s; }
.scn-omen-sneeze .b2 { left:56%; animation-delay:1.5s; }
.scn-omen-sneeze .xenophon-omn {
  position:absolute; bottom:35%; left:50%; width:45px; height:95px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: omsn-xen 4s ease-in-out infinite;
}
.scn-omen-sneeze .omen-light {
  position:absolute; top:10%; left:50%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(255,230,180,0.6) 0%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(10px);
  animation: omsn-light 5s ease-in-out infinite alternate;
}
.scn-omen-sneeze .dust-omn {
  position:absolute; bottom:38%; left:42%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(200,170,130,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: omsn-dust 2s ease-in-out infinite;
}

@keyframes omsn-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes omsn-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(3px)} }
@keyframes omsn-sneeze { 0%,100%{transform:rotate(-10deg) translateY(0)} 25%{transform:rotate(-15deg) translateY(-5px)} 75%{transform:rotate(-8deg) translateY(-2px)} }
@keyframes omsn-bow { 0%{transform:rotate(15deg) translateY(0)} 50%{transform:rotate(25deg) translateY(-3px)} 100%{transform:rotate(10deg) translateY(0)} }
@keyframes omsn-xen { 0%,100%{transform:translateX(-50%) translateY(0) rotate(0deg)} 50%{transform:translateX(-50%) translateY(-2px) rotate(1deg)} }
@keyframes omsn-light { 0%{opacity:0.3;transform:translateX(-50%) scale(0.9)} 50%{opacity:0.7;transform:translateX(-50%) scale(1.2)} 100%{opacity:0.4;transform:translateX(-50%) scale(1)} }
@keyframes omsn-dust { 0%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(1.5) translateY(-10px)} 100%{opacity:0;transform:scale(2) translateY(-20px)} }

.scn-vow-voted-and-chant {
  background:
    linear-gradient(180deg, #ffcf8a 0%, #e89f4a 30%, #8a5a20 70%),
    radial-gradient(ellipse at 50% 0%, #ffdfb0 0%, transparent 70%);
}
.scn-vow-voted-and-chant .dawn-sky-vow {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffdfb0 0%, #f0b86a 50%, transparent 100%);
  animation: vovc-sky 12s ease-in-out infinite alternate;
}
.scn-vow-voted-and-chant .sunburst-vow {
  position:absolute; top:5%; left:50%; width:200px; height:200px;
  background: radial-gradient(circle, #ffe080 0%, #ffb040 30%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(16px);
  animation: vovc-sun 10s ease-in-out infinite alternate;
}
.scn-vow-voted-and-chant .soldiers-row {
  position:absolute; bottom:25%; height:100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
}
.scn-vow-voted-and-chant .row-front {
  left:10%; right:10%; width:auto;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 70%);
  animation: vovc-front 6s ease-in-out infinite alternate;
}
.scn-vow-voted-and-chant .row-back {
  left:15%; right:15%; bottom:18%; height:80px;
  background: linear-gradient(180deg, #1a0a00 0%, #000 100%);
  filter: brightness(0.7);
  animation: vovc-back 8s ease-in-out infinite alternate;
}
.scn-vow-voted-and-chant .hands-up {
  position:absolute; bottom:55%; width:20px; height:40px;
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  transform-origin: bottom center;
  animation: vovc-hand 4s ease-in-out infinite;
}
.scn-vow-voted-and-chant .hand-front {
  left:20%; animation-delay:0s;
  box-shadow: 0 0 10px 4px rgba(255,200,100,0.2);
}
.scn-vow-voted-and-chant .hand-back {
  right:20%; animation-delay:1s;
  box-shadow: 0 0 8px 3px rgba(255,200,100,0.15);
}
.scn-vow-voted-and-chant .battle-hymn-wave {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(255,180,80,0.2) 0%, rgba(255,120,40,0.05) 100%);
  filter: blur(8px);
  animation: vovc-wave 7s ease-in-out infinite alternate;
}

@keyframes vovc-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes vovc-sun { 0%{opacity:0.5;transform:translateX(-50%) scale(0.9)} 50%{opacity:0.9;transform:translateX(-50%) scale(1.15)} 100%{opacity:0.6;transform:translateX(-50%) scale(1)} }
@keyframes vovc-front { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-3px) scale(1.01)} 100%{transform:translateY(2px) scale(0.99)} }
@keyframes vovc-back { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(3px)} }
@keyframes vovc-hand { 0%,100%{transform:rotate(0deg) translateY(0)} 25%{transform:rotate(10deg) translateY(-4px)} 75%{transform:rotate(-5deg) translateY(-2px)} }
@keyframes vovc-wave { 0%{opacity:0.3;transform:scaleY(1)} 50%{opacity:0.7;transform:scaleY(1.2)} 100%{opacity:0.4;transform:scaleY(0.9)} }

/* scene 1: xenophon-gives-himself */
.scn-xenophon-gives-himself {
  background: radial-gradient(ellipse at 60% 80%, #d46a2a 0%, #8b3a1a 40%, #2a1210 100%) , linear-gradient(180deg, #1a0a08 0%, #3a1a10 50%, #0a0505 100%);
}
.scn-xenophon-gives-himself .bg-fire { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(200,80,30,.8) 0%, transparent 70%); animation: xgs-fireglow 4s ease-in-out infinite alternate; }
.scn-xenophon-gives-himself .table { position:absolute; bottom:18%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #5a3018 0%, #3a1a0a 100%); border-radius: 4% 4% 0 0; transform: perspective(400px) rotateX(30deg); }
.scn-xenophon-gives-himself .seuthes { position:absolute; bottom:28%; left:20%; width:30px; height:50px; background: linear-gradient(90deg, #4a2010 0%, #6a3a1a 50%, #4a2010 100%); border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%; transform: rotate(15deg); animation: xgs-seuthes 6s ease-in-out infinite alternate; }
.scn-xenophon-gives-himself .xenophon { position:absolute; bottom:28%; right:20%; width:28px; height:48px; background: linear-gradient(180deg, #3a1a0a 0%, #1a0800 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: xgs-xenophon 5s ease-in-out infinite; }
.scn-xenophon-gives-himself .cupbearer { position:absolute; bottom:30%; left:45%; width:20px; height:36px; background: linear-gradient(90deg, #2a1008 0%, #4a2010 50%, #2a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg) translateX(0); animation: xgs-cupbearer 7s ease-in-out infinite; }
.scn-xenophon-gives-himself .bowl { position:absolute; bottom:40%; left:50%; width:16px; height:12px; margin-left:-8px; background: radial-gradient(circle at 50% 30%, #c07030 0%, #8a4010 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: xgs-bowl 3s ease-in-out infinite; }
.scn-xenophon-gives-himself .flame { position:absolute; bottom:10%; left:50%; width:20px; height:30px; margin-left:-10px; background: radial-gradient(ellipse at 50% 0%, #ffa050 0%, #e06020 50%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: xgs-flame 0.8s ease-in-out infinite alternate; }
.scn-xenophon-gives-himself .shadow-1 { position:absolute; bottom:12%; left:15%; width:40%; height:30%; background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: xgs-shadow 8s ease-in-out infinite alternate; }
.scn-xenophon-gives-himself .shadow-2 { position:absolute; bottom:12%; right:15%; width:35%; height:25%; background: linear-gradient(270deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: xgs-shadow 8s ease-in-out infinite alternate-reverse; }

@keyframes xgs-fireglow { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes xgs-seuthes { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes xgs-xenophon { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } }
@keyframes xgs-cupbearer { 0% { transform: rotate(10deg) translateX(0); } 30% { transform: rotate(12deg) translateX(4px); } 70% { transform: rotate(8deg) translateX(-2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes xgs-bowl { 0%,100% { opacity: .9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } }
@keyframes xgs-flame { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.2) rotate(0deg); } 100% { transform: scaleY(0.9) rotate(2deg); } }
@keyframes xgs-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* scene 2: xenophon-promises-victories */
.scn-xenophon-promises-victories {
  background: linear-gradient(180deg, #1a0808 0%, #3a1808 40%, #5a2810 100%) , radial-gradient(ellipse at 50% 30%, #c06020 0%, transparent 60%);
}
.scn-xenophon-promises-victories .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a3a1a 0%, #2a0a05 100%); animation: xpv-sky 12s ease-in-out infinite alternate; }
.scn-xenophon-promises-victories .campfire { position:absolute; bottom:35%; left:50%; width:30px; height:20px; margin-left:-15px; background: radial-gradient(ellipse at 50% 100%, #e08030 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: xpv-fire 2s ease-in-out infinite alternate; }
.scn-xenophon-promises-victories .xenophon-stand { position:absolute; bottom:30%; left:40%; width:28px; height:55px; background: linear-gradient(180deg, #3a1808 0%, #1a0800 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: xpv-stand 5s ease-in-out infinite; }
.scn-xenophon-promises-victories .arm-gesture { position:absolute; bottom:50%; left:42%; width:25px; height:8px; background: linear-gradient(90deg, #2a0a00 0%, #4a1808 100%); border-radius: 20% 80% 80% 20% / 50% 50% 50% 50%; transform: rotate(-30deg) scaleX(1.2); transform-origin: right center; animation: xpv-arm 4s ease-in-out infinite alternate; }
.scn-xenophon-promises-victories .horses-bg { position:absolute; bottom:20%; right:10%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 100%, #4a2010 0%, transparent 80%); border-radius: 50%; filter: blur(3px); opacity: .4; animation: xpv-horses 8s ease-in-out infinite; }
.scn-xenophon-promises-victories .land-roll { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a2810 0%, #2a1008 100%); border-radius: 30% 40% 0 0 / 60% 70% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.5); animation: xpv-land 10s ease-in-out infinite alternate; }
.scn-xenophon-promises-victories .sparkle { position:absolute; top:20%; left:30%; width:4px; height:4px; background: #ffb060; border-radius: 50%; box-shadow: 0 0 6px #ffb060; animation: xpv-spark 3s ease-in-out infinite; }
.scn-xenophon-promises-victories .dust { position:absolute; bottom:10%; left:20%; width:40px; height:10px; background: radial-gradient(ellipse at 50% 0%, rgba(100,50,20,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: xpv-dust 15s linear infinite; }

@keyframes xpv-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes xpv-fire { 0% { transform: scale(1); } 50% { transform: scale(1.3); } 100% { transform: scale(0.9); } }
@keyframes xpv-stand { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-4px); } }
@keyframes xpv-arm { 0% { transform: rotate(-30deg) scaleX(1.2); } 50% { transform: rotate(-45deg) scaleX(1.4); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes xpv-horses { 0% { opacity: .2; transform: scale(1); } 50% { opacity: .5; transform: scale(1.1); } 100% { opacity: .3; transform: scale(0.9); } }
@keyframes xpv-land { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes xpv-spark { 0%,100% { opacity: 0; } 50% { opacity: 1; transform: scale(1.5); } }
@keyframes xpv-dust { 0% { transform: translateX(-20px); opacity: .3; } 50% { transform: translateX(80px); opacity: .6; } 100% { transform: translateX(180px); opacity: .2; } }

/* scene 3: music-and-dancing */
.scn-music-and-dancing {
  background: radial-gradient(ellipse at 40% 50%, #c06020 0%, #4a1808 60%, #1a0800 100%) , linear-gradient(90deg, #0a0505 0%, #2a1008 50%, #0a0505 100%);
}
.scn-music-and-dancing .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a1808 0%, #1a0800 100%); border-radius: 40% 40% 0 0; transform: rotateX(10deg); }
.scn-music-and-dancing .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2010 0%, transparent 100%); }
.scn-music-and-dancing .musician-1 { position:absolute; bottom:32%; left:15%; width:24px; height:50px; background: linear-gradient(180deg, #5a2810 0%, #2a1008 100%); border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%; transform: rotate(20deg); animation: mnd-musician1 4s ease-in-out infinite; }
.scn-music-and-dancing .musician-2 { position:absolute; bottom:30%; right:20%; width:22px; height:48px; background: linear-gradient(180deg, #4a2010 0%, #2a1008 100%); border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%; transform: rotate(-15deg); animation: mnd-musician2 5s ease-in-out infinite alternate; }
.scn-music-and-dancing .horn-1 { position:absolute; bottom:50%; left:20%; width:30px; height:10px; background: linear-gradient(90deg, #8a3a1a 0%, #c06020 100%); border-radius: 20% 80% 80% 20% / 50% 50% 50% 50%; transform: rotate(30deg) scaleY(0.6); animation: mnd-horn 2s ease-in-out infinite; }
.scn-music-and-dancing .horn-2 { position:absolute; bottom:48%; right:25%; width:25px; height:8px; background: linear-gradient(270deg, #8a3a1a 0%, #c06020 100%); border-radius: 80% 20% 20% 80% / 50% 50% 50% 50%; transform: rotate(-40deg) scaleY(0.5); animation: mnd-horn 2.5s ease-in-out infinite reverse; }
.scn-music-and-dancing .seuthes-dance { position:absolute; bottom:35%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #6a3018 0%, #3a1808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: mnd-seuthes 3s ease-in-out infinite; }
.scn-music-and-dancing .fire-spark { position:absolute; bottom:10%; left:50%; width:8px; height:8px; background: #ffa050; border-radius: 50%; box-shadow: 0 0 10px #ffa050; animation: mnd-spark 0.8s ease-in-out infinite alternate; }
.scn-music-and-dancing .shadow-dance { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(10px); animation: mnd-shadow 6s ease-in-out infinite alternate; }

@keyframes mnd-musician1 { 0% { transform: rotate(20deg) translateY(0); } 30% { transform: rotate(25deg) translateY(-5px); } 70% { transform: rotate(15deg) translateY(3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes mnd-musician2 { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-4px); } 100% { transform: rotate(-10deg) translateY(2px); } }
@keyframes mnd-horn { 0% { transform: rotate(30deg) scaleY(0.6); } 50% { transform: rotate(35deg) scaleY(0.8); } 100% { transform: rotate(25deg) scaleY(0.5); } }
@keyframes mnd-seuthes { 0%,100% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(15deg) translateY(-8px); } 75% { transform: rotate(5deg) translateY(4px); } }
@keyframes mnd-spark { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.5) rotate(10deg); } 100% { transform: scale(0.8) rotate(-10deg); } }
@keyframes mnd-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* scene 4: party-ends-military-arrangements */
.scn-party-ends-military-arrangements {
  background: linear-gradient(180deg, #2a1008 0%, #5a2810 30%, #8a3a1a 60%, #c06020 100%) , radial-gradient(ellipse at 50% 20%, #e8a050 0%, transparent 50%);
}
.scn-party-ends-military-arrangements .sunset { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #c06020 0%, #8a3a1a 40%, #2a1008 100%); animation: pma-sunset 15s ease-in-out infinite alternate; }
.scn-party-ends-military-arrangements .horizon { position:absolute; bottom:40%; left:0; right:0; height:8%; background: linear-gradient(180deg, #3a1808 0%, transparent 100%); border-radius: 50% 50% 0 0; }
.scn-party-ends-military-arrangements .tent-1 { position:absolute; bottom:30%; left:10%; width:40px; height:25px; background: linear-gradient(180deg, #4a2010 0%, #2a1008 100%); border-radius: 30% 30% 10% 10%; transform: skewX(-5deg); animation: pma-tent 9s ease-in-out infinite; }
.scn-party-ends-military-arrangements .tent-2 { position:absolute; bottom:28%; right:15%; width:35px; height:22px; background: linear-gradient(180deg, #3a1808 0%, #1a0800 100%); border-radius: 30% 30% 10% 10%; transform: skewX(5deg); animation: pma-tent 9s ease-in-out infinite reverse; }
.scn-party-ends-military-arrangements .sentinel-1 { position:absolute; bottom:34%; left:30%; width:14px; height:40px; background: linear-gradient(180deg, #1a0800 0%, #2a1008 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: rotate(2deg); animation: pma-sentinel 6s ease-in-out infinite alternate; }
.scn-party-ends-military-arrangements .sentinel-2 { position:absolute; bottom:34%; right:30%; width:14px; height:38px; background: linear-gradient(180deg, #1a0800 0%, #2a1008 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: rotate(-2deg); animation: pma-sentinel 6s ease-in-out infinite alternate-reverse; }
.scn-party-ends-military-arrangements .watchfire { position:absolute; bottom:15%; left:50%; width:20px; height:10px; margin-left:-10px; background: radial-gradient(ellipse at 50% 100%, #e08030 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: pma-fire 3s ease-in-out infinite alternate; }
.scn-party-ends-military-arrangements .dust-settle { position:absolute; bottom:5%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(50,20,10,.4) 0%, transparent 100%); filter: blur(8px); animation: pma-dust 12s linear infinite; }

@keyframes pma-sunset { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes pma-tent { 0%,100% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-2px); } }
@keyframes pma-sentinel { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes pma-fire { 0% { transform: scaleY(1); opacity: .7; } 50% { transform: scaleY(1.4); opacity: 1; } 100% { transform: scaleY(0.8); opacity: .6; } }
@keyframes pma-dust { 0% { transform: translateX(-10px); opacity: .3; } 50% { transform: translateX(10px); opacity: .5; } 100% { transform: translateX(-10px); opacity: .3; } }

.scn-xenophon-abandons-colony {
  background: linear-gradient(180deg, #f2e3c6 0%, #e8c9a0 30%, #b5d1e0 70%, #7fa3b3 100%),
              radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%);
}
.scn-xenophon-abandons-colony .sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #f6e8ce 0%, #c4d6e8 70%); animation: xac-sky 12s ease-in-out infinite alternate; }
.scn-xenophon-abandons-colony .sun { position: absolute; top: 12%; left: 65%; width: 60px; height: 60px; background: radial-gradient(circle, #fff5c0 0%, #f0c860 80%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(240,200,96,0.5); animation: xac-sun 18s ease-in-out infinite; }
.scn-xenophon-abandons-colony .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #9abfcf 0%, #6c8d9a 100%); animation: xac-sea 20s ease-in-out infinite alternate; }
.scn-xenophon-abandons-colony .ship-1 { position: absolute; bottom: 30%; left: 20%; width: 80px; height: 30px; background: linear-gradient(90deg, #6b4c33 0%, #8b6b4a 50%, #6b4c33 100%); border-radius: 0 30% 30% 0 / 0 60% 60% 0; transform: rotate(-5deg); animation: xac-sway 6s ease-in-out infinite; }
.scn-xenophon-abandons-colony .ship-2 { position: absolute; bottom: 25%; left: 55%; width: 100px; height: 35px; background: linear-gradient(90deg, #5a3d26 0%, #7a5c3a 50%, #5a3d26 100%); border-radius: 0 30% 30% 0 / 0 60% 60% 0; transform: rotate(3deg); animation: xac-sway 8s ease-in-out infinite reverse; }
.scn-xenophon-abandons-colony .sail-1 { position: absolute; bottom: 42%; left: 22%; width: 40px; height: 50px; background: linear-gradient(135deg, #f5f0e0 0%, #d9cbb3 60%, #b8a58a 100%); clip-path: polygon(100% 0, 50% 100%, 0 0); animation: xac-flap 4s ease-in-out infinite; }
.scn-xenophon-abandons-colony .sail-2 { position: absolute; bottom: 38%; left: 58%; width: 50px; height: 60px; background: linear-gradient(135deg, #f0ead8 0%, #d4c6ae 60%, #b89e7e 100%); clip-path: polygon(100% 0, 50% 100%, 0 0); animation: xac-flap 5s ease-in-out infinite reverse; }
.scn-xenophon-abandons-colony .colony-bg { position: absolute; bottom: 45%; left: 5%; right: 70%; height: 20%; background: linear-gradient(180deg, #7a6b5c 0%, #534434 100%); border-radius: 0 0 20% 0; filter: blur(2px); opacity: .6; animation: xac-pulse 15s ease-in-out infinite alternate; }
@keyframes xac-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xac-sun { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 60px 30px rgba(240,200,96,0.5); } 50% { transform: scale(1.05) translateY(-5px); box-shadow: 0 0 80px 40px rgba(240,200,96,0.6); } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 60px 30px rgba(240,200,96,0.5); } }
@keyframes xac-sea { 0% { background-position: 0 0; } 50% { background-position: 10px 5px; } 100% { background-position: 0 0; } }
@keyframes xac-sway { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes xac-flap { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.05); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes xac-pulse { 0% { opacity: 0.5; } 50% { opacity: 0.65; } 100% { opacity: 0.5; } }

.scn-xenophon-urges-unity {
  background: linear-gradient(180deg, #e6d5b8 0%, #c3b096 40%, #8a9a7a 70%, #5c6a4a 100%),
              radial-gradient(ellipse at 40% 30%, #f7eed8 0%, transparent 50%);
}
.scn-xenophon-urges-unity .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #f2e6d0 0%, #d2c6b0 100%); animation: xuu-sky 12s ease-in-out infinite alternate; }
.scn-xenophon-urges-unity .hills { position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #7a8a6a 0%, #5c6a4a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.2); animation: xuu-hills 20s ease-in-out infinite alternate; }
.scn-xenophon-urges-unity .platform { position: absolute; bottom: 22%; left: 45%; width: 60px; height: 40px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 0 0; transform: translateX(-50%); box-shadow: 0 -3px 8px rgba(0,0,0,0.3); animation: xuu-pulse 15s ease-in-out infinite; }
.scn-xenophon-urges-unity .soldiers-left { position: absolute; bottom: 18%; left: 15%; width: 35%; height: 45px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 30% 30% 10% 10%; clip-path: polygon(0% 100%, 5% 20%, 15% 20%, 20% 100%, 20% 100%, 25% 30%, 35% 30%, 40% 100%, 40% 100%, 45% 30%, 55% 30%, 60% 100%, 60% 100%, 65% 20%, 75% 20%, 80% 100%, 80% 100%, 85% 30%, 95% 30%, 100% 100%); animation: xuu-march 10s ease-in-out infinite; }
.scn-xenophon-urges-unity .soldiers-right { position: absolute; bottom: 18%; right: 15%; width: 35%; height: 45px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 30% 30% 10% 10%; clip-path: polygon(0% 100%, 5% 20%, 15% 20%, 20% 100%, 20% 100%, 25% 30%, 35% 30%, 40% 100%, 40% 100%, 45% 30%, 55% 30%, 60% 100%, 60% 100%, 65% 20%, 75% 20%, 80% 100%, 80% 100%, 85% 30%, 95% 30%, 100% 100%); animation: xuu-march 12s ease-in-out infinite reverse; }
.scn-xenophon-urges-unity .speaker { position: absolute; bottom: 35%; left: 50%; width: 20px; height: 55px; background: linear-gradient(180deg, #9a8a7a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: xuu-speak 4s ease-in-out infinite; }
.scn-xenophon-urges-unity .banner { position: absolute; bottom: 42%; left: 50%; width: 30px; height: 40px; background: linear-gradient(135deg, #b87878 0%, #9a5a5a 100%); clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%); transform: translateX(-50%); animation: xuu-wave 3s ease-in-out infinite; }
@keyframes xuu-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xuu-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes xuu-pulse { 0% { box-shadow: 0 -3px 8px rgba(0,0,0,0.3); } 50% { box-shadow: 0 -5px 15px rgba(0,0,0,0.4); } 100% { box-shadow: 0 -3px 8px rgba(0,0,0,0.3); } }
@keyframes xuu-march { 0% { transform: translateX(0); } 25% { transform: translateX(5px); } 50% { transform: translateX(0); } 75% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes xuu-speak { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes xuu-wave { 0% { transform: translateX(-50%) skew(0deg); } 50% { transform: translateX(-50%) skew(5deg); } 100% { transform: translateX(-50%) skew(0deg); } }

.scn-vote-for-departure {
  background: linear-gradient(180deg, #f2e3c0 0%, #d8c9a8 40%, #b5a88a 70%, #8a7a5a 100%),
              radial-gradient(ellipse at 50% 20%, #fff5d8 0%, transparent 60%);
}
.scn-vote-for-departure .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #faf0d8 0%, #d6c8b0 100%); animation: vfd-sky 14s ease-in-out infinite alternate; }
.scn-vote-for-departure .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #a89878 0%, #6a5a3a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.2); }
.scn-vote-for-departure .crowd-left { position: absolute; bottom: 20%; left: 10%; width: 80%; height: 35%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); clip-path: polygon(0% 100%, 3% 15%, 10% 15%, 15% 100%, 20% 100%, 22% 20%, 30% 20%, 35% 100%, 40% 100%, 42% 25%, 50% 25%, 55% 100%, 60% 100%, 62% 20%, 70% 20%, 75% 100%, 80% 100%, 82% 25%, 90% 25%, 95% 100%, 100% 100%); animation: vfd-surge 8s ease-in-out infinite; }
.scn-vote-for-departure .crowd-right { position: absolute; bottom: 20%; right: 10%; width: 80%; height: 35%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); clip-path: polygon(0% 100%, 3% 25%, 10% 25%, 15% 100%, 20% 100%, 22% 20%, 30% 20%, 35% 100%, 40% 100%, 42% 25%, 50% 25%, 55% 100%, 60% 100%, 62% 20%, 70% 20%, 75% 100%, 80% 100%, 82% 25%, 90% 25%, 95% 100%, 100% 100%); animation: vfd-surge 10s ease-in-out infinite reverse; }
.scn-vote-for-departure .podium { position: absolute; bottom: 25%; left: 50%; width: 40px; height: 50px; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a1a 100%); border-radius: 10% 10% 0 0; transform: translateX(-50%); box-shadow: 0 -4px 10px rgba(0,0,0,0.3); }
.scn-vote-for-departure .raised-hands-left { position: absolute; bottom: 42%; left: 25%; width: 15px; height: 20px; background: #5a4a3a; border-radius: 50% 50% 0 0; clip-path: polygon(0 100%, 50% 0, 100% 100%); animation: vfd-hand 3s ease-in-out infinite; }
.scn-vote-for-departure .raised-hands-right { position: absolute; bottom: 40%; right: 30%; width: 15px; height: 20px; background: #5a4a3a; border-radius: 50% 50% 0 0; clip-path: polygon(0 100%, 50% 0, 100% 100%); animation: vfd-hand 3.5s ease-in-out infinite reverse; }
@keyframes vfd-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes vfd-surge { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes vfd-hand { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(-10deg); } }

.scn-heracliot-deception {
  background: linear-gradient(180deg, #4a5b6e 0%, #3a4b5e 30%, #2a3b4e 60%, #1a2b3e 100%),
              radial-gradient(ellipse at 40% 30%, #5a6b7e 0%, transparent 60%);
}
.scn-heracliot-deception .overcast { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #6a7b8e 0%, #4a5b6e 100%); animation: hcd-clouds 20s ease-in-out infinite alternate; }
.scn-heracliot-deception .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); animation: hcd-sea 15s ease-in-out infinite alternate; }
.scn-heracliot-deception .dock { position: absolute; bottom: 28%; left: 10%; width: 60%; height: 8px; background: #4a3a2a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: hcd-creak 5s ease-in-out infinite; }
.scn-heracliot-deception .ship { position: absolute; bottom: 20%; left: 30%; width: 120px; height: 40px; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 30%, #3a2a1a 100%); border-radius: 0 40% 40% 0 / 0 70% 70% 0; transform: rotate(2deg); animation: hcd-sway 6s ease-in-out infinite; }
.scn-heracliot-deception .deceiver { position: absolute; bottom: 24%; left: 48%; width: 18px; height: 40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: hcd-lurk 4s ease-in-out infinite; }
.scn-heracliot-deception .shadow { position: absolute; bottom: 22%; left: 45%; width: 30px; height: 10px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px); animation: hcd-shadow 4s ease-in-out infinite; }
.scn-heracliot-deception .money-sack { position: absolute; bottom: 30%; left: 40%; width: 12px; height: 8px; background: #7a5a3a; border-radius: 50% 50% 40% 40%; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: hcd-sack 3s ease-in-out infinite alternate; }
@keyframes hcd-clouds { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes hcd-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes hcd-creak { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes hcd-sway { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes hcd-lurk { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes hcd-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }
@keyframes hcd-sack { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1) rotate(0); } }

.scn-army-resolves-punishment {
  background: 
    linear-gradient(180deg, #ffe6c0 0%, #ffd699 40%, #e3a370 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255,220,160,0.6) 0%, transparent 60%);
}
.scn-army-resolves-punishment .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fdde9c 0%, #ffe6c0 70%);
  animation: arp-sky 8s ease-in-out infinite alternate;
}
.scn-army-resolves-punishment .temple {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #d4a373 0%, #b58153 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-army-resolves-punishment .podium {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #aa7a4a 0%, #8a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-army-resolves-punishment .judge {
  position: absolute; bottom: 25%; left: 50%; width: 45px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: arp-judge 10s ease-in-out infinite;
}
.scn-army-resolves-punishment .accuser {
  position: absolute; bottom: 25%; left: 35%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: arp-accuser 12s ease-in-out infinite;
}
.scn-army-resolves-punishment .scroll {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #e8d4b8 0%, #c0a080 100%);
  border-radius: 4px;
  animation: arp-scroll 6s ease-in-out infinite;
}
.scn-army-resolves-punishment .sunray {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 70% 20%, rgba(255,230,180,0.3) 0%, transparent 50%);
  animation: arp-sunray 7s ease-in-out infinite alternate;
}
@keyframes arp-sky {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes arp-judge {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(0.5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-0.2deg); }
}
@keyframes arp-accuser {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes arp-scroll {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(0.9); }
  100% { transform: translateY(0) scaleX(1.05); }
}
@keyframes arp-sunray {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.02); }
  100% { opacity: 0.5; transform: scale(0.98); }
}

.scn-generals-examined-fined {
  background: 
    linear-gradient(180deg, #fdf4d8 0%, #f5dba8 50%, #dbb88a 100%),
    radial-gradient(ellipse at 40% 30%, #ffe8b0 0%, transparent 60%);
}
.scn-generals-examined-fined .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fce8b8 0%, #fdf4d8 70%);
  animation: gef-sky 10s ease-in-out infinite alternate;
}
.scn-generals-examined-fined .court-wall {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.15);
}
.scn-generals-examined-fined .table {
  position: absolute; bottom: 22%; left: 35%; width: 80px; height: 16px;
  background: linear-gradient(180deg, #a07050 0%, #805030 100%);
  border-radius: 4px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.2);
}
.scn-generals-examined-fined .official {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #4a3030 0%, #2a1818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gef-official 9s ease-in-out infinite;
}
.scn-generals-examined-fined .general-a {
  position: absolute; bottom: 22%; left: 25%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gef-general-a 14s ease-in-out infinite;
}
.scn-generals-examined-fined .general-b {
  position: absolute; bottom: 22%; left: 50%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gef-general-b 12s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-generals-examined-fined .coins {
  position: absolute; bottom: 24%; left: 45%; width: 30px; height: 10px;
  background: radial-gradient(circle, #d4a040 0%, #a08030 70%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: gef-coins 4s ease-in-out infinite;
}
@keyframes gef-sky {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes gef-official {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes gef-general-a {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0.5deg); }
}
@keyframes gef-general-b {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes gef-coins {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.85) translateY(-1px); }
  100% { transform: scaleY(1); }
}

.scn-xenophon-responds-to-charge {
  background: 
    linear-gradient(180deg, #ffeac2 0%, #f5d299 50%, #dbb078 100%),
    radial-gradient(ellipse at 60% 25%, rgba(255,230,170,0.5) 0%, transparent 60%);
}
.scn-xenophon-responds-to-charge .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fce0b0 0%, #ffeac2 70%);
  animation: xrc-sky 9s ease-in-out infinite alternate;
}
.scn-xenophon-responds-to-charge .sun-glow {
  position: absolute; top: 5%; left: 55%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,240,180,0.6) 0%, rgba(255,230,150,0.2) 50%, transparent 70%);
  animation: xrc-sunglow 6s ease-in-out infinite alternate;
}
.scn-xenophon-responds-to-charge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b08850 0%, #8a6828 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
}
.scn-xenophon-responds-to-charge .xenophon {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xrc-xen 11s ease-in-out infinite;
}
.scn-xenophon-responds-to-charge .accuser-fig {
  position: absolute; bottom: 25%; left: 55%; width: 38px; height: 82px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xrc-accuser 13s ease-in-out infinite;
}
.scn-xenophon-responds-to-charge .staff {
  position: absolute; bottom: 22%; left: 38%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #705040 0%, #503020 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  animation: xrc-staff 8s ease-in-out infinite;
}
.scn-xenophon-responds-to-charge .crowd {
  position: absolute; bottom: 20%; left: 10%; width: 30px; height: 50px;
  background: repeating-linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 10%, transparent 10%, transparent 12%);
  border-radius: 20% 20% 0 0;
  animation: xrc-crowd 15s ease-in-out infinite;
}
@keyframes xrc-sky {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes xrc-sunglow {
  0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(1); }
}
@keyframes xrc-xen {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg) scaleY(1.01); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes xrc-accuser {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0.5deg); }
}
@keyframes xrc-staff {
  0% { transform: rotate(2deg) scaleY(1); }
  50% { transform: rotate(4deg) scaleY(0.97); }
  100% { transform: rotate(1.5deg) scaleY(1.02); }
}
@keyframes xrc-crowd {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}

.scn-xenophon-asks-details {
  background: 
    linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 10%, #5a5a6a 0%, transparent 60%);
}
.scn-xenophon-asks-details .sky-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 70%);
  animation: xad-sky 6s ease-in-out infinite alternate;
}
.scn-xenophon-asks-details .clouds {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 20% 80%, rgba(90,90,100,0.6) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 40%, rgba(80,80,90,0.5) 0%, transparent 40%);
  animation: xad-clouds 20s linear infinite;
}
.scn-xenophon-asks-details .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-xenophon-asks-details .xenophon-lean {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xad-xen 3s ease-in-out infinite;
}
.scn-xenophon-asks-details .accuser-recoil {
  position: absolute; bottom: 25%; left: 55%; width: 38px; height: 82px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xad-accuser 4s ease-in-out infinite reverse;
}
.scn-xenophon-asks-details .lampshade {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 25px;
  background: radial-gradient(circle, #c0b070 0%, #807040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(192,176,112,0.3);
  animation: xad-lamp 5s ease-in-out infinite alternate;
}
.scn-xenophon-asks-details .shadow {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: xad-shadow 3s ease-in-out infinite;
}
@keyframes xad-sky {
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; }
}
@keyframes xad-clouds {
  0% { transform: translateX(0); } 50% { transform: translateX(-20px); } 100% { transform: translateX(0); }
}
@keyframes xad-xen {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(3px) rotate(2deg) scaleY(1.01); }
  100% { transform: translateX(0) rotate(-1deg) scaleY(1); }
}
@keyframes xad-accuser {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-3deg) scaleX(0.95); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes xad-lamp {
  0% { opacity: 0.6; box-shadow: 0 0 20px 4px rgba(192,176,112,0.2); }
  50% { opacity: 0.9; box-shadow: 0 0 40px 12px rgba(192,176,112,0.4); }
  100% { opacity: 0.7; box-shadow: 0 0 25px 6px rgba(192,176,112,0.3); }
}
@keyframes xad-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.8); opacity: 0.7; }
  100% { transform: scaleX(1.1); opacity: 0.4; }
}

/* soldiers-encouraged: dim interior, warm, figure speaking */
.scn-soldiers-encouraged {
  background: linear-gradient(180deg, #3b2a1a 0%, #2a1a0a 40%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%);
}
.scn-soldiers-encouraged .tent-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%);
  animation: encourag-tent-shift 12s ease-in-out infinite alternate;
}
.scn-soldiers-encouraged .tent-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(0deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-soldiers-encouraged .speaker {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: encourag-speak 3s ease-in-out infinite;
}
.scn-soldiers-encouraged .soldier-a,
.scn-soldiers-encouraged .soldier-b {
  position: absolute; bottom: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
}
.scn-soldiers-encouraged .soldier-a { left: 20%; animation: encourag-listen 5s ease-in-out infinite; }
.scn-soldiers-encouraged .soldier-b { right: 20%; animation: encourag-listen 5s ease-in-out infinite reverse; }
.scn-soldiers-encouraged .lamp {
  position: absolute; bottom: 38%; left: 52%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #e0b070 0%, #a08040 80%);
  border-radius: 30% 30% 10% 10%;
  animation: encourag-lamp-sway 3s ease-in-out infinite alternate;
}
.scn-soldiers-encouraged .lamp-glow {
  position: absolute; bottom: 35%; left: 49%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(224,176,112,0.6) 0%, rgba(224,176,112,0.1) 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(224,176,112,0.4);
  animation: encourag-glow-pulse 2s ease-in-out infinite alternate;
}
@keyframes encourag-tent-shift {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(2deg); }
  100% { transform: skewX(-1deg); }
}
@keyframes encourag-speak {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-5deg); }
  50% { transform: translateY(0) rotate(5deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes encourag-listen {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-3deg); }
}
@keyframes encourag-lamp-sway {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes encourag-glow-pulse {
  0% { opacity: 0.7; box-shadow: 0 0 30px 10px rgba(224,176,112,0.3); }
  50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(224,176,112,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 35px 12px rgba(224,176,112,0.35); }
}

/* river-chalus-fish-pigeons: calm, sunlit, wide horizon */
.scn-river-chalus-fish-pigeons {
  background: linear-gradient(180deg, #c4d8e8 0%, #a0c0d0 40%, #7aa0b0 100%),
              radial-gradient(ellipse at 50% 0%, #e8f0f8 0%, transparent 80%);
}
.scn-river-chalus-fish-pigeons .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #d0e4f0 0%, #b0c8d8 60%, #90b0c0 100%);
  animation: chalus-sky 15s ease-in-out infinite alternate;
}
.scn-river-chalus-fish-pigeons .river {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #70a0b8 0%, #508090 50%, #407080 100%);
  border-radius: 40% 40% 0 0 / 10% 10% 0 0;
  animation: chalus-river-flow 8s linear infinite;
}
.scn-river-chalus-fish-pigeons .near-bank {
  position: absolute; bottom: 15%; left: 0; right: 60%; height: 20%;
  background: linear-gradient(180deg, #8a9a70 0%, #5a6a40 100%);
  border-radius: 0 80% 0 0;
}
.scn-river-chalus-fish-pigeons .far-bank {
  position: absolute; bottom: 25%; right: 0; left: 50%; height: 15%;
  background: linear-gradient(180deg, #7a8a60 0%, #4a5a30 100%);
  border-radius: 80% 0 0 0;
}
.scn-river-chalus-fish-pigeons .fish-school {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, #607080 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: chalus-fish 10s ease-in-out infinite;
}
.scn-river-chalus-fish-pigeons .pigeon-flock {
  position: absolute; top: 15%; left: 40%; width: 50px; height: 6px;
  background: radial-gradient(ellipse, #d0d8d0 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: chalus-pigeons 20s linear infinite;
}
.scn-river-chalus-fish-pigeons .cloud-left,
.scn-river-chalus-fish-pigeons .cloud-right {
  position: absolute; top: 10%; width: 70px; height: 14px;
  background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
}
.scn-river-chalus-fish-pigeons .cloud-left { left: 5%; animation: chalus-drift-l 40s linear infinite; }
.scn-river-chalus-fish-pigeons .cloud-right { right: 5%; animation: chalus-drift-r 50s linear infinite reverse; }
@keyframes chalus-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes chalus-river-flow {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes chalus-fish {
  0%,100% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(10px) translateY(-3px); }
  50% { transform: translateX(20px) translateY(0); }
  75% { transform: translateX(10px) translateY(-2px); }
}
@keyframes chalus-pigeons {
  0% { transform: translateX(-20px); }
  50% { transform: translateX(20px) scaleX(1); }
  100% { transform: translateX(-20px); }
}
@keyframes chalus-drift-l {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes chalus-drift-r {
  0% { transform: translateX(40px); }
  100% { transform: translateX(-120vw); }
}

/* dardas-palace-burned: dark mood, sunlit ruins */
.scn-dardas-palace-burned {
  background: linear-gradient(180deg, #9a8a70 0%, #6a5a40 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 0%, #c0a880 0%, transparent 70%);
}
.scn-dardas-palace-burned .sky-burned {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8a890 0%, #9a8a70 100%);
  animation: dardas-sky 20s ease-in-out infinite alternate;
}
.scn-dardas-palace-burned .sun-glare {
  position: absolute; top: 5%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0e0c0 0%, rgba(240,224,192,0.3) 60%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,224,192,0.5);
  animation: dardas-sun-pulse 4s ease-in-out infinite alternate;
}
.scn-dardas-palace-burned .pillar-left,
.scn-dardas-palace-burned .pillar-right {
  position: absolute; bottom: 20%; width: 20px; height: 80px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 50%, #4a3a2a 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 -10px 10px rgba(0,0,0,0.4);
}
.scn-dardas-palace-burned .pillar-left { left: 30%; animation: dardas-pillar-tilt 6s ease-in-out infinite alternate; }
.scn-dardas-palace-burned .pillar-right { right: 30%; animation: dardas-pillar-tilt 6s ease-in-out infinite alternate-reverse; }
.scn-dardas-palace-burned .roof-ruin {
  position: absolute; bottom: 40%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: dardas-roof 10s ease-in-out infinite;
}
.scn-dardas-palace-burned .ash {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: dardas-ash-settle 15s linear infinite;
}
.scn-dardas-palace-burned .smoke {
  position: absolute; top: 20%; left: 30%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: dardas-smoke-rise 12s ease-in-out infinite;
}
@keyframes dardas-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dardas-sun-pulse {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(1); opacity: 0.85; }
}
@keyframes dardas-pillar-tilt {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes dardas-roof {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes dardas-ash-settle {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes dardas-smoke-rise {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.6; }
  100% { transform: translateY(0) scale(1); opacity: 0.2; }
}

/* thapsacus-euphrates: tense, sunlit, river crossing */
.scn-thapsacus-euphrates {
  background: linear-gradient(180deg, #b0c0d0 0%, #8090a0 40%, #607080 100%),
              radial-gradient(ellipse at 50% 100%, #c0d0e0 0%, transparent 70%);
}
.scn-thapsacus-euphrates .sky-thapsacus {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d0d8e0 0%, #a0b0c0 100%);
  animation: thap-sky 18s ease-in-out infinite alternate;
}
.scn-thapsacus-euphrates .euphrates {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5090a0 0%, #307080 50%, #205060 100%);
  animation: thap-river 6s linear infinite;
}
.scn-thapsacus-euphrates .city-wall {
  position: absolute; bottom: 30%; right: 5%; width: 120px; height: 50px;
  background: linear-gradient(0deg, #6a5a4a 0%, #8a7a6a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  transform: skewY(-5deg);
  animation: thap-wall-bob 8s ease-in-out infinite;
}
.scn-thapsacus-euphrates .boat-a,
.scn-thapsacus-euphrates .boat-b {
  position: absolute; bottom: 28%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: inset 0 -3px 3px rgba(0,0,0,0.5);
}
.scn-thapsacus-euphrates .boat-a { left: 20%; animation: thap-boat-rock 4s ease-in-out infinite; }
.scn-thapsacus-euphrates .boat-b { left: 55%; animation: thap-boat-rock 4s ease-in-out infinite 2s; }
.scn-thapsacus-euphrates .soldier-row {
  position: absolute; bottom: 30%; left: 10%; width: 80px; height: 10px;
  background: linear-gradient(90deg, transparent 0%, #3a2a1a 20%, #3a2a1a 40%, transparent 50%, #3a2a1a 60%, #3a2a1a 80%, transparent 100%);
  mask: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
  filter: blur(1px);
  animation: thap-march 3s ease-in-out infinite;
}
.scn-thapsacus-euphrates .dust-mist {
  position: absolute; bottom: 35%; left: 20%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: thap-dust-shift 12s linear infinite;
}
.scn-thapsacus-euphrates .horizon-haze {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(200,200,190,0.2) 0%, transparent 100%);
  animation: thap-haze-pulse 20s ease-in-out infinite alternate;
}
@keyframes thap-sky {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes thap-river {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes thap-wall-bob {
  0%,100% { transform: translateY(0) skewY(-5deg); }
  50% { transform: translateY(-2px) skewY(-5deg); }
}
@keyframes thap-boat-rock {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-3deg); }
  75% { transform: translateX(-5px) rotate(2deg); }
}
@keyframes thap-march {
  0% { transform: translateX(0); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(0); }
}
@keyframes thap-dust-shift {
  0% { transform: translateX(0); opacity: 0.4; }
  50% { transform: translateX(20px); opacity: 0.6; }
  100% { transform: translateX(-10px); opacity: 0.3; }
}
@keyframes thap-haze-pulse {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* Scene: another-speaker-advises */
.scn-another-speaker-advises { background: linear-gradient(180deg, #1a1210 0%, #2c1e18 40%, #3a2a22 100%), radial-gradient(ellipse at 50% 60%, #3a2a22 0%, transparent 70%); min-height: 100%; }
.scn-another-speaker-advises .bg-sa { position:absolute; inset:0; background: linear-gradient(180deg, #1a1210 0%, #2c1e18 50%, #1a1210 100%); animation: sa-bg 12s ease-in-out infinite alternate; }
.scn-another-speaker-advises .wall-sa { position:absolute; top:0; left:5%; width:90%; height:55%; background: linear-gradient(180deg, #3a2a22 0%, #2c1e18 100%); border-radius: 0 0 12% 12%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-another-speaker-advises .floor-sa { position:absolute; bottom:0; width:100%; height:45%; background: linear-gradient(180deg, #2c1e18 0%, #1a1210 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-another-speaker-advises .table-sa { position:absolute; bottom:36%; left:50%; width:100px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-another-speaker-advises .candle-sa { position:absolute; bottom:56%; left:54%; width:8px; height:40px; background: linear-gradient(180deg, #e8d4b0 0%, #c8a87a 100%); border-radius: 2px; transform:rotate(2deg); }
.scn-another-speaker-advises .flame-sa { position:absolute; bottom:88%; left:54.8%; width:14px; height:20px; background: radial-gradient(circle, #ffd060 0%, #ffb830 50%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,184,48,0.6), 0 0 40px 12px rgba(255,184,48,0.3); animation: sa-flame 0.8s ease-in-out infinite alternate; }
.scn-another-speaker-advises .figure1-sa { position:absolute; bottom:36%; left:38%; width:22px; height:60px; background: linear-gradient(180deg, #0e0a08 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sa-figure1 4s ease-in-out infinite; }
.scn-another-speaker-advises .figure2-sa { position:absolute; bottom:36%; left:58%; width:26px; height:48px; background: linear-gradient(180deg, #0e0a08 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sa-figure2 3.5s ease-in-out infinite; }
.scn-another-speaker-advises .shadow-sa { position:absolute; bottom:36%; left:45%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%); transform:rotate(-2deg); animation: sa-shadow 4s ease-in-out infinite; }
@keyframes sa-bg { 0% { opacity:1; } 50% { opacity:0.85; } 100% { opacity:1; } }
@keyframes sa-flame { 0% { transform: scaleY(0.9) rotate(-2deg); } 50% { transform: scaleY(1.05) rotate(2deg); } 100% { transform: scaleY(1) rotate(-1deg); } }
@keyframes sa-figure1 { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sa-figure2 { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sa-shadow { 0% { opacity:0.6; transform: rotate(-2deg) scaleX(1); } 50% { opacity:0.8; transform: rotate(-1deg) scaleX(1.05); } 100% { opacity:0.6; transform: rotate(-2deg) scaleX(1); } }

/* Scene: proposal-send-deputation */
.scn-proposal-send-deputation { background: linear-gradient(180deg, #18141a 0%, #241e28 40%, #2c2430 100%), radial-gradient(ellipse at 50% 70%, #2c2430 0%, transparent 60%); }
.scn-proposal-send-deputation .bg-pd { position:absolute; inset:0; background: linear-gradient(180deg, #18141a 0%, #241e28 50%, #18141a 100%); animation: pd-bg 15s ease-in-out infinite alternate; }
.scn-proposal-send-deputation .wall-pd { position:absolute; top:5%; left:10%; width:80%; height:50%; background: linear-gradient(180deg, #2c2430 0%, #201c24 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-proposal-send-deputation .floor-pd { position:absolute; bottom:0; width:100%; height:45%; background: linear-gradient(180deg, #241e28 0%, #18141a 100%); border-radius: 30% 70% 0 0 / 15% 25% 0 0; }
.scn-proposal-send-deputation .table-pd { position:absolute; bottom:36%; left:50%; width:120px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #3a303e 0%, #2c2430 100%); border-radius: 12px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-proposal-send-deputation .lamp-pd { position:absolute; bottom:52%; left:50%; width:14px; height:28px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a07a 0%, #8a705a 100%); border-radius: 4px 4px 2px 2px; }
.scn-proposal-send-deputation .glow-pd { position:absolute; bottom:66%; left:50%; width:40px; height:40px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffc050 0%, rgba(255,192,80,0.4) 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,192,80,0.3); animation: pd-glow 2s ease-in-out infinite alternate; }
.scn-proposal-send-deputation .figure-left-pd { position:absolute; bottom:36%; left:30%; width:24px; height:58px; background: linear-gradient(180deg, #0a080e 0%, #14101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: pd-figureL 4.5s ease-in-out infinite; }
.scn-proposal-send-deputation .figure-right-pd { position:absolute; bottom:36%; right:30%; width:24px; height:58px; background: linear-gradient(180deg, #0a080e 0%, #14101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: pd-figureR 4s ease-in-out infinite; }
.scn-proposal-send-deputation .shadow-pd { position:absolute; bottom:36%; left:25%; width:150px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%); transform: rotate(-1deg); animation: pd-shadow 4.5s ease-in-out infinite; }
@keyframes pd-bg { 0% { opacity:1; } 50% { opacity:0.8; } 100% { opacity:1; } }
@keyframes pd-glow { 0% { transform: translate(-50%,50%) scale(0.9); opacity:0.7; } 50% { transform: translate(-50%,50%) scale(1.1); opacity:1; } 100% { transform: translate(-50%,50%) scale(1); opacity:0.8; } }
@keyframes pd-figureL { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pd-figureR { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pd-shadow { 0% { opacity:0.5; transform: rotate(-1deg) scaleX(1); } 50% { opacity:0.8; transform: rotate(0deg) scaleX(1.05); } 100% { opacity:0.5; transform: rotate(-1deg) scaleX(1); } }

/* Scene: deputation-carried */
.scn-deputation-carried { background: linear-gradient(180deg, #1a1a1e 0%, #24242a 50%, #1a1a1e 100%), radial-gradient(ellipse at 50% 80%, #2e2e34 0%, transparent 70%); }
.scn-deputation-carried .bg-dc { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1e 0%, #24242a 50%, #1a1a1e 100%); animation: dc-bg 18s ease-in-out infinite alternate; }
.scn-deputation-carried .arch-dc { position:absolute; top:5%; left:10%; width:80%; height:55%; background: linear-gradient(180deg, #2e2e34 0%, #1a1a1e 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-deputation-carried .floor-dc { position:absolute; bottom:0; width:100%; height:40%; background: linear-gradient(180deg, #24242a 0%, #1a1a1e 100%); border-radius: 20% 80% 0 0 / 10% 20% 0 0; }
.scn-deputation-carried .column-left-dc { position:absolute; bottom:10%; left:15%; width:16px; height:90%; background: linear-gradient(180deg, #2e2e34 0%, #1c1c22 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.4); animation: dc-column 20s ease-in-out infinite; }
.scn-deputation-carried .column-right-dc { position:absolute; bottom:10%; right:15%; width:16px; height:90%; background: linear-gradient(180deg, #2e2e34 0%, #1c1c22 100%); border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,0.4); animation: dc-column 20s ease-in-out infinite reverse; }
.scn-deputation-carried .figure-a-dc { position:absolute; bottom:30%; left:30%; width:18px; height:48px; background: linear-gradient(180deg, #0e0e12 0%, #1a1a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: dc-figA 3.5s ease-in-out infinite; }
.scn-deputation-carried .figure-b-dc { position:absolute; bottom:30%; left:45%; width:18px; height:48px; background: linear-gradient(180deg, #0e0e12 0%, #1a1a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: dc-figB 4s ease-in-out infinite; }
.scn-deputation-carried .figure-c-dc { position:absolute; bottom:30%; left:60%; width:18px; height:48px; background: linear-gradient(180deg, #0e0e12 0%, #1a1a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: dc-figC 4.2s ease-in-out infinite; }
.scn-deputation-carried .light-dc { position:absolute; bottom:55%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at center, rgba(255,200,100,0.25) 0%, transparent 100%); animation: dc-light 5s ease-in-out infinite alternate; }
@keyframes dc-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dc-column { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes dc-figA { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dc-figB { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dc-figC { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dc-light { 0% { opacity:0.3; transform: translateX(-50%) scaleY(0.8); } 50% { opacity:0.6; transform: translateX(-50%) scaleY(1.2); } 100% { opacity:0.4; transform: translateX(-50%) scaleY(1); } }

/* Scene: cyrus-replies-about-abrocomas */
.scn-cyrus-replies-about-abrocomas { background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 40%, #3a2a24 100%), radial-gradient(ellipse at 50% 50%, #3a2a24 0%, transparent 70%); }
.scn-cyrus-replies-about-abrocomas .bg-cr { position:absolute; inset:0; background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 50%, #1a1412 100%); animation: cr-bg 14s ease-in-out infinite alternate; }
.scn-cyrus-replies-about-abrocomas .wall-cr { position:absolute; top:0; left:5%; width:90%; height:60%; background: linear-gradient(180deg, #3a2a24 0%, #2a1e1a 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-cyrus-replies-about-abrocomas .floor-cr { position:absolute; bottom:0; width:100%; height:40%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-cyrus-replies-about-abrocomas .throne-cr { position:absolute; bottom:25%; left:50%; width:70px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2e 0%, #3a2a20 100%); border-radius: 10% 10% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: cr-throne 10s ease-in-out infinite; }
.scn-cyrus-replies-about-abrocomas .figure-cyrus-cr { position:absolute; bottom:35%; left:47%; width:24px; height:60px; background: linear-gradient(180deg, #120e0c 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: cr-figC 4.2s ease-in-out infinite; }
.scn-cyrus-replies-about-abrocomas .figure-herald-cr { position:absolute; bottom:32%; left:56%; width:20px; height:56px; background: linear-gradient(180deg, #120e0c 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: cr-figH 3.8s ease-in-out infinite; }
.scn-cyrus-replies-about-abrocomas .lamp-cr { position:absolute; bottom:50%; left:65%; width:12px; height:30px; background: linear-gradient(180deg, #c0a07a 0%, #8a705a 100%); border-radius: 3px; animation: cr-lamp 3s ease-in-out infinite alternate; }
.scn-cyrus-replies-about-abrocomas .glow-cr { position:absolute; bottom:66%; left:66%; width:50px; height:50px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffc050 0%, rgba(255,192,80,0.3) 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,192,80,0.2); animation: cr-glow 2.5s ease-in-out infinite alternate; }
.scn-cyrus-replies-about-abrocomas .shadow-cr { position:absolute; bottom:25%; left:40%; width:120px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%); transform: rotate(-2deg); animation: cr-shadow 4.5s ease-in-out infinite; }
@keyframes cr-bg { 0% { opacity:1; } 50% { opacity:0.85; } 100% { opacity:1; } }
@keyframes cr-throne { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes cr-figC { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cr-figH { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cr-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes cr-glow { 0% { transform: translate(-50%,50%) scale(0.9); opacity:0.6; } 50% { transform: translate(-50%,50%) scale(1.1); opacity:1; } 100% { transform: translate(-50%,50%) scale(1); opacity:0.8; } }
@keyframes cr-shadow { 0% { opacity:0.5; transform: rotate(-2deg) scaleX(1); } 50% { opacity:0.7; transform: rotate(-1deg) scaleX(1.05); } 100% { opacity:0.5; transform: rotate(-2deg) scaleX(1); } }

/* footnote-distance – calm, dim-interior */
.scn-footnote-distance {
  background: linear-gradient(180deg, #2a1f18 0%, #1f1410 40%, #140c08 100%),
              radial-gradient(ellipse at 50% 90%, #3a2820 0%, transparent 60%);
}
.scn-footnote-distance .table {
  position: absolute; bottom: 16%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.6);
  transform: perspective(400px) rotateX(8deg);
}
.scn-footnote-distance .scroll {
  position: absolute; bottom: 30%; left: 42%; width: 25%; height: 8%;
  background: linear-gradient(180deg, #c8a060 0%, #b08040 50%, #906030 100%);
  border-radius: 20% 20% 40% 40%; transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: fn-scroll 8s ease-in-out infinite alternate;
}
.scn-footnote-distance .lantern {
  position: absolute; bottom: 36%; left: 16%; width: 8%; height: 14%;
  background: radial-gradient(circle at 50% 80%, #f0a040 0%, #c08030 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 10px #f0a040, 0 0 60px 20px rgba(240,160,64,.3);
  animation: fn-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-footnote-distance .book {
  position: absolute; bottom: 28%; left: 26%; width: 12%; height: 7%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a1a 100%);
  border-radius: 8% 8% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(-5deg);
}
.scn-footnote-distance .shadow-a {
  position: absolute; bottom: 14%; left: 50%; width: 60%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: fn-shadow 10s ease-in-out infinite alternate;
}
.scn-footnote-distance .shadow-b {
  position: absolute; bottom: 12%; left: 30%; width: 30%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: fn-shadow 12s ease-in-out infinite alternate-reverse;
}
.scn-footnote-distance .amber-glow {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(240,160,64,.15) 0%, transparent 70%);
  animation: fn-ambient 6s ease-in-out infinite alternate;
}
@keyframes fn-scroll {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  50% { transform: translateX(-50%) scaleY(1.03) rotate(1deg); }
  100% { transform: translateX(-50%) scaleY(0.98) rotate(-1deg); }
}
@keyframes fn-lantern-glow {
  0% { box-shadow: 0 0 20px 6px #f0a040, 0 0 40px 12px rgba(240,160,64,.2); opacity: .85; }
  50% { box-shadow: 0 0 40px 14px #ffb860, 0 0 80px 24px rgba(255,184,96,.4); opacity: 1; }
  100% { box-shadow: 0 0 24px 8px #f0a040, 0 0 50px 16px rgba(240,160,64,.25); opacity: .9; }
}
@keyframes fn-shadow {
  0% { transform: translateX(-50%) scaleX(.9); opacity: .6; }
  50% { transform: translateX(-50%) scaleX(1.1); opacity: .8; }
  100% { transform: translateX(-50%) scaleX(.95); opacity: .7; }
}
@keyframes fn-ambient {
  0% { opacity: .3; }
  50% { opacity: .5; }
  100% { opacity: .35; }
}

/* miltocythes-deserts – tense, dark */
.scn-miltocythes-deserts {
  background: linear-gradient(180deg, #0a0a1a 0%, #0d0d25 30%, #0f0f20 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a30 0%, transparent 60%);
}
.scn-miltocythes-deserts .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a12 0%, #151525 100%);
  animation: ml-sky 20s ease-in-out infinite alternate;
}
.scn-miltocythes-deserts .dune {
  position: absolute; bottom: 10%; left: -10%; right: -10%; height: 40%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 60% 40% 0 0 / 100% 70% 0 0;
  transform: perspective(200px) rotateX(5deg);
  animation: ml-dune 15s ease-in-out infinite alternate;
}
.scn-miltocythes-deserts .figure-deserter {
  position: absolute; bottom: 32%; left: 55%; width: 7%; height: 18%;
  background: linear-gradient(180deg, #2a2a3e 0%, #0f0f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-figure 6s ease-in-out infinite;
}
.scn-miltocythes-deserts .horse {
  position: absolute; bottom: 28%; left: 62%; width: 20%; height: 14%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 60% 40% 30% 70% / 60% 50% 50% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  transform: scaleX(.85);
  animation: ml-horse 4s ease-in-out infinite alternate;
}
.scn-miltocythes-deserts .spear {
  position: absolute; bottom: 38%; left: 56%; width: 1.5%; height: 20%;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ml-spear 5s ease-in-out infinite;
}
.scn-miltocythes-deserts .cloak {
  position: absolute; bottom: 30%; left: 48%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 0%, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%;
  transform-origin: top center;
  animation: ml-cloak 8s ease-in-out infinite alternate;
}
@keyframes ml-sky {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes ml-dune {
  0% { transform: perspective(200px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(5deg) translateY(-4px); }
  100% { transform: perspective(200px) rotateX(5deg) translateY(0); }
}
@keyframes ml-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0); }
}
@keyframes ml-horse {
  0% { transform: scaleX(.85) translateY(0); }
  50% { transform: scaleX(.85) translateY(-2px); }
  100% { transform: scaleX(.85) translateY(0); }
}
@keyframes ml-spear {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(18deg) translateY(0); }
}
@keyframes ml-cloak {
  0% { transform: rotateY(0deg) scaleX(1); }
  50% { transform: rotateY(5deg) scaleX(1.05); }
  100% { transform: rotateY(-5deg) scaleX(.95); }
}

/* oath-taking – tense, starlit */
.scn-oath-taking {
  background: linear-gradient(180deg, #1a1a3e 0%, #0f0f2e 40%, #080820 100%),
              radial-gradient(ellipse at 50% 0%, #2a2a5e 0%, transparent 50%);
}
.scn-oath-taking .tent-ceiling {
  position: absolute; top: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: oa-tent 14s ease-in-out infinite alternate;
}
.scn-oath-taking .tent-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-oath-taking .figure-left {
  position: absolute; bottom: 18%; left: 25%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2e2e46 0%, #0e0e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oa-figure-l 6s ease-in-out infinite;
}
.scn-oath-taking .figure-right {
  position: absolute; bottom: 18%; right: 25%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2e2e46 0%, #0e0e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: oa-figure-r 6s ease-in-out infinite 3s;
}
.scn-oath-taking .fire-bowl {
  position: absolute; bottom: 22%; left: 50%; width: 8%; height: 6%;
  background: radial-gradient(circle at 50% 40%, #ff8040 0%, #b04020 70%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 12px #ff8040, 0 0 80px 24px rgba(255,128,64,.3);
  animation: oa-fire 2s ease-in-out infinite alternate;
}
.scn-oath-taking .star.twinkle-1 {
  position: absolute; top: 12%; left: 18%; width: 4px; height: 4px;
  background: #aab0ff;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #aab0ff;
  animation: oa-star1 4s ease-in-out infinite;
}
.scn-oath-taking .star.twinkle-2 {
  position: absolute; top: 8%; right: 22%; width: 3px; height: 3px;
  background: #d0d8ff;
  border-radius: 50%;
  box-shadow: 0 0 6px 1px #d0d8ff;
  animation: oa-star2 6s ease-in-out infinite 2s;
}
.scn-oath-taking .oath-light {
  position: absolute; bottom: 24%; left: 40%; right: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,128,64,.1) 0%, transparent 70%);
  animation: oa-glow 4s ease-in-out infinite alternate;
}
@keyframes oa-tent {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes oa-figure-l {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes oa-figure-r {
  0% { transform: scaleX(-1) translateY(0) rotate(2deg); }
  25% { transform: scaleX(-1) translateY(-3px) rotate(-1deg); }
  50% { transform: scaleX(-1) translateY(0) rotate(-2deg); }
  75% { transform: scaleX(-1) translateY(-2px) rotate(1deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(0deg); }
}
@keyframes oa-fire {
  0% { box-shadow: 0 0 30px 8px #ff8040, 0 0 60px 16px rgba(255,128,64,.2); opacity: .8; }
  50% { box-shadow: 0 0 50px 16px #ff9040, 0 0 100px 32px rgba(255,144,64,.4); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px #ff8040, 0 0 70px 20px rgba(255,128,64,.25); opacity: .85; }
}
@keyframes oa-star1 {
  0%,100% { opacity: .4; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1.2); }
}
@keyframes oa-star2 {
  0%,100% { opacity: .5; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.4); }
}
@keyframes oa-glow {
  0% { opacity: .2; }
  50% { opacity: .4; }
  100% { opacity: .25; }
}

/* ariaeus-advises-route – tense, dim-interior */
.scn-ariaeus-advises-route {
  background: linear-gradient(180deg, #1f181c 0%, #161014 40%, #0c080a 100%),
              radial-gradient(ellipse at 50% 80%, #2a1e1c 0%, transparent 60%);
}
.scn-ariaeus-advises-route .council-table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 28%;
  background: linear-gradient(180deg, #4a3830 0%, #2e201a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
  transform: perspective(300px) rotateX(10deg);
}
.scn-ariaeus-advises-route .map-roll {
  position: absolute; bottom: 28%; left: 50%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #a08050 0%, #8a6634 100%);
  border-radius: 20% 20% 40% 40%;
  transform: translateX(-50%) rotate(2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ar-map 12s ease-in-out infinite alternate;
}
.scn-ariaeus-advises-route .commander {
  position: absolute; bottom: 22%; left: 36%; width: 9%; height: 24%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-commander 5s ease-in-out infinite;
}
.scn-ariaeus-advises-route .officer {
  position: absolute; bottom: 22%; right: 36%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #2e2424 0%, #120a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: ar-officer 7s ease-in-out infinite 2s;
}
.scn-ariaeus-advises-route .oil-lamp {
  position: absolute; bottom: 32%; left: 22%; width: 5%; height: 10%;
  background: radial-gradient(circle at 50% 60%, #e0a040 0%, #b07020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #e0a040, 0 0 40px 12px rgba(224,160,64,.3);
  animation: ar-lamp 4s ease-in-out infinite alternate;
}
.scn-ariaeus-advises-route .candle {
  position: absolute; bottom: 30%; right: 20%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #e8c060 0%, #b08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px #e8c060;
  animation: ar-candle 3s ease-in-out infinite alternate;
}
.scn-ariaeus-advises-route .wall-shadow {
  position: absolute; bottom: 24%; left: 30%; right: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: ar-shadow 8s ease-in-out infinite alternate;
}
@keyframes ar-map {
  0% { transform: translateX(-50%) rotate(2deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(-3deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(1deg) scaleY(.98); }
}
@keyframes ar-commander {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes ar-officer {
  0% { transform: scaleX(-1) translateY(0) rotate(1deg); }
  25% { transform: scaleX(-1) translateY(-2px) rotate(-1deg); }
  50% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  75% { transform: scaleX(-1) translateY(-3px) rotate(2deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(-1deg); }
}
@keyframes ar-lamp {
  0% { box-shadow: 0 0 14px 4px #e0a040, 0 0 28px 8px rgba(224,160,64,.2); opacity: .85; }
  50% { box-shadow: 0 0 26px 8px #f0b040, 0 0 50px 16px rgba(240,176,64,.4); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #e0a040, 0 0 32px 10px rgba(224,160,64,.25); opacity: .9; }
}
@keyframes ar-candle {
  0% { transform: scaleY(1); opacity: .8; box-shadow: 0 0 8px 2px #e8c060; }
  50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 16px 6px #f0d060; }
  100% { transform: scaleY(.95); opacity: .85; box-shadow: 0 0 10px 3px #e8c060; }
}
@keyframes ar-shadow {
  0% { opacity: .5; transform: scaleY(1); }
  50% { opacity: .7; transform: scaleY(1.1); }
  100% { opacity: .55; transform: scaleY(.95); }
}

.scn-eteonicus-and-anaxibius-flee { background: linear-gradient(180deg, #f9e7c2 0%, #d4b88a 30%, #8b6f4a 70%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-eteonicus-and-anaxibius-flee .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #fce4b0 0%, #e8c488 100%); }
.scn-eteonicus-and-anaxibius-flee .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%); animation: ef-sea 8s ease-in-out infinite alternate; }
.scn-eteonicus-and-anaxibius-flee .cliff { position:absolute; bottom:40%; left:10%; width:30%; height:50%; background: linear-gradient(180deg, #8b7355 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0; box-shadow: -10px 0 20px rgba(0,0,0,0.3); animation: ef-cliff 12s ease-in-out infinite; }
.scn-eteonicus-and-anaxibius-flee .citadel { position:absolute; bottom:65%; left:18%; width:40px; height:50px; background: linear-gradient(180deg, #a08060 0%, #6a5a4a 100%); border-radius: 4px; box-shadow: 2px 2px 8px rgba(0,0,0,0.5); animation: ef-citadel 6s ease-in-out infinite; }
.scn-eteonicus-and-anaxibius-flee .smack { position:absolute; bottom:12%; left:65%; width:80px; height:25px; background: linear-gradient(90deg, #6a5a3a 0%, #4a3a2a 50%, #5a4a3a 100%); border-radius:30% 30% 10% 10%; transform: rotate(-2deg); animation: ef-smack 4s ease-in-out infinite; }
.scn-eteonicus-and-anaxibius-flee .figure-pursuer { position:absolute; bottom:46%; left:18%; width:16px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ef-run 2s linear infinite; }
.scn-eteonicus-and-anaxibius-flee .figure-fleeing { position:absolute; bottom:38%; left:62%; width:14px; height:26px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ef-run 2s linear infinite 0.5s; }
.scn-eteonicus-and-anaxibius-flee .wave-front { position:absolute; bottom:6%; left:0; width:150%; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(200,220,230,0.3) 100%); border-radius: 50%; filter: blur(4px); animation: ef-wave 5s ease-in-out infinite; }
@keyframes ef-sea { 0% { opacity:0.8; background-position: 0 0; } 50% { opacity:1; background-position: -20px 0; } 100% { opacity:0.9; background-position: 10px 0; } }
@keyframes ef-cliff { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ef-citadel { 0% { transform: scale(1); } 50% { transform: scale(1.03) translateY(-3px); } 100% { transform: scale(1); } }
@keyframes ef-smack { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(6px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes ef-run { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes ef-wave { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-20px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

.scn-soldiers-appeal-to-xenophon { background: linear-gradient(180deg, #f0d8a0 0%, #d0b880 30%, #a08050 60%, #4a3a1a 100%), radial-gradient(ellipse at 50% 60%, #d0b880 0%, transparent 80%); }
.scn-soldiers-appeal-to-xenophon .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fce4b0 0%, #e0c898 100%); }
.scn-soldiers-appeal-to-xenophon .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); }
.scn-soldiers-appeal-to-xenophon .rock { position:absolute; bottom:40%; left:30%; width:60px; height:50px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 4px 4px 10px rgba(0,0,0,0.4); animation: sa-rock 10s ease-in-out infinite; }
.scn-soldiers-appeal-to-xenophon .xenophon { position:absolute; bottom:58%; left:33%; width:18px; height:34px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sa-speak 3s ease-in-out infinite; }
.scn-soldiers-appeal-to-xenophon .soldier-left { position:absolute; bottom:36%; left:15%; width:16px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sa-sway 4s ease-in-out infinite; }
.scn-soldiers-appeal-to-xenophon .soldier-right { position:absolute; bottom:38%; left:55%; width:16px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sa-sway 4s ease-in-out infinite 1s; }
.scn-soldiers-appeal-to-xenophon .trireme-bg { position:absolute; bottom:12%; right:5%; width:120px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 10% 50% 10% 50%; transform: scale(0.8); opacity:0.4; animation: sa-boat 20s linear infinite; }
@keyframes sa-rock { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sa-speak { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(-1px) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sa-sway { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sa-boat { 0% { transform: translateX(0) scale(0.8); opacity:0.4; } 50% { transform: translateX(-40px) scale(0.85); opacity:0.6; } 100% { transform: translateX(-80px) scale(0.8); opacity:0.3; } }

.scn-soldiers-form-in-thracian-square { background: linear-gradient(180deg, #e8d4a0 0%, #c8b480 30%, #a08850 60%, #5a4020 100%), radial-gradient(ellipse at 50% 30%, #d4bc80 0%, transparent 70%); }
.scn-soldiers-form-in-thracian-square .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fce0a8 0%, #dcc090 100%); }
.scn-soldiers-form-in-thracian-square .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a1a 100%); }
.scn-soldiers-form-in-thracian-square .heavy-infantry { position:absolute; bottom:30%; left:25%; width:120px; height:80px; background: repeating-linear-gradient(0deg, #5a4a3a 0px, #5a4a3a 8px, #4a3a2a 8px, #4a3a2a 16px, #3a2a1a 16px, #3a2a1a 24px); border-radius: 10px; box-shadow: 4px 4px 12px rgba(0,0,0,0.5); animation: ts-march 6s ease-in-out infinite; }
.scn-soldiers-form-in-thracian-square .light-wing-left { position:absolute; bottom:30%; left:10%; width:50px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 30% 10% 10% 30%; animation: ts-flank 4s ease-in-out infinite; }
.scn-soldiers-form-in-thracian-square .light-wing-right { position:absolute; bottom:30%; right:10%; width:50px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 30% 30% 10%; animation: ts-flank 4s ease-in-out infinite 1s; }
.scn-soldiers-form-in-thracian-square .dust-clouds { position:absolute; bottom:28%; left:0; width:100%; height:30px; background: linear-gradient(90deg, transparent, rgba(180,160,120,0.4) 30%, rgba(180,160,120,0.6) 70%, transparent); filter: blur(8px); animation: ts-dust 10s linear infinite; }
.scn-soldiers-form-in-thracian-square .commander { position:absolute; bottom:50%; left:45%; width:16px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ts-command 3s ease-in-out infinite; }
@keyframes ts-march { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ts-flank { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ts-dust { 0% { transform: translateX(0); opacity:0.5; } 50% { transform: translateX(30px); opacity:0.8; } 100% { transform: translateX(60px); opacity:0.3; } }
@keyframes ts-command { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }

.scn-xenophon-cautions-restraint { background: linear-gradient(180deg, #f0d8a0 0%, #c8b080 30%, #907850 60%, #4a3a1a 100%), radial-gradient(ellipse at 50% 50%, #c8b080 0%, transparent 70%); }
.scn-xenophon-cautions-restraint .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fce4b0 0%, #d8c090 100%); }
.scn-xenophon-cautions-restraint .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a0a 100%); }
.scn-xenophon-cautions-restraint .platform { position:absolute; bottom:40%; left:50%; width:80px; height:20px; margin-left:-40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: xc-platform 8s ease-in-out infinite; }
.scn-xenophon-cautions-restraint .xenophon-calm { position:absolute; bottom:52%; left:50%; width:18px; height:34px; margin-left:-9px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xc-calm 5s ease-in-out infinite; }
.scn-xenophon-cautions-restraint .soldier-angry-left { position:absolute; bottom:36%; left:25%; width:16px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xc-rage 0.8s ease-in-out infinite; }
.scn-xenophon-cautions-restraint .soldier-angry-right { position:absolute; bottom:38%; left:65%; width:16px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xc-rage 0.8s ease-in-out infinite 0.4s; }
.scn-xenophon-cautions-restraint .weapon { position:absolute; bottom:38%; left:30%; width:4px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 2px; animation: xc-weapon 1s ease-in-out infinite; }
.scn-xenophon-cautions-restraint .shadow-band { position:absolute; bottom:44%; left:0; right:0; height:20px; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.4) 50%, transparent); filter: blur(6px); animation: xc-shadow 6s ease-in-out infinite; }
@keyframes xc-platform { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes xc-calm { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes xc-rage { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(5deg); } 50% { transform: translateY(-1px) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes xc-weapon { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }
@keyframes xc-shadow { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.7; transform: translateY(3px); } 100% { opacity:0.3; transform: translateY(0); } }

.scn-xenophon-declines {
  background: linear-gradient(180deg, #f7d9b0 0%, #e8b68a 30%, #c8845a 60%, #6b4f3a 100%),
              radial-gradient(ellipse at 40% 80%, #ffb07a 0%, transparent 70%);
}
.scn-xenophon-declines .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fee4b0 0%, #f0c890 50%, #d4a070 100%);
  animation: xd-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-declines .hills {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b7a4a 0%, #4a5a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.3);
  animation: xd-hills 25s ease-in-out infinite alternate;
}
.scn-xenophon-declines .tent {
  position: absolute; bottom: 35%; left: 25%; width: 90px; height: 60px;
  background: linear-gradient(180deg, #c8a882 0%, #8c6b4a 100%);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  box-shadow: -4px 0 10px rgba(0,0,0,.4);
  animation: xd-tent 8s ease-in-out infinite;
}
.scn-xenophon-declines .figure-x {
  position: absolute; bottom: 28%; left: 40%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xd-fig-x 6s ease-in-out infinite;
}
.scn-xenophon-declines .figure-s {
  position: absolute; bottom: 28%; left: 30%; width: 26px; height: 38px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xd-fig-s 7s ease-in-out infinite;
}
.scn-xenophon-declines .fire {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 80%, #ffb040 0%, #ff8020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ff9040, 0 0 60px 20px rgba(255,144,64,.3);
  animation: xd-fire 2s ease-in-out infinite alternate;
}
.scn-xenophon-declines .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 0 0;
}
@keyframes xd-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes xd-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes xd-tent { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes xd-fig-x { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 60% { transform: translateX(8px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(12px) translateY(0) rotate(0deg); } }
@keyframes xd-fig-s { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 30% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); } 60% { transform: translateX(-6px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes xd-fire { 0% { opacity: .7; box-shadow: 0 0 20px 6px #ff9040; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #ffb060; } 100% { opacity: .8; box-shadow: 0 0 25px 8px #ff9040; } }

.scn-xenophon-laughs {
  background: linear-gradient(180deg, #f7e0c0 0%, #e8c090 40%, #c88860 70%, #6b4f3a 100%),
              radial-gradient(ellipse at 50% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-xenophon-laughs .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffeac0 0%, #f0c890 70%, #d0a870 100%);
  animation: xl-sky 12s ease-in-out infinite alternate;
}
.scn-xenophon-laughs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
}
.scn-xenophon-laughs .figure-x {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: 50% 100%;
  animation: xl-fig-x 1.5s ease-in-out infinite;
}
.scn-xenophon-laughs .figure-s {
  position: absolute; bottom: 25%; left: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xl-fig-s 2s ease-in-out infinite;
}
.scn-xenophon-laughs .stone {
  position: absolute; bottom: 38%; left: 55%; width: 14px; height: 14px;
  background: radial-gradient(circle at 35% 35%, #aaa 0%, #666 100%);
  border-radius: 50%;
  animation: xl-stone 3s ease-in-out infinite;
}
.scn-xenophon-laughs .campfire {
  position: absolute; bottom: 30%; left: 60%; width: 18px; height: 28px;
  background: radial-gradient(ellipse at 50% 80%, #ff8020 0%, #ff6040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ff9040, 0 0 40px 15px rgba(255,144,64,.4);
  animation: xl-fire 0.8s ease-in-out infinite alternate;
}
@keyframes xl-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes xl-fig-x { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-4px); } 50% { transform: rotate(-3deg) translateY(0); } 75% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes xl-fig-s { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xl-stone { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(180deg); } 100% { transform: translateY(0) rotate(360deg); } }
@keyframes xl-fire { 0% { opacity: .6; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.2); } }

.scn-seuthes-pays {
  background: linear-gradient(180deg, #f7e0b0 0%, #e8b080 30%, #c88850 60%, #6b4f3a 100%),
              radial-gradient(ellipse at 30% 70%, #ffb070 0%, transparent 50%);
}
.scn-seuthes-pays .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fee0b0 0%, #f0c090 50%, #d0a070 100%);
  animation: sp-sky 18s ease-in-out infinite alternate;
}
.scn-seuthes-pays .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-seuthes-pays .cattle1 {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
  animation: sp-cattle 14s ease-in-out infinite;
}
.scn-seuthes-pays .cattle2 {
  position: absolute; bottom: 20%; left: 35%; width: 44px; height: 30px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
  animation: sp-cattle 16s ease-in-out infinite reverse;
}
.scn-seuthes-pays .cattle3 {
  position: absolute; bottom: 20%; left: 50%; width: 38px; height: 26px;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
  animation: sp-cattle 12s ease-in-out infinite;
}
.scn-seuthes-pays .figure-s {
  position: absolute; bottom: 28%; left: 60%; width: 26px; height: 42px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-fig-s 8s ease-in-out infinite;
}
.scn-seuthes-pays .figure-x {
  position: absolute; bottom: 28%; left: 68%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-fig-x 9s ease-in-out infinite;
}
.scn-seuthes-pays .bag {
  position: absolute; bottom: 26%; left: 63%; width: 20px; height: 18px;
  background: radial-gradient(ellipse at 50% 50%, #b09070 0%, #705040 100%);
  border-radius: 50%;
  box-shadow: 0 3px 6px rgba(0,0,0,.5);
  animation: sp-bag 10s ease-in-out infinite;
}
@keyframes sp-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes sp-cattle { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-5px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes sp-fig-s { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sp-fig-x { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes sp-bag { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

.scn-xenophon-delivers-spoils {
  background: linear-gradient(180deg, #f7e0b0 0%, #e8b080 40%, #c88850 70%, #6b4f3a 100%),
              radial-gradient(ellipse at 60% 40%, #ffc080 0%, transparent 60%);
}
.scn-xenophon-delivers-spoils .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fee0b0 0%, #f0c090 50%, #d0a070 100%);
  animation: xds-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-delivers-spoils .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-xenophon-delivers-spoils .tent {
  position: absolute; bottom: 30%; left: 15%; width: 80px; height: 55px;
  background: linear-gradient(180deg, #c8a882 0%, #8c6b4a 100%);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  box-shadow: -4px 0 10px rgba(0,0,0,.4);
  animation: xds-tent 12s ease-in-out infinite;
}
.scn-xenophon-delivers-spoils .figure-x {
  position: absolute; bottom: 28%; left: 40%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xds-fig-x 7s ease-in-out infinite;
}
.scn-xenophon-delivers-spoils .figure-c {
  position: absolute; bottom: 28%; left: 48%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xds-fig-c 8s ease-in-out infinite;
}
.scn-xenophon-delivers-spoils .figure-p {
  position: absolute; bottom: 28%; left: 54%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xds-fig-p 9s ease-in-out infinite;
}
.scn-xenophon-delivers-spoils .treasure {
  position: absolute; bottom: 26%; left: 44%; width: 28px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #c8a070 0%, #8a6040 100%);
  border-radius: 30%;
  box-shadow: 0 3px 8px rgba(0,0,0,.6);
  animation: xds-treasure 10s ease-in-out infinite;
}
@keyframes xds-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes xds-tent { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes xds-fig-x { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xds-fig-c { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes xds-fig-p { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes xds-treasure { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

/* cyrus-promises-pay */
.scn-cyrus-promises-pay {
  background: 
    radial-gradient(ellipse at 50% 80%, #8a3a1a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-cyrus-promises-pay .tent {
  position: absolute; inset: 10% 10% 20% 10%;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-cyrus-promises-pay .table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 6%; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: cp-table 6s ease-in-out infinite;
}
.scn-cyrus-promises-pay .cyrus {
  position: absolute; bottom: 22%; left: 38%; width: 12%; height: 30%;
  background: radial-gradient(ellipse 80% 100% at 50% 0, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-cyrus 4s ease-in-out infinite;
}
.scn-cyrus-promises-pay .general1,
.scn-cyrus-promises-pay .general2 {
  position: absolute; bottom: 22%; width: 10%; height: 28%;
  background: radial-gradient(ellipse 80% 100% at 50% 0, #3a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-general 5s ease-in-out infinite;
}
.scn-cyrus-promises-pay .general1 { left: 24%; }
.scn-cyrus-promises-pay .general2 { left: 56%; }
.scn-cyrus-promises-pay .fire {
  position: absolute; bottom: 28%; left: 48%; width: 6%; height: 12%;
  background: radial-gradient(circle, #ffa040 0%, #c06020 40%, transparent 70%);
  box-shadow: 0 0 40px 20px #c06020, 0 0 80px 40px rgba(192,96,32,.4);
  animation: cp-fire 2s ease-in-out infinite alternate;
}
.scn-cyrus-promises-pay .shadow-pillar {
  position: absolute; bottom: 10%; left: 18%; width: 4%; height: 70%;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%);
  transform: skewX(-5deg);
  animation: cp-pillar 8s ease-in-out infinite;
}
@keyframes cp-table {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes cp-cyrus {
  0%,100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes cp-general {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-1deg); }
}
@keyframes cp-fire {
  0% { transform: scaleY(1) scaleX(.9); opacity: .8; }
  50% { transform: scaleY(1.15) scaleX(1); opacity: 1; }
  100% { transform: scaleY(.85) scaleX(.95); opacity: .7; }
}
@keyframes cp-pillar {
  0%,100% { opacity: .6; }
  50% { opacity: 1; }
}

/* menon-speech-to-his-men */
.scn-menon-speech-to-his-men {
  background: 
    radial-gradient(ellipse at 50% 70%, #7a3a1a 0%, transparent 50%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-menon-speech-to-his-men .platform {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-menon-speech-to-his-men .menon {
  position: absolute; bottom: 35%; left: 44%; width: 12%; height: 30%;
  background: radial-gradient(ellipse 80% 100% at 50% 0, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-menon 4s ease-in-out infinite;
}
.scn-menon-speech-to-his-men .troops {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 25%;
  background: repeating-linear-gradient(
    90deg,
    #2a1a0a 0px, #2a1a0a 8px,
    transparent 8px, transparent 12px
  );
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: ms-troops 6s ease-in-out infinite;
}
.scn-menon-speech-to-his-men .torch {
  position: absolute; bottom: 30%; left: 20%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #3a2a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0;
}
.scn-menon-speech-to-his-men .torch-glow {
  position: absolute; bottom: 40%; left: 17%; width: 12%; height: 18%;
  background: radial-gradient(circle, #ffa040 0%, #c06020 30%, transparent 70%);
  box-shadow: 0 0 30px 15px #c06020;
  animation: ms-torch 2s ease-in-out infinite alternate;
}
.scn-menon-speech-to-his-men .tent-fold {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(90deg, transparent, #4a2a1a 30%, #4a2a1a 70%, transparent);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: ms-fold 8s ease-in-out infinite;
}
.scn-menon-speech-to-his-men .flag {
  position: absolute; top: 8%; right: 15%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #a0461a 0%, #c8553d 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
  animation: ms-flag 3s ease-in-out infinite;
}
@keyframes ms-menon {
  0%,100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
}
@keyframes ms-troops {
  0%,100% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.05); opacity: 1; }
}
@keyframes ms-torch {
  0% { transform: scaleY(.9) scaleX(.8); opacity: .7; }
  50% { transform: scaleY(1.2) scaleX(1); opacity: 1; }
  100% { transform: scaleY(.8) scaleX(.9); opacity: .6; }
}
@keyframes ms-fold {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
@keyframes ms-flag {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}

/* menon-troops-cross-first */
.scn-menon-troops-cross-first {
  background: 
    radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%);
}
.scn-menon-troops-cross-first .river {
  position: absolute; top: 40%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #1a3a4a 0%, #0a2a3a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: mt-river 10s ease-in-out infinite alternate;
}
.scn-menon-troops-cross-first .soldier1,
.scn-menon-troops-cross-first .soldier2,
.scn-menon-troops-cross-first .soldier3 {
  position: absolute; bottom: 35%; width: 8%; height: 25%;
  background: radial-gradient(ellipse 80% 100% at 50% 0, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mt-soldier 5s ease-in-out infinite;
}
.scn-menon-troops-cross-first .soldier1 { left: 20%; animation-delay: 0s; }
.scn-menon-troops-cross-first .soldier2 { left: 35%; animation-delay: 0.3s; }
.scn-menon-troops-cross-first .soldier3 { left: 50%; animation-delay: 0.6s; }
.scn-menon-troops-cross-first .torch-bank {
  position: absolute; bottom: 40%; left: 65%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #3a2a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0;
}
.scn-menon-troops-cross-first .water-ripple {
  position: absolute; top: 60%; left: 10%; width: 80%; height: 4%;
  background: repeating-linear-gradient(
    90deg,
    rgba(80,160,200,.3) 0px, transparent 10px,
    rgba(80,160,200,.1) 20px, transparent 30px
  );
  border-radius: 50%;
  animation: mt-ripple 4s ease-in-out infinite;
}
.scn-menon-troops-cross-first .moon {
  position: absolute; top: 8%; right: 12%; width: 10%; height: 10%;
  background: radial-gradient(circle, #a0b8c8 0%, #506070 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(80,100,120,.3);
  animation: mt-moon 20s ease-in-out infinite alternate;
}
@keyframes mt-river {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-3px); }
  100% { transform: scaleY(.98) translateY(2px); }
}
@keyframes mt-soldier {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(12px) rotate(-2deg); }
  100% { transform: translateX(16px) rotate(0deg); }
}
@keyframes mt-ripple {
  0% { transform: translateX(0) scaleX(1); opacity: .3; }
  50% { transform: translateX(10px) scaleX(1.1); opacity: .5; }
  100% { transform: translateX(0) scaleX(1); opacity: .3; }
}
@keyframes mt-moon {
  0% { transform: translateY(0); }
  50% { transform: translateY(8px); }
  100% { transform: translateY(0); }
}

/* cyrus-thanks-menon */
.scn-cyrus-thanks-menon {
  background: 
    radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 50%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-cyrus-thanks-menon .cyrus {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 35%;
  background: radial-gradient(ellipse 80% 100% at 50% 0, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-cyrus 6s ease-in-out infinite;
}
.scn-cyrus-thanks-menon .menon {
  position: absolute; bottom: 20%; left: 50%; width: 12%; height: 35%;
  background: radial-gradient(ellipse 80% 100% at 50% 0, #3a2a1a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-menon 6s ease-in-out infinite;
}
.scn-cyrus-thanks-menon .fire {
  position: absolute; bottom: 25%; left: 44%; width: 8%; height: 15%;
  background: radial-gradient(circle, #ffb060 0%, #c07020 40%, transparent 70%);
  box-shadow: 0 0 50px 25px #c07020;
  animation: ct-fire 4s ease-in-out infinite alternate;
}
.scn-cyrus-thanks-menon .fire-glow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(192,112,32,.3) 0%, transparent 70%);
  animation: ct-glow 4s ease-in-out infinite alternate;
}
.scn-cyrus-thanks-menon .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
}
.scn-cyrus-thanks-menon .tent-flap {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ct-flap 8s ease-in-out infinite;
}
@keyframes ct-cyrus {
  0%,100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
}
@keyframes ct-menon {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes ct-fire {
  0% { transform: scaleY(1) scaleX(.9); opacity: .8; }
  50% { transform: scaleY(1.2) scaleX(1); opacity: 1; }
  100% { transform: scaleY(.8) scaleX(.95); opacity: .7; }
}
@keyframes ct-glow {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.2); opacity: .7; }
  100% { transform: scale(1); opacity: .5; }
}
@keyframes ct-flap {
  0%,100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.03); }
}

/* Scene 1: king-sends-heralds - tense, dawn */
.scn-king-sends-heralds {
  background: 
    linear-gradient(180deg, #2b1a2e 0%, #4a2a3e 30%, #a07050 60%, #d0a070 80%, #e8c080 100%),
    radial-gradient(ellipse at 40% 100%, #d0a070 0%, transparent 60%);
}
.scn-king-sends-heralds .dawn-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #4a2a3e 0%, #a06040 40%, transparent 100%);
  animation: si1-sky 8s ease-in-out infinite alternate;
}
.scn-king-sends-heralds .mist {
  position: absolute; inset: 20% 0 40% 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,150,100,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: si1-mist 12s ease-in-out infinite;
}
.scn-king-sends-heralds .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-king-sends-heralds .tent-1 {
  position: absolute; bottom: 32%; left: 15%; width: 80px; height: 90px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a12 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  opacity: 0.7;
  animation: si1-tent 20s ease-in-out infinite;
}
.scn-king-sends-heralds .tent-2 {
  position: absolute; bottom: 30%; right: 20%; width: 70px; height: 80px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1210 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  opacity: 0.6;
  animation: si1-tent 20s ease-in-out infinite reverse;
}
.scn-king-sends-heralds .herald-horse {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #2a1a12 100%);
  border-radius: 40% 20% 20% 40% / 50% 40% 40% 50%;
  transform: rotate(10deg);
  animation: si1-horse 4s ease-in-out infinite;
}
.scn-king-sends-heralds .herald-fig {
  position: absolute; bottom: 35%; left: 33%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-fig 4s ease-in-out infinite alternate;
}
.scn-king-sends-heralds .spear {
  position: absolute; bottom: 38%; left: 35%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #604030 100%);
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: si1-spear 2s ease-in-out infinite;
}
.scn-king-sends-heralds .dust {
  position: absolute; bottom: 28%; left: 25%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,140,100,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: si1-dust 6s ease-in-out infinite alternate;
}
@keyframes si1-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes si1-mist { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(0.9) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes si1-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes si1-horse { 0% { transform: rotate(8deg) translateX(0) } 25% { transform: rotate(12deg) translateX(3px) } 50% { transform: rotate(10deg) translateX(0) } 75% { transform: rotate(14deg) translateX(-2px) } 100% { transform: rotate(8deg) translateX(0) } }
@keyframes si1-fig { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes si1-spear { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes si1-dust { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-5px) scaleX(1.2) } 100% { transform: translateX(0) scaleX(1) } }

/* Scene 2: clearchus-displays-army - tense, sunlit */
.scn-clearchus-displays-army {
  background:
    linear-gradient(180deg, #4a82b0 0%, #7ab8d6 50%, #c8e0f0 100%),
    radial-gradient(ellipse at 50% 0%, #f0e080 0%, transparent 50%);
}
.scn-clearchus-displays-army .sun-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a82b0 0%, #6aa8c8 40%, transparent 100%);
  animation: si2-skyd 6s ease-in-out infinite alternate;
}
.scn-clearchus-displays-army .sun-glow {
  position: absolute; top: 8%; left: 45%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffe080 0%, #f0d060 20%, transparent 70%);
  opacity: 0.6;
  animation: si2-gl 4s ease-in-out infinite alternate;
}
.scn-clearchus-displays-army .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8a860 0%, #a08030 100%);
  border-radius: 30% 70% 0 0 / 80% 50% 0 0;
}
.scn-clearchus-displays-army .soldier-1 {
  position: absolute; bottom: 22%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: si2-sol 3s ease-in-out infinite;
}
.scn-clearchus-displays-army .soldier-2 {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: si2-sol 3s ease-in-out infinite 0.5s;
}
.scn-clearchus-displays-army .soldier-3 {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: si2-sol 3s ease-in-out infinite 1s;
}
.scn-clearchus-displays-army .shield-fg {
  position: absolute; bottom: 25%; left: 22%; width: 18px; height: 22px;
  background: radial-gradient(circle, #b08050 0%, #704030 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: translateX(-5px);
  animation: si2-sh 5s ease-in-out infinite reverse;
}
.scn-clearchus-displays-army .spear-line {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 3px;
  background: repeating-linear-gradient(90deg, #a08050 0px, #a08050 3px, transparent 3px, transparent 25px);
  transform: rotate(-5deg);
  animation: si2-sp 7s linear infinite;
}
@keyframes si2-skyd { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes si2-gl { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes si2-sol { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes si2-sh { 0% { transform: translateX(-5px) scale(1) } 50% { transform: translateX(-2px) scale(0.95) } 100% { transform: translateX(-5px) scale(1) } }
@keyframes si2-sp { 0% { transform: rotate(-5deg) translateX(0) } 100% { transform: rotate(-5deg) translateX(100px) } }

/* Scene 3: clearchus-demands-breakfast - funny, sunlit */
.scn-clearchus-demands-breakfast {
  background:
    linear-gradient(180deg, #7090c0 0%, #b0d0e0 60%, #e0e8c0 100%),
    radial-gradient(ellipse at 50% 0%, #fff4a0 0%, transparent 60%);
}
.scn-clearchus-demands-breakfast .bright-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7090c0 0%, #b0d0e0 50%, transparent 100%);
  animation: si3-sk 4s ease-in-out infinite alternate;
}
.scn-clearchus-demands-breakfast .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-clearchus-demands-breakfast .clearchus {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: si3-cl 2s ease-in-out infinite;
}
.scn-clearchus-demands-breakfast .arm-extend {
  position: absolute; bottom: 30%; left: 42%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #c8553d 0%, #8a3018 100%);
  border-radius: 4px 50% 50% 4px;
  transform-origin: left center;
  animation: si3-arm 2s ease-in-out infinite alternate;
}
.scn-clearchus-demands-breakfast .ambassador-1 {
  position: absolute; bottom: 20%; right: 20%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: scaleX(-1);
  animation: si3-amb 3s ease-in-out infinite;
}
.scn-clearchus-demands-breakfast .ambassador-2 {
  position: absolute; bottom: 20%; right: 30%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: si3-amb 3s ease-in-out infinite 1s;
}
.scn-clearchus-demands-breakfast .bread-basket {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #b08040 0%, #906020 100%);
  border-radius: 40% 40% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: si3-bread 4s ease-in-out infinite;
}
.scn-clearchus-demands-breakfast .steam {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 25px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.6) 0%, transparent 70%);
  filter: blur(4px);
  transform: translateX(-50%);
  animation: si3-steam 3s ease-out infinite;
}
@keyframes si3-sk { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes si3-cl { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-3px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes si3-arm { 0% { transform: rotate(10deg) scaleX(1) } 50% { transform: rotate(30deg) scaleX(1.2) } 100% { transform: rotate(10deg) scaleX(1) } }
@keyframes si3-amb { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes si3-bread { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(0.95) translateY(2px) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes si3-steam { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity:0.6 } 50% { transform: translateX(-55%) translateY(-10px) scale(0.8); opacity:0.3 } 100% { transform: translateX(-50%) translateY(-20px) scale(0); opacity:0 } }

/* Scene 4: truce-agreed - calm, sunlit */
.scn-truce-agreed {
  background:
    linear-gradient(180deg, #c0d8e8 0%, #e0f0f8 50%, #f0f0e0 100%),
    radial-gradient(ellipse at 50% 100%, #f0f0e0 0%, transparent 60%);
}
.scn-truce-agreed .gentle-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0d8e8 0%, #e0f0f8 60%, transparent 100%);
  animation: si4-sk 10s ease-in-out infinite alternate;
}
.scn-truce-agreed .olive-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b0b080 0%, #808050 100%);
  border-radius: 40% 60% 0 0 / 50% 40% 0 0;
}
.scn-truce-agreed .council-tent {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 120px;
  background: linear-gradient(135deg, #d0c0a0 0%, #a08060 100%);
  clip-path: polygon(5% 100%, 50% 0%, 95% 100%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: si4-tent 20s ease-in-out infinite;
}
.scn-truce-agreed .seat-left-1 {
  position: absolute; bottom: 20%; left: 24%; width: 16px; height: 25px;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%);
  border-radius: 20% 20% 30% 30%;
  transform-origin: bottom center;
  animation: si4-seat 6s ease-in-out infinite;
}
.scn-truce-agreed .seat-left-2 {
  position: absolute; bottom: 20%; left: 28%; width: 16px; height: 25px;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%);
  border-radius: 20% 20% 30% 30%;
  transform-origin: bottom center;
  animation: si4-seat 6s ease-in-out infinite 1.5s;
}
.scn-truce-agreed .seat-right {
  position: absolute; bottom: 20%; right: 28%; width: 16px; height: 25px;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 20% 20% 30% 30%;
  transform-origin: bottom center;
  animation: si4-seat 6s ease-in-out infinite 3s;
}
.scn-truce-agreed .table {
  position: absolute; bottom: 18%; left: 35%; width: 60px; height: 10px;
  background: linear-gradient(90deg, #b08040 0%, #906020 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  animation: si4-table 15s ease-in-out infinite;
}
.scn-truce-agreed .olive-branch {
  position: absolute; bottom: 28%; left: 42%; width: 40px; height: 12px;
  background: radial-gradient(ellipse at 30% 50%, #6a9a3a 0%, transparent 70%);
  clip-path: polygon(0% 50%, 100% 30%, 100% 70%);
  transform: rotate(15deg);
  opacity: 0.8;
  animation: si4-olive 8s ease-in-out infinite alternate;
}
@keyframes si4-sk { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes si4-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes si4-seat { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes si4-table { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes si4-olive { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(0.9) } 100% { transform: rotate(15deg) scaleX(1) } }

/* Scene: no-attack-crossing (calm dawn) */
.scn-no-attack-crossing {
  background: linear-gradient(180deg, #4a3a5e 0%, #8b7a6b 30%, #c9b896 60%, #d9c9b0 100%), radial-gradient(ellipse at 50% 30%, #e8d0a0 0%, transparent 70%);
}
.scn-no-attack-crossing .sky-dawn {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #7a5a4a 0%, #b08860 40%, #d8b890 70%, transparent 100%);
  animation: nac-sky 15s ease-in-out infinite alternate;
}
.scn-no-attack-crossing .river {
  position:absolute; bottom:25%; left:0; right:0; height:15%;
  background: linear-gradient(90deg, #6a8a9a 0%, #8aaaba 30%, #aac0d0 50%, #8aaaba 70%, #6a8a9a 100%);
  border-radius: 0% 0% 40% 40% / 0% 0% 20% 20%;
  animation: nac-river 8s ease-in-out infinite alternate;
}
.scn-no-attack-crossing .bridge {
  position:absolute; bottom:35%; left:20%; right:20%; height:8%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: perspective(200px) rotateX(5deg);
}
.scn-no-attack-crossing .bridge-arch {
  position:absolute; bottom:38%; left:35%; right:35%; height:15%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 100%);
  animation: nac-arch 6s ease-in-out infinite;
}
.scn-no-attack-crossing .guard-left {
  position:absolute; bottom:35%; left:28%; width:12px; height:40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom;
  animation: nac-guard 4s ease-in-out infinite;
}
.scn-no-attack-crossing .guard-right {
  position:absolute; bottom:35%; right:28%; width:12px; height:40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom;
  animation: nac-guard 4.5s ease-in-out infinite reverse;
}
.scn-no-attack-crossing .distant-hills {
  position:absolute; bottom:40%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 100%);
  border-radius: 60% 40% 0% 0% / 100% 80% 0% 0%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: nac-hills 20s ease-in-out infinite alternate;
}
.scn-no-attack-crossing .cloud-slow {
  position:absolute; top:15%; left:10%; width:90px; height:20px;
  background: linear-gradient(180deg, rgba(255,220,180,.6) 0%, rgba(255,220,180,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: nac-cloud 45s linear infinite;
}
@keyframes nac-sky { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.8; transform: scaleY(.98) } }
@keyframes nac-river { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: 0% 0% } }
@keyframes nac-arch { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes nac-guard { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes nac-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes nac-cloud { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }

/* Scene: river-physcus-opis (calm sunlit) */
.scn-river-physcus-opis {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 30%, #f0e68c 70%, #ffd700 100%), radial-gradient(ellipse at 50% 20%, #fff5cc 0%, transparent 60%);
}
.scn-river-physcus-opis .sky-sun {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 40%, transparent 100%);
  animation: rpo-sky 12s ease-in-out infinite;
}
.scn-river-physcus-opis .river-broad {
  position:absolute; bottom:20%; left:0; right:0; height:20%;
  background: linear-gradient(90deg, #4682b4 0%, #5b9bd5 30%, #87cefa 50%, #5b9bd5 70%, #4682b4 100%);
  border-radius: 30% 30% 0% 0% / 50% 50% 0% 0%;
  animation: rpo-river 10s linear infinite alternate;
}
.scn-river-physcus-opis .bridge-wide {
  position:absolute; bottom:32%; left:15%; right:15%; height:10%;
  background: linear-gradient(180deg, #8b7355 0%, #6b4e31 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  transform: perspective(300px) rotateX(8deg);
}
.scn-river-physcus-opis .city-opis {
  position:absolute; bottom:38%; left:5%; width:60%; height:20%;
  background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 50%, #4a2a0f 100%);
  clip-path: polygon(0% 100%, 10% 60%, 15% 80%, 20% 40%, 25% 70%, 30% 30%, 35% 65%, 40% 20%, 45% 55%, 50% 15%, 55% 50%, 60% 25%, 65% 60%, 70% 35%, 75% 70%, 80% 40%, 85% 65%, 90% 50%, 100% 100%);
  animation: rpo-city 30s ease-in-out infinite alternate;
}
.scn-river-physcus-opis .boat-1 {
  position:absolute; bottom:22%; left:25%; width:30px; height:10px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2d0a 100%);
  border-radius: 0% 0% 50% 50%;
  animation: rpo-boat 20s ease-in-out infinite;
}
.scn-river-physcus-opis .boat-2 {
  position:absolute; bottom:24%; right:30%; width:20px; height:8px;
  background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 100%);
  border-radius: 0% 0% 50% 50%;
  animation: rpo-boat 25s ease-in-out infinite reverse;
}
.scn-river-physcus-opis .sun {
  position:absolute; top:10%; right:20%; width:50px; height:50px;
  background: radial-gradient(circle, #fff5cc 0%, #ffd700 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,.6), 0 0 80px 40px rgba(255,215,0,.3);
  animation: rpo-sun 5s ease-in-out infinite alternate;
}
.scn-river-physcus-opis .cloud-drift {
  position:absolute; top:5%; left:30%; width:120px; height:25px;
  background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: rpo-cloud 50s linear infinite;
}
@keyframes rpo-sky { 0% { opacity:.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.01) } 100% { opacity:.85; transform: scaleY(.99) } }
@keyframes rpo-river { 0% { background-position: 0% 0% } 50% { background-position: 8% 0% } 100% { background-position: 0% 0% } }
@keyframes rpo-city { 0% { opacity:.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:.9; transform: translateY(0) } }
@keyframes rpo-boat { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(10px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes rpo-sun { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.98); opacity:.95 } }
@keyframes rpo-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }

/* Scene: villages-of-parysatis (calm sunlit) */
.scn-villages-of-parysatis {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 25%, #90ee90 50%, #228b22 100%), radial-gradient(ellipse at 50% 40%, #b0e0ff 0%, transparent 70%);
}
.scn-villages-of-parysatis .sky-warm {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 40%, transparent 100%);
  animation: vop-sky 18s ease-in-out infinite alternate;
}
.scn-villages-of-parysatis .hills-rolling {
  position:absolute; bottom:30%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 50% 30% 0% 0% / 80% 70% 0% 0%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: vop-hills 22s ease-in-out infinite;
}
.scn-villages-of-parysatis .village-house-1,
.scn-villages-of-parysatis .village-house-2,
.scn-villages-of-parysatis .village-house-3 {
  position:absolute; bottom:30%;
  width:25px; height:35px;
  background: linear-gradient(180deg, #deb887 0%, #b8860b 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: vop-house 10s ease-in-out infinite;
}
.scn-villages-of-parysatis .village-house-1 { left:15%; }
.scn-villages-of-parysatis .village-house-2 { left:35%; width:30px; height:40px; animation-delay: -3s; }
.scn-villages-of-parysatis .village-house-3 { left:55%; width:20px; height:30px; animation-delay: -6s; }
.scn-villages-of-parysatis .field-corn {
  position:absolute; bottom:18%; left:5%; right:5%; height:15%;
  background: linear-gradient(180deg, #daa520 0%, #b8860b 40%, #8b6508 100%);
  border-radius: 20% 20% 0% 0%;
  box-shadow: inset 0 5px 10px rgba(0,0,0,.2);
  animation: vop-field 14s ease-in-out infinite alternate;
}
.scn-villages-of-parysatis .trees {
  position:absolute; bottom:35%; right:10%; width:40px; height:50px;
  background: radial-gradient(ellipse at 50% 100%, #228b22 0%, #006400 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px rgba(34,139,34,.3);
  animation: vop-trees 8s ease-in-out infinite;
}
.scn-villages-of-parysatis .cattle {
  position:absolute; bottom:20%; left:25%; width:12px; height:8px;
  background: #8b4513;
  border-radius: 50% 50% 0% 0%;
  animation: vop-cattle 6s ease-in-out infinite;
}
.scn-villages-of-parysatis .road-path {
  position:absolute; bottom:22%; left:40%; width:20%; height:4%;
  background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 100%);
  border-radius: 50%;
  transform: perspective(100px) rotateX(20deg);
  animation: vop-road 12s linear infinite alternate;
}
@keyframes vop-sky { 0% { opacity:.85; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.01) } 100% { opacity:.9; transform: scaleY(.99) } }
@keyframes vop-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes vop-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes vop-field { 0% { opacity:.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.03) } 100% { opacity:.95; transform: scaleY(.98) } }
@keyframes vop-trees { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes vop-cattle { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes vop-road { 0% { background-position: 0% 0%; opacity:.7 } 50% { background-position: 10% 0%; opacity:1 } 100% { background-position: 0% 0%; opacity:.7 } }

/* Scene: zapatas-halt-mistrust (tense sunlit) */
.scn-zapatas-halt-mistrust {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 20%, #f4a460 50%, #d2691e 80%), radial-gradient(ellipse at 50% 80%, #d2691e 0%, transparent 60%);
}
.scn-zapatas-halt-mistrust .sky-bright {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 30%, transparent 100%);
  animation: zhm-sky 10s ease-in-out infinite alternate;
}
.scn-zapatas-halt-mistrust .ground-harsh {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #d2691e 0%, #a0522d 40%, #8b4513 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: zhm-ground 5s ease-in-out infinite;
}
.scn-zapatas-halt-mistrust .tent-camp {
  position:absolute; bottom:30%; left:20%; width:50px; height:40px;
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: 0 8px 12px rgba(0,0,0,.4);
  transform: perspective(100px) rotateX(5deg);
  animation: zhm-tent 8s ease-in-out infinite;
}
.scn-zapatas-halt-mistrust .figure-left,
.scn-zapatas-halt-mistrust .figure-right {
  position:absolute; bottom:25%; width:14px; height:45px;
  background: linear-gradient(180deg, #2f1b0e 0%, #1a0f07 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom;
  animation: zhm-figure 3s ease-in-out infinite;
}
.scn-zapatas-halt-mistrust .figure-left { left:38%; animation-delay: 0s; }
.scn-zapatas-halt-mistrust .figure-right { right:38%; animation-delay: 1.5s; }
.scn-zapatas-halt-mistrust .weapon-spear {
  position:absolute; bottom:55%; left:44%; width:2px; height:30px;
  background: #5c3a1e;
  transform: rotate(15deg);
  animation: zhm-spear 2s ease-in-out infinite alternate;
}
.scn-zapatas-halt-mistrust .campfire {
  position:absolute; bottom:22%; left:47%; width:12px; height:12px;
  background: radial-gradient(circle, #ff4500 0%, #ffa500 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,69,0,.4);
  animation: zhm-fire 1.5s ease-in-out infinite alternate;
}
.scn-zapatas-halt-mistrust .shadow-sharp {
  position:absolute; bottom:0; left:30%; right:30%; height:5%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.6) 50%, transparent 100%);
  animation: zhm-shadow 4s ease-in-out infinite;
}
@keyframes zhm-sky { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.85; transform: scaleY(.98) } }
@keyframes zhm-ground { 0% { background-position: 0% 0% } 50% { background-position: 5% 0% } 100% { background-position: 0% 0% } }
@keyframes zhm-tent { 0%,100% { transform: perspective(100px) rotateX(5deg) translateY(0) } 50% { transform: perspective(100px) rotateX(5deg) translateY(-3px) } }
@keyframes zhm-figure { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes zhm-spear { 0% { transform: rotate(12deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(12deg) } }
@keyframes zhm-fire { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.9); opacity:.8 } }
@keyframes zhm-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.2) } 100% { opacity:.3; transform: scaleX(1) } }

/* Scene: seuthes-tests-lad (dawn, funny) */
.scn-seuthes-tests-lad {
  background: linear-gradient(180deg, #ffd6a5 0%, #fca85f 40%, #d97b4a 100%),
              radial-gradient(ellipse at 50% 100%, #fca85f 0%, transparent 70%);
}
.scn-seuthes-tests-lad .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #ffdbac 0%, #ffb56b 60%, transparent 100%); animation: stl-sky 8s ease-in-out infinite alternate; }
.scn-seuthes-tests-lad .sun { position:absolute; top:12%; left:60%; width:30px; height:30px; background: radial-gradient(circle, #ffe47a 0%, #ffa137 70%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(255,165,55,0.6); animation: stl-sun 4s ease-in-out infinite; }
.scn-seuthes-tests-lad .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b3875a 0%, #7a5a3a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; }
.scn-seuthes-tests-lad .tent { position:absolute; bottom:30%; left:20%; width:80px; height:60px; background: linear-gradient(135deg, #d4a373 0%, #b08050 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: stl-tent 6s ease-in-out infinite; }
.scn-seuthes-tests-lad .figure-episthenes { position:absolute; bottom:20%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #e0b080 0%, #c09060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: stl-episthenes 2s ease-in-out infinite alternate; }
.scn-seuthes-tests-lad .figure-seuthes { position:absolute; bottom:20%; left:60%; width:22px; height:44px; background: linear-gradient(180deg, #d0a070 0%, #b08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: stl-seuthes 3s ease-in-out infinite; }
.scn-seuthes-tests-lad .figure-boy { position:absolute; bottom:20%; left:52%; width:16px; height:32px; background: linear-gradient(180deg, #d4a373 0%, #a07040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: stl-boy 1.5s ease-in-out infinite alternate; }
.scn-seuthes-tests-lad .sword { position:absolute; bottom:30%; left:62%; width:4px; height:30px; background: #c0c0c0; border-radius: 2px; transform-origin: bottom center; animation: stl-sword 2s linear infinite; }
@keyframes stl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes stl-sun { 0% { transform: scale(0.9) translateY(0); opacity:0.9 } 50% { transform: scale(1.05) translateY(-2px); opacity:1 } 100% { transform: scale(0.95) translateY(0); opacity:0.95 } }
@keyframes stl-tent { 0%,100% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-3px) rotate(0.5deg) } }
@keyframes stl-episthenes { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-8px) rotate(15deg) scale(1.1) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes stl-seuthes { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-5px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes stl-boy { 0% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes stl-sword { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(30deg) translateY(-5px) } 100% { transform: rotate(0deg) translateY(0) } }

/* Scene: camp-hills (dawn, calm) */
.scn-camp-hills {
  background: linear-gradient(180deg, #f5e6cc 0%, #d4c4a8 40%, #a89070 100%),
              radial-gradient(ellipse at 50% 100%, #e0d0b8 0%, transparent 70%);
}
.scn-camp-hills .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f2e2c8 0%, #d8c0a0 100%); animation: ch-sky 15s ease-in-out infinite alternate; }
.scn-camp-hills .mountains { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #9b876b 0%, #6b5945 100%); clip-path: polygon(0% 100%, 15% 60%, 30% 80%, 45% 40%, 60% 70%, 75% 50%, 90% 65%, 100% 100%); }
.scn-camp-hills .hills { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7d6a 0%, #5e4f3e 100%); border-radius: 60% 40% 0 0 / 50% 50% 0 0; animation: ch-hills 20s ease-in-out infinite; }
.scn-camp-hills .village-hut-1 { position:absolute; bottom:28%; left:20%; width:40px; height:30px; background: linear-gradient(135deg, #a08060 0%, #806040 100%); border-radius: 5% 5% 10% 10%; }
.scn-camp-hills .village-hut-2 { position:absolute; bottom:30%; left:35%; width:35px; height:25px; background: linear-gradient(135deg, #b09070 0%, #907050 100%); border-radius: 5% 5% 10% 10%; animation: ch-hut 8s ease-in-out infinite; }
.scn-camp-hills .campfire { position:absolute; bottom:20%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #ffb347 0%, #d4742a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,179,71,0.6); animation: ch-fire 3s ease-in-out infinite alternate; }
.scn-camp-hills .smoke { position:absolute; bottom:28%; left:55%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(200,180,160,0.6) 0%, transparent 80%); filter: blur(6px); animation: ch-smoke 12s linear infinite; }
.scn-camp-hills .soldier { position:absolute; bottom:22%; left:50%; width:14px; height:30px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ch-soldier 6s ease-in-out infinite; }
@keyframes ch-sky { 0% { opacity:0.7 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes ch-hills { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ch-hut { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ch-fire { 0% { transform: scale(0.9); opacity:0.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.9 } }
@keyframes ch-smoke { 0% { transform: translateY(0) translateX(0) scale(0.8); opacity:0.6 } 50% { transform: translateY(-30px) translateX(10px) scale(1.2); opacity:0.3 } 100% { transform: translateY(-60px) translateX(-5px) scale(1.5); opacity:0 } }
@keyframes ch-soldier { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }

/* Scene: thracians-sue-truce (dawn, tense) */
.scn-thracians-sue-truce {
  background: linear-gradient(180deg, #c8b89a 0%, #a08060 40%, #705040 100%),
              radial-gradient(ellipse at 50% 100%, #a08060 0%, transparent 70%);
}
.scn-thracians-sue-truce .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8c4a8 0%, #b09878 100%); animation: tt-sky 10s ease-in-out infinite alternate; }
.scn-thracians-sue-truce .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-thracians-sue-truce .group-left { position:absolute; bottom:20%; left:20%; width:80px; height:50px; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 60%, #6a5a4a 100%); clip-path: polygon(0% 100%, 10% 30%, 25% 20%, 35% 40%, 50% 10%, 65% 30%, 80% 15%, 100% 100%); animation: tt-group-left 5s ease-in-out infinite; }
.scn-thracians-sue-truce .group-right { position:absolute; bottom:20%; right:20%; width:80px; height:50px; background: linear-gradient(90deg, #6a5a4a 0%, #5a4a3a 40%, #4a3a2a 100%); clip-path: polygon(0% 15%, 15% 30%, 30% 10%, 45% 40%, 55% 20%, 70% 30%, 80% 20%, 100% 100%); animation: tt-group-right 4s ease-in-out infinite alternate; }
.scn-thracians-sue-truce .truce-flag { position:absolute; bottom:35%; left:48%; width:20px; height:30px; background: linear-gradient(135deg, #a08060 0%, #806040 100%); clip-path: polygon(50% 0%, 100% 30%, 80% 100%, 20% 100%, 0% 30%); animation: tt-flag 3s ease-in-out infinite; }
.scn-thracians-sue-truce .hostage { position:absolute; bottom:22%; left:45%; width:16px; height:32px; background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tt-hostage 6s ease-in-out infinite; }
.scn-thracians-sue-truce .spear-1 { position:absolute; bottom:30%; left:18%; width:4px; height:40px; background: #c0b0a0; transform: rotate(15deg); animation: tt-spear 3s linear infinite; }
.scn-thracians-sue-truce .spear-2 { position:absolute; bottom:30%; right:22%; width:4px; height:40px; background: #c0b0a0; transform: rotate(-10deg); animation: tt-spear 3s linear infinite reverse; }
@keyframes tt-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tt-group-left { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes tt-group-right { 0% { transform: translateX(0) } 100% { transform: translateX(-10px) } }
@keyframes tt-flag { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(0) rotate(-3deg) } 75% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes tt-hostage { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes tt-spear { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-5px) } 100% { transform: rotate(15deg) translateY(0) } }

/* Scene: thynians-attack-night (dark, dark) */
.scn-thynians-attack-night {
  background: linear-gradient(180deg, #1a1a3a 0%, #0e0e24 50%, #050510 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%);
}
.scn-thynians-attack-night .bg-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1e2440 0%, #0a0a1a 100%); animation: tan-sky 20s ease-in-out infinite alternate; }
.scn-thynians-attack-night .house { position:absolute; bottom:20%; left:35%; width:100px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.8); }
.scn-thynians-attack-night .window-glow { position:absolute; bottom:32%; left:40%; width:20px; height:24px; background: radial-gradient(circle, #ffa04a 0%, #d06020 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 8px #d06020, 0 0 60px 16px rgba(208,96,32,0.5); animation: tan-glow 2s ease-in-out infinite alternate; }
.scn-thynians-attack-night .attacker-1 { position:absolute; bottom:18%; left:55%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tan-attacker 5s ease-in-out infinite; }
.scn-thynians-attack-night .attacker-2 { position:absolute; bottom:15%; left:65%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tan-attacker 6s ease-in-out infinite 1s; }
.scn-thynians-attack-night .attacker-3 { position:absolute; bottom:20%; left:70%; width:14px; height:28px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tan-attacker 4s ease-in-out infinite 0.5s; }
.scn-thynians-attack-night .moon { position:absolute; top:10%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #d0c8b0 0%, #a09880 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(160,152,128,0.4); animation: tan-moon 12s linear infinite; }
.scn-thynians-attack-night .shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, transparent 100%); }
@keyframes tan-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes tan-glow { 0% { transform: scale(0.9); opacity:0.8; box-shadow: 0 0 20px 6px #d06020, 0 0 40px 12px rgba(208,96,32,0.4) } 50% { transform: scale(1.05); opacity:1; box-shadow: 0 0 40px 12px #ffa04a, 0 0 80px 24px rgba(255,160,74,0.6) } 100% { transform: scale(0.95); opacity:0.9; box-shadow: 0 0 25px 8px #d06020, 0 0 50px 16px rgba(208,96,32,0.5) } }
@keyframes tan-attacker { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(15px) translateY(-5px) rotate(5deg) } 50% { transform: translateX(30px) translateY(0) rotate(0deg) } 75% { transform: translateX(45px) translateY(-5px) rotate(-5deg) } 100% { transform: translateX(60px) translateY(0) rotate(0deg) } }
@keyframes tan-moon { 0% { transform: translateX(0) scale(0.95) } 50% { transform: translateX(5px) scale(1) } 100% { transform: translateX(-5px) scale(0.95) } }

.scn-approaching-seuthes-camp {
  background:
    linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #0f0f1a 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 70%);
}
.scn-approaching-seuthes-camp .night-sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #1e1e3a 0%, #0a0a14 100%);
  animation: sc1-pulse 8s ease-in-out infinite alternate;
}
.scn-approaching-seuthes-camp .distant-ridge {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.6);
  animation: sc1-ridge 20s ease-in-out infinite;
}
.scn-approaching-seuthes-camp .watchfire-1 {
  position:absolute; bottom:28%; left:30%; width:14px; height:14px;
  background: radial-gradient(circle, #ff8c42 0%, #b85a1a 60%);
  border-radius:50%;
  box-shadow: 0 0 20px 6px #b85a1a, 0 0 40px 12px rgba(184,90,26,.4);
  animation: sc1-fire 3s ease-in-out infinite alternate;
}
.scn-approaching-seuthes-camp .watchfire-2 {
  position:absolute; bottom:25%; right:25%; width:10px; height:10px;
  background: radial-gradient(circle, #ff8c42 0%, #b85a1a 60%);
  border-radius:50%;
  box-shadow: 0 0 16px 4px #b85a1a, 0 0 30px 8px rgba(184,90,26,.3);
  animation: sc1-fire 3s ease-in-out 1.5s infinite alternate;
}
.scn-approaching-seuthes-camp .figure-silhouette {
  position:absolute; bottom:27%; left:18%; width:16px; height:40px;
  background: linear-gradient(180deg, #12121e 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-walk 5s ease-in-out infinite;
}
.scn-approaching-seuthes-camp .smoke-a {
  position:absolute; bottom:28%; left:32%; width:50px; height:30px;
  background: linear-gradient(180deg, rgba(200,180,160,.25) 0%, transparent 100%);
  border-radius:50%;
  filter: blur(8px);
  animation: sc1-smoke 12s ease-in-out infinite;
}
.scn-approaching-seuthes-camp .smoke-b {
  position:absolute; bottom:25%; right:23%; width:40px; height:25px;
  background: linear-gradient(180deg, rgba(200,180,160,.2) 0%, transparent 100%);
  border-radius:50%;
  filter: blur(8px);
  animation: sc1-smoke 15s ease-in-out 3s infinite reverse;
}
@keyframes sc1-pulse {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes sc1-ridge {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes sc1-fire {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.3); opacity:1; }
  100% { transform: scale(0.9); opacity:0.85; }
}
@keyframes sc1-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(6px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(18px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0); }
}
@keyframes sc1-smoke {
  0% { transform: translate(0,0) scale(0.8); opacity:0.4; }
  50% { transform: translate(10px,-20px) scale(1.2); opacity:0.2; }
  100% { transform: translate(-5px,-10px) scale(0.9); opacity:0.5; }
}

.scn-seized-by-seuthes-men {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2b1a10 30%, #0f0805 100%),
    radial-gradient(ellipse at 50% 60%, #3d2218 0%, transparent 80%);
}
.scn-seized-by-seuthes-men .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1a10 0%, #0f0805 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-seized-by-seuthes-men .campfire {
  position:absolute; bottom:28%; left:50%; width:40px; height:50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff7f2a 0%, #b84c1a 40%, #4a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 40px 14px #ff7f2a, 0 0 80px 24px rgba(255,127,42,.5);
  animation: sc2-fire 2.5s ease-in-out infinite alternate;
}
.scn-seized-by-seuthes-men .fire-light {
  position:absolute; bottom:28%; left:50%; width:120px; height:80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(255,127,42,.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: sc2-flicker 3s ease-in-out infinite;
}
.scn-seized-by-seuthes-men .interpreter-figure {
  position:absolute; bottom:20%; left:30%; width:20px; height:46px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-stand 6s ease-in-out infinite;
}
.scn-seized-by-seuthes-men .seuthes-figure {
  position:absolute; bottom:22%; left:60%; width:22px; height:48px;
  background: linear-gradient(180deg, #1e1412 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-stand 6s ease-in-out 2s infinite;
}
.scn-seized-by-seuthes-men .torch-a {
  position:absolute; bottom:20%; left:15%; width:6px; height:20px;
  background: linear-gradient(180deg, #8a5a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px #ff7f2a;
  animation: sc2-torch 4s ease-in-out infinite;
}
.scn-seized-by-seuthes-men .torch-b {
  position:absolute; bottom:22%; left:78%; width:6px; height:18px;
  background: linear-gradient(180deg, #8a5a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px #ff7f2a;
  animation: sc2-torch 4s ease-in-out 2s infinite;
}
@keyframes sc2-fire {
  0% { transform: translateX(-50%) scale(0.9); box-shadow: 0 0 30px 10px #ff7f2a; }
  50% { transform: translateX(-50%) scale(1.15) rotate(2deg); box-shadow: 0 0 50px 18px #ff7f2a; }
  100% { transform: translateX(-50%) scale(1.0) rotate(-1deg); box-shadow: 0 0 40px 14px #ff7f2a; }
}
@keyframes sc2-flicker {
  0% { opacity:0.5; transform: translateX(-50%) scaleX(0.9); }
  50% { opacity:1; transform: translateX(-50%) scaleX(1.1); }
  100% { opacity:0.7; transform: translateX(-50%) scaleX(0.95); }
}
@keyframes sc2-stand {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes sc2-torch {
  0% { box-shadow: 0 0 8px 1px #ff7f2a; transform: scaleY(1); }
  50% { box-shadow: 0 0 14px 3px #ff7f2a; transform: scaleY(1.1); }
  100% { box-shadow: 0 0 10px 2px #ff7f2a; transform: scaleY(0.95); }
}

.scn-seuthes-explains-fear {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2b1a10 30%, #0f0805 100%),
    radial-gradient(ellipse at 50% 30%, #3d2218 0%, transparent 80%);
}
.scn-seuthes-explains-fear .tent-wall {
  position:absolute; inset:10% 10% 15% 10%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a10 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: sc3-tent 12s ease-in-out infinite;
}
.scn-seuthes-explains-fear .tent-floor {
  position:absolute; bottom:10%; left:15%; right:15%; height:8%;
  background: linear-gradient(0deg, #1a120a, #3a2a1a);
  border-radius: 50%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
.scn-seuthes-explains-fear .torch {
  position:absolute; bottom:35%; left:30%; width:8px; height:30px;
  background: linear-gradient(180deg, #b86a2a 0%, #4a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #ff7f2a, 0 0 40px 12px rgba(255,127,42,.4);
  animation: sc3-torch 3s ease-in-out infinite;
}
.scn-seuthes-explains-fear .seuthes-shadow {
  position:absolute; bottom:20%; left:40%; width:30px; height:50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-gesture 6s ease-in-out infinite;
}
.scn-seuthes-explains-fear .ancestor-ghost {
  position:absolute; bottom:35%; right:25%; width:28px; height:45px;
  background: linear-gradient(180deg, rgba(120,100,80,.2) 0%, rgba(120,100,80,.05) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: sc3-fade 8s ease-in-out infinite;
}
.scn-seuthes-explains-fear .baggage-haunt {
  position:absolute; bottom:28%; right:15%; width:20px; height:16px;
  background: linear-gradient(90deg, rgba(80,60,40,.25), rgba(80,60,40,.1));
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  filter: blur(2px);
  animation: sc3-fade 8s ease-in-out 4s infinite;
}
.scn-seuthes-explains-fear .spark-drift {
  position:absolute; top:20%; left:20%; width:60px; height:40px;
  background: radial-gradient(ellipse, rgba(255,127,42,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sc3-drift 20s linear infinite;
}
@keyframes sc3-tent {
  0% { transform: rotate(0); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(0); }
}
@keyframes sc3-torch {
  0% { transform: scaleY(0.9); opacity:0.8; }
  50% { transform: scaleY(1.2); opacity:1; }
  100% { transform: scaleY(1); opacity:0.9; }
}
@keyframes sc3-gesture {
  0% { transform: rotate(0) translateX(0); }
  25% { transform: rotate(5deg) translateX(4px); }
  50% { transform: rotate(-3deg) translateX(-2px); }
  75% { transform: rotate(2deg) translateX(1px); }
  100% { transform: rotate(0) translateX(0); }
}
@keyframes sc3-fade {
  0% { opacity:0.1; transform: scale(0.9); }
  50% { opacity:0.4; transform: scale(1.1); }
  100% { opacity:0.15; transform: scale(0.95); }
}
@keyframes sc3-drift {
  0% { transform: translate(0,0); }
  50% { transform: translate(30px,-20px); }
  100% { transform: translate(-10px,10px); }
}

.scn-xenophon-enters-tower {
  background:
    linear-gradient(180deg, #0f0a0a 0%, #1a1212 40%, #0f0a0a 100%),
    radial-gradient(ellipse at 50% 90%, #2b1a1a 0%, transparent 70%);
}
.scn-xenophon-enters-tower .tower-bg {
  position:absolute; inset:10% 10% 10% 10%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
  animation: sc4-tower 15s ease-in-out infinite;
}
.scn-xenophon-enters-tower .tower-arch {
  position:absolute; bottom:25%; left:50%; width:90px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #1a1212 0%, #0f0a0a 100%);
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: sc4-arch 12s ease-in-out infinite;
}
.scn-xenophon-enters-tower .wine-bowl-left {
  position:absolute; bottom:30%; left:42%; width:12px; height:10px;
  background: radial-gradient(ellipse at 50% 50%, #c87838 0%, #8a4a1a 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: sc4-bowl 4s ease-in-out infinite;
}
.scn-xenophon-enters-tower .wine-bowl-right {
  position:absolute; bottom:30%; left:50%; width:12px; height:10px;
  background: radial-gradient(ellipse at 50% 50%, #c87838 0%, #8a4a1a 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: sc4-bowl 4s ease-in-out 2s infinite;
}
.scn-xenophon-enters-tower .xenophon-profile {
  position:absolute; bottom:28%; left:35%; width:16px; height:44px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-bow 5s ease-in-out infinite;
}
.scn-xenophon-enters-tower .seuthes-profile {
  position:absolute; bottom:28%; right:35%; width:18px; height:46px;
  background: linear-gradient(180deg, #1e1412 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-bow 5s ease-in-out 2.5s infinite;
}
.scn-xenophon-enters-tower .torch-glow {
  position:absolute; bottom:30%; left:50%; width:80px; height:60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,127,42,.2) 0%, transparent 70%);
  filter: blur(14px);
  animation: sc4-flicker 3s ease-in-out infinite;
}
.scn-xenophon-enters-tower .shadow-pillar {
  position:absolute; bottom:10%; left:28%; width:8px; height:100px;
  background: linear-gradient(180deg, #0a0505 0%, transparent 100%);
  filter: blur(4px);
  animation: sc4-pillar 8s ease-in-out infinite;
}
@keyframes sc4-tower {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes sc4-arch {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.05); }
  100% { transform: translateX(-50%) scaleY(0.95); }
}
@keyframes sc4-bowl {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-3px) rotate(5deg); }
  60% { transform: translateY(0) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sc4-bow {
  0% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(4deg) translateY(-4px); }
  50% { transform: rotate(-2deg) translateY(0); }
  75% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes sc4-flicker {
  0% { opacity:0.5; transform: translateX(-50%) scaleX(0.9); }
  50% { opacity:1; transform: translateX(-50%) scaleX(1.1); }
  100% { opacity:0.7; transform: translateX(-50%) scaleX(0.95); }
}
@keyframes sc4-pillar {
  0% { opacity:0.3; transform: scaleY(0.9); }
  50% { opacity:0.6; transform: scaleY(1.1); }
  100% { opacity:0.4; transform: scaleY(1); }
}

/* agias-socrates-character */
.scn-agias-socrates-character {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-agias-socrates-character .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, transparent 100%); }
.scn-agias-socrates-character .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-agias-socrates-character .figure-agias { position:absolute; bottom:28%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ag-breathe1 4s ease-in-out infinite; }
.scn-agias-socrates-character .figure-socrates { position:absolute; bottom:28%; right:30%; width:30px; height:68px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ag-breathe2 4.5s ease-in-out infinite; }
.scn-agias-socrates-character .lamp-glow { position:absolute; bottom:50%; left:50%; width:40px; height:40px; transform:translate(-50%,50%); background: radial-gradient(circle, #c08040 0%, transparent 60%); animation: ag-flicker 3s ease-in-out infinite alternate; }
.scn-agias-socrates-character .lamp-body { position:absolute; bottom:45%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-agias-socrates-character .shadow-pool { position:absolute; bottom:28%; left:25%; right:25%; height:10px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 80%); animation: ag-shadow 6s ease-in-out infinite; }

@keyframes ag-breathe1 {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ag-breathe2 {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ag-flicker {
  0% { opacity: .8; transform: translate(-50%,50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%,50%) scale(1.1); }
  100% { opacity: .7; transform: translate(-50%,50%) scale(.95); }
}
@keyframes ag-shadow {
  0%, 100% { opacity: .5; }
  50% { opacity: .7; }
}

/* summary-truce-retreat */
.scn-summary-truce-retreat {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 70%);
}
.scn-summary-truce-retreat .tent-back { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a3a4e 0%, transparent 100%); }
.scn-summary-truce-retreat .tent-opening { position:absolute; bottom:20%; left:35%; right:35%; height:50%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 0 0; }
.scn-summary-truce-retreat .campfire { position:absolute; bottom:18%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #d08030 0%, #804020 70%); border-radius:50%; box-shadow: 0 0 20px 8px #804020, 0 0 40px 15px rgba(128,64,32,.4); animation: tr-fire 2s ease-in-out infinite alternate; }
.scn-summary-truce-retreat .smoke { position:absolute; bottom:30%; left:46%; width:30px; height:30px; background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 80%); filter: blur(4px); animation: tr-smoke 12s linear infinite; }
.scn-summary-truce-retreat .marcher-1 { position:absolute; bottom:18%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tr-walk1 8s ease-in-out infinite; }
.scn-summary-truce-retreat .marcher-2 { position:absolute; bottom:18%; left:28%; width:16px; height:38px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tr-walk2 8.5s ease-in-out infinite; }
.scn-summary-truce-retreat .marcher-3 { position:absolute; bottom:18%; right:25%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tr-walk3 9s ease-in-out infinite; }
.scn-summary-truce-retreat .marcher-4 { position:absolute; bottom:18%; right:35%; width:16px; height:38px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tr-walk4 8.2s ease-in-out infinite; }

@keyframes tr-fire {
  0% { opacity: .7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.15); }
  100% { opacity: .6; transform: translateX(-50%) scale(.9); }
}
@keyframes tr-smoke {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: .3; }
  50% { transform: translateY(-30px) translateX(10px) scale(1.5); opacity: .1; }
  100% { transform: translateY(-60px) translateX(-5px) scale(2); opacity: 0; }
}
@keyframes tr-walk1 {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(-2deg); }
  75% { transform: translateX(24px) rotate(2deg); }
  100% { transform: translateX(32px) rotate(0); }
}
@keyframes tr-walk2 {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(7px) rotate(-2deg); }
  50% { transform: translateX(14px) rotate(2deg); }
  75% { transform: translateX(21px) rotate(-2deg); }
  100% { transform: translateX(28px) rotate(0); }
}
@keyframes tr-walk3 {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(-8px) rotate(2deg); }
  50% { transform: translateX(-16px) rotate(-2deg); }
  75% { transform: translateX(-24px) rotate(2deg); }
  100% { transform: translateX(-32px) rotate(0); }
}
@keyframes tr-walk4 {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-7px) rotate(-2deg); }
  50% { transform: translateX(-14px) rotate(2deg); }
  75% { transform: translateX(-21px) rotate(-2deg); }
  100% { transform: translateX(-28px) rotate(0); }
}

/* hellenes-in-perplexity */
.scn-hellenes-in-perplexity {
  background:
    linear-gradient(180deg, #1a1218 0%, #0a060a 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a24 0%, transparent 70%);
}
.scn-hellenes-in-perplexity .dark-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a24 0%, transparent 100%); }
.scn-hellenes-in-perplexity .dark-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0a060a 0%, #000 100%); }
.scn-hellenes-in-perplexity .huddle-1 { position:absolute; bottom:20%; left:25%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a24 0%, #120a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-tremble1 4s ease-in-out infinite; }
.scn-hellenes-in-perplexity .huddle-2 { position:absolute; bottom:22%; left:38%; width:22px; height:46px; background: linear-gradient(180deg, #2a1a24 0%, #120a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-tremble2 4.3s ease-in-out infinite; }
.scn-hellenes-in-perplexity .huddle-3 { position:absolute; bottom:19%; left:55%; width:26px; height:52px; background: linear-gradient(180deg, #2a1a24 0%, #120a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-tremble3 3.8s ease-in-out infinite; }
.scn-hellenes-in-perplexity .lantern-p { position:absolute; bottom:50%; left:50%; width:10px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6030 0%, #5a3010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px #603010; animation: hp-sway 6s ease-in-out infinite; }
.scn-hellenes-in-perplexity .lantern-glow-p { position:absolute; bottom:48%; left:50%; width:50px; height:60px; transform:translate(-50%,10px); background: radial-gradient(circle, #c07030 0%, transparent 60%); animation: hp-glowflicker 2.5s ease-in-out infinite alternate; }

@keyframes hp-tremble1 {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hp-tremble2 {
  0% { transform: translateY(0) rotate(2deg); }
  30% { transform: translateY(-1px) rotate(-1deg); }
  60% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hp-tremble3 {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(1px) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes hp-sway {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes hp-glowflicker {
  0% { opacity: .6; transform: translate(-50%,10px) scale(1); }
  50% { opacity: 1; transform: translate(-50%,10px) scale(1.05); }
  100% { opacity: .5; transform: translate(-50%,10px) scale(.95); }
}

/* betrayed-and-isolated */
.scn-betrayed-and-isolated {
  background:
    linear-gradient(180deg, #12100e 0%, #080604 100%),
    radial-gradient(ellipse at 50% 90%, #201814 0%, transparent 70%);
}
.scn-betrayed-and-isolated .ground { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); }
.scn-betrayed-and-isolated .fallen-1 { position:absolute; bottom:8%; left:10%; width:40px; height:14px; background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%); border-radius: 40% 40% 20% 20%; transform-origin: center; animation: bi-breathe1 6s ease-in-out infinite; }
.scn-betrayed-and-isolated .fallen-2 { position:absolute; bottom:12%; right:15%; width:36px; height:12px; background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%); border-radius: 40% 40% 20% 20%; transform-origin: center; animation: bi-breathe2 7s ease-in-out infinite; }
.scn-betrayed-and-isolated .fallen-3 { position:absolute; top:45%; left:30%; width:34px; height:11px; background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%); border-radius: 40% 40% 20% 20%; transform-origin: center; animation: bi-breathe3 5.5s ease-in-out infinite; }
.scn-betrayed-and-isolated .fallen-4 { position:absolute; top:60%; right:25%; width:38px; height:13px; background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%); border-radius: 40% 40% 20% 20%; transform-origin: center; animation: bi-breathe4 6.8s ease-in-out infinite; }
.scn-betrayed-and-isolated .ember-glow-bi { position:absolute; bottom:20%; left:50%; width:12px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #c05020 0%, #602010 70%); border-radius:50%; box-shadow: 0 0 18px 6px #602010, 0 0 30px 10px rgba(96,32,16,.3); animation: bi-ember 4s ease-in-out infinite alternate; }
.scn-betrayed-and-isolated .smoke-bi { position:absolute; bottom:25%; left:48%; width:24px; height:24px; background: radial-gradient(ellipse, rgba(80,60,40,.2) 0%, transparent 80%); filter: blur(4px); animation: bi-smoke 20s linear infinite; }

@keyframes bi-breathe1 {
  0% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.08) rotate(1deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes bi-breathe2 {
  0% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.06) rotate(-1deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes bi-breathe3 {
  0% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.1) rotate(1deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes bi-breathe4 {
  0% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.07) rotate(-1deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes bi-ember {
  0% { opacity: .6; transform: translateX(-50%) scale(1); box-shadow: 0 0 10px 4px #602010; }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); box-shadow: 0 0 22px 8px #602010, 0 0 40px 12px rgba(96,32,16,.3); }
  100% { opacity: .4; transform: translateX(-50%) scale(.9); box-shadow: 0 0 8px 2px #602010; }
}
@keyframes bi-smoke {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: .2; }
  50% { transform: translateY(-40px) translateX(10px) scale(1.5); opacity: .05; }
  100% { transform: translateY(-80px) translateX(-10px) scale(2); opacity: 0; }
}

.scn-xenophon-personal-experience-snow {
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 60%, #3a4a5a 100%), radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 70%);
}
.scn-xenophon-personal-experience-snow .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 50%, #5a6a7a 100%);
  animation: sc1-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-personal-experience-snow .snow-far {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b0c0d0 0%, #d0e0f0 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  filter: blur(3px);
}
.scn-xenophon-personal-experience-snow .snow-near {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #d0e0f0 0%, #e0f0ff 100%);
  border-radius: 20% 80% 10% 90% / 40% 60% 30% 70%;
  animation: sc1-snow 12s ease-in-out infinite alternate;
}
.scn-xenophon-personal-experience-snow .trees {
  position: absolute; bottom: 38%; left: 5%; right: 5%; height: 20%;
  background:
    radial-gradient(ellipse 8% 100% at 20% 50%, #2a3a2a 0%, transparent 80%),
    radial-gradient(ellipse 6% 90% at 40% 60%, #2a3a2a 0%, transparent 80%),
    radial-gradient(ellipse 10% 110% at 60% 50%, #2a3a2a 0%, transparent 80%),
    radial-gradient(ellipse 7% 95% at 80% 55%, #2a3a2a 0%, transparent 80%);
  filter: blur(2px);
}
.scn-xenophon-personal-experience-snow .figure {
  position: absolute; bottom: 8%; left: 45%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figure 6s ease-in-out infinite;
}
.scn-xenophon-personal-experience-snow .cloak {
  position: absolute; bottom: 10%; left: 42%; width: 32px; height: 24px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: top center;
  animation: sc1-cloak 6s ease-in-out infinite alternate;
}
.scn-xenophon-personal-experience-snow .cloud-a,
.scn-xenophon-personal-experience-snow .cloud-b {
  position: absolute; top: 15%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-xenophon-personal-experience-snow .cloud-a { left: -10%; animation: sc1-drift-a 40s linear infinite; }
.scn-xenophon-personal-experience-snow .cloud-b { right: -10%; width: 60px; height: 16px; animation: sc1-drift-b 50s linear infinite; }
@keyframes sc1-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes sc1-snow { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes sc1-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-3px) rotate(2deg) } 66% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes sc1-cloak { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(-3deg) scaleY(0.95) } }
@keyframes sc1-drift-a { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes sc1-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-xenophon-straggler-blow-justified {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #3a4a5a 100%), radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 70%);
}
.scn-xenophon-straggler-blow-justified .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 60%, #5a6a7a 100%);
  animation: sc2-sky 12s ease-in-out infinite alternate;
}
.scn-xenophon-straggler-blow-justified .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-xenophon-straggler-blow-justified .straggler {
  position: absolute; bottom: 8%; left: 30%; width: 28px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-straggler 4s ease-in-out infinite;
}
.scn-xenophon-straggler-blow-justified .soldier {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-xenophon-straggler-blow-justified .arm {
  position: absolute; bottom: 44%; left: 62%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: sc2-arm 2s ease-in-out infinite alternate;
}
.scn-xenophon-straggler-blow-justified .lance {
  position: absolute; bottom: 48%; left: 58%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  transform-origin: bottom center;
  animation: sc2-lance 2s ease-in-out infinite alternate;
}
.scn-xenophon-straggler-blow-justified .cloud {
  position: absolute; top: 20%; right: 10%; width: 70px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: sc2-cloud 30s linear infinite;
}
@keyframes sc2-sky { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes sc2-straggler { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes sc2-arm { 0% { transform: rotate(-20deg) } 100% { transform: rotate(40deg) } }
@keyframes sc2-lance { 0% { transform: rotate(-20deg) } 100% { transform: rotate(40deg) } }
@keyframes sc2-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-xenophon-final-defense {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-xenophon-final-defense .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-xenophon-final-defense .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-xenophon-final-defense .window {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%);
  border: 4px solid #4a3a2a;
  box-shadow: inset 0 0 20px #5a6a7a;
  border-radius: 2px;
}
.scn-xenophon-final-defense .light {
  position: absolute; top: 18%; right: 18%; width: 30px; height: 40px;
  background: radial-gradient(circle, #c0d0e0 0%, transparent 100%);
  opacity: 0.4;
  animation: sc3-light 8s ease-in-out infinite alternate;
}
.scn-xenophon-final-defense .teacher {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-xenophon-final-defense .boy {
  position: absolute; bottom: 5%; left: 45%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-boy 5s ease-in-out infinite;
}
.scn-xenophon-final-defense .rod {
  position: absolute; bottom: 40%; left: 22%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: sc3-rod 3s ease-in-out infinite alternate;
}
@keyframes sc3-light { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes sc3-boy { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-5deg) } }
@keyframes sc3-rod { 0% { transform: rotate(15deg) } 100% { transform: rotate(30deg) } }

.scn-xenophon-compares-storm-and-calm {
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-xenophon-compares-storm-and-calm .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 70%, #4a5a6a 100%);
  animation: sc4-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-compares-storm-and-calm .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-xenophon-compares-storm-and-calm .ship {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  transform-origin: bottom center;
  animation: sc4-ship 8s ease-in-out infinite;
}
.scn-xenophon-compares-storm-and-calm .wave.storm {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 40px;
  background: radial-gradient(ellipse at 30% 50%, #5a6a7a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sc4-wave-storm 4s ease-in-out infinite alternate;
}
.scn-xenophon-compares-storm-and-calm .wave.calm {
  position: absolute; bottom: 15%; right: 15%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #6a7a8a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sc4-wave-calm 12s ease-in-out infinite alternate;
}
.scn-xenophon-compares-storm-and-calm .spray {
  position: absolute; bottom: 28%; left: 15%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,200,220,0.5) 0%, transparent 100%);
  filter: blur(2px);
  animation: sc4-spray 2s ease-in-out infinite;
}
.scn-xenophon-compares-storm-and-calm .cloud-fast,
.scn-xenophon-compares-storm-and-calm .cloud-slow {
  position: absolute; top: 10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
}
.scn-xenophon-compares-storm-and-calm .cloud-fast { left: -10%; animation: sc4-fast 20s linear infinite; }
.scn-xenophon-compares-storm-and-calm .cloud-slow { right: -10%; width: 50px; height: 12px; animation: sc4-slow 30s linear infinite; }
@keyframes sc4-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes sc4-ship { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(3deg) } 75% { transform: translateY(2px) rotate(-4deg) } }
@keyframes sc4-wave-storm { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(-20px) scaleX(1.3) } }
@keyframes sc4-wave-calm { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(10px) scaleX(0.8) } }
@keyframes sc4-spray { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(1.5) } }
@keyframes sc4-fast { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes sc4-slow { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-generals-entertain-embassy {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a281a 30%, #4a382a 60%, #3a281a 100%),
    radial-gradient(ellipse at 50% 0%, #5a483a 0%, transparent 70%);
}
.scn-generals-entertain-embassy .wall-bg {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a281a 0%, #2a1a0e 100%);
  animation: gee-wall 20s ease-in-out infinite alternate;
}
.scn-generals-entertain-embassy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a382a 0%, #2a1a0e 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.6);
}
.scn-generals-entertain-embassy .table {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
  animation: gee-table 8s ease-in-out infinite alternate;
}
.scn-generals-entertain-embassy .couch {
  position: absolute; bottom: 22%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a3828 0%, #3a2010 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-generals-entertain-embassy .couch-l { left: 20%; animation: gee-couch-l 12s ease-in-out infinite alternate; }
.scn-generals-entertain-embassy .couch-r { right: 20%; animation: gee-couch-r 12s ease-in-out infinite alternate-reverse; }
.scn-generals-entertain-embassy .figure {
  position: absolute; bottom: 26%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-generals-entertain-embassy .figure-l { left: 28%; animation: gee-fig-l 6s ease-in-out infinite alternate; }
.scn-generals-entertain-embassy .figure-r { right: 28%; animation: gee-fig-r 7s ease-in-out infinite alternate-reverse; }
.scn-generals-entertain-embassy .lamp-glow {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d0a060 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(208,160,96,.3), 0 0 120px 60px rgba(208,160,96,.1);
  animation: gee-glow 4s ease-in-out infinite alternate;
}
.scn-generals-entertain-embassy .smoke {
  position: absolute; top: 16%; left: 48%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(180,160,140,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: gee-smoke 20s ease-in-out infinite;
}
@keyframes gee-wall { 0% { opacity: .85; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes gee-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes gee-couch-l { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gee-couch-r { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes gee-fig-l { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes gee-fig-r { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gee-glow { 0% { opacity: .7; transform: translateX(-50%) scale(.95); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: .8; transform: translateX(-50%) scale(.95); } }
@keyframes gee-smoke { 0% { transform: translate(0, 0) scale(1); opacity: .3; } 33% { transform: translate(5px, -8px) scale(1.4); opacity: .1; } 66% { transform: translate(-3px, -12px) scale(1.8); opacity: .05; } 100% { transform: translate(0, -16px) scale(2.2); opacity: 0; } }

.scn-thracian-dance-under-arms {
  background:
    linear-gradient(180deg, #1a0804 0%, #2a1008 30%, #3a1808 60%, #1a0804 100%),
    radial-gradient(ellipse at 50% 80%, #4a2008 0%, transparent 70%);
}
.scn-thracian-dance-under-arms .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1808 0%, #0a0804 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,.7);
  animation: tdu-ground 15s ease-in-out infinite alternate;
}
.scn-thracian-dance-under-arms .fire-pit {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #4a2008 0%, #2a1008 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(74,32,8,.6);
}
.scn-thracian-dance-under-arms .flame-a {
  position: absolute; bottom: 34%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d06020 0%, #b04010 40%, #6a2008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 -8px 40px 10px rgba(208,96,32,.5);
  animation: tdu-flame-a .6s ease-in-out infinite alternate;
}
.scn-thracian-dance-under-arms .flame-b {
  position: absolute; bottom: 34%; left: 54%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #e08030 0%, #c05018 40%, #5a1808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 -4px 30px 8px rgba(224,128,48,.4);
  animation: tdu-flame-b .5s ease-in-out infinite alternate-reverse;
}
.scn-thracian-dance-under-arms .dancer {
  position: absolute; bottom: 22%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-thracian-dance-under-arms .dancer-1 { left: 35%; animation: tdu-dance-1 .8s ease-in-out infinite; }
.scn-thracian-dance-under-arms .dancer-2 { right: 35%; animation: tdu-dance-2 .9s ease-in-out infinite reverse; }
.scn-thracian-dance-under-arms .blade {
  position: absolute; width: 4px; height: 24px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 8px 2px rgba(192,192,192,.3);
  transform-origin: bottom center;
}
.scn-thracian-dance-under-arms .blade-l { bottom: 44%; left: 28%; animation: tdu-blade-l .35s ease-in-out infinite; }
.scn-thracian-dance-under-arms .blade-r { bottom: 46%; right: 28%; animation: tdu-blade-r .4s ease-in-out infinite; }
.scn-thracian-dance-under-arms .spark {
  position: absolute; bottom: 36%; left: 46%; width: 4px; height: 4px;
  background: #d08020; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(208,128,32,.8);
  animation: tdu-spark 1.2s ease-out infinite;
}
@keyframes tdu-ground { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes tdu-flame-a { 0% { transform: translateX(-50%) scaleY(.9) rotate(-2deg); } 50% { transform: translateX(-50%) scaleY(1.1) rotate(1deg); } 100% { transform: translateX(-50%) scaleY(.95) rotate(-1deg); } }
@keyframes tdu-flame-b { 0% { transform: translateX(0) scaleY(.85) rotate(2deg); } 50% { transform: translateX(0) scaleY(1.15) rotate(-1deg); } 100% { transform: translateX(0) scaleY(.9) rotate(1deg); } }
@keyframes tdu-dance-1 { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(8px) translateY(-6px) rotate(5deg); } 50% { transform: translateX(16px) translateY(-2px) rotate(-2deg); } 75% { transform: translateX(8px) translateY(-8px) rotate(4deg); } 100% { transform: translateX(0) translateY(0) rotate(-3deg); } }
@keyframes tdu-dance-2 { 0% { transform: translateX(0) translateY(0) rotate(3deg); } 25% { transform: translateX(-8px) translateY(-6px) rotate(-5deg); } 50% { transform: translateX(-16px) translateY(-2px) rotate(2deg); } 75% { transform: translateX(-8px) translateY(-8px) rotate(-4deg); } 100% { transform: translateX(0) translateY(0) rotate(3deg); } }
@keyframes tdu-blade-l { 0% { transform: rotate(-60deg) translateX(-2px); } 25% { transform: rotate(20deg) translateX(2px); } 50% { transform: rotate(-70deg) translateX(-3px); } 75% { transform: rotate(30deg) translateX(3px); } 100% { transform: rotate(-60deg) translateX(-2px); } }
@keyframes tdu-blade-r { 0% { transform: rotate(60deg) translateX(2px); } 25% { transform: rotate(-20deg) translateX(-2px); } 50% { transform: rotate(70deg) translateX(3px); } 75% { transform: rotate(-30deg) translateX(-3px); } 100% { transform: rotate(60deg) translateX(2px); } }
@keyframes tdu-spark { 0% { transform: translate(0,0) scale(1); opacity: 1; } 50% { transform: translate(10px,-12px) scale(0); opacity: .5; } 100% { transform: translate(20px,-24px) scale(0); opacity: 0; } }

.scn-aenianian-carpaea-dance {
  background:
    linear-gradient(180deg, #1a0e06 0%, #2a1808 30%, #3a2010 60%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 70%, #4a2810 0%, transparent 70%);
}
.scn-aenianian-carpaea-dance .field-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0e0a06 0%, #1a0e06 50%, #2a1808 100%);
  animation: acd-sky 25s ease-in-out infinite alternate;
}
.scn-aenianian-carpaea-dance .path {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a2010 0%, #2a1808 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.5);
  animation: acd-path 30s ease-in-out infinite alternate;
}
.scn-aenianian-carpaea-dance .oxen {
  position: absolute; bottom: 24%; left: 30%; width: 60px; height: 28px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: acd-oxen 4s ease-in-out infinite;
}
.scn-aenianian-carpaea-dance .plow {
  position: absolute; bottom: 22%; left: 26%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: acd-plow 4s ease-in-out infinite;
}
.scn-aenianian-carpaea-dance .sower {
  position: absolute; bottom: 26%; left: 50%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acd-sower 3.5s ease-in-out infinite;
}
.scn-aenianian-carpaea-dance .seed-a {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 4px;
  background: #6a4a2a; border-radius: 50%;
  box-shadow: 0 0 2px 1px rgba(106,74,42,.4);
  animation: acd-seed-a 1.8s ease-out infinite;
}
.scn-aenianian-carpaea-dance .seed-b {
  position: absolute; bottom: 30%; left: 52%; width: 3px; height: 3px;
  background: #5a3a1a; border-radius: 50%;
  animation: acd-seed-b 2s ease-out infinite;
}
.scn-aenianian-carpaea-dance .dust {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(200,180,160,.1) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: acd-dust 3s ease-in-out infinite;
}
@keyframes acd-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes acd-path { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes acd-oxen { 0% { transform: translateX(0) scaleY(.98); } 25% { transform: translateX(-4px) scaleY(1); } 50% { transform: translateX(0) scaleY(.98); } 75% { transform: translateX(4px) scaleY(1); } 100% { transform: translateX(0) scaleY(.98); } }
@keyframes acd-plow { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes acd-sower { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 20% { transform: translateX(6px) translateY(-4px) rotate(3deg); } 40% { transform: translateX(12px) translateY(0) rotate(-5deg); } 60% { transform: translateX(6px) translateY(-3px) rotate(5deg); } 80% { transform: translateX(0) translateY(0) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }
@keyframes acd-seed-a { 0% { transform: translate(0,0) scale(1); opacity: 1; } 50% { transform: translate(8px,16px) scale(.5); opacity: .3; } 100% { transform: translate(16px,32px) scale(0); opacity: 0; } }
@keyframes acd-seed-b { 0% { transform: translate(0,0) scale(1); opacity: 1; } 50% { transform: translate(-6px,18px) scale(.5); opacity: .3; } 100% { transform: translate(-12px,36px) scale(0); opacity: 0; } }
@keyframes acd-dust { 0% { transform: translateX(0) scale(1); opacity: .2; } 50% { transform: translateX(4px) scale(1.2); opacity: .1; } 100% { transform: translateX(0) scale(1); opacity: .2; } }

.scn-mysian-dance-shields {
  background:
    linear-gradient(180deg, #1a0804 0%, #2a1008 30%, #3a1808 60%, #1a0804 100%),
    radial-gradient(ellipse at 50% 80%, #4a2008 0%, transparent 70%);
}
.scn-mysian-dance-shields .arena-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1008 0%, #1a0804 100%);
  animation: mds-arena 20s ease-in-out infinite alternate;
}
.scn-mysian-dance-shields .rim-glow {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(208,96,32,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: mds-rim 6s ease-in-out infinite alternate;
}
.scn-mysian-dance-shields .dancer-shield {
  position: absolute; bottom: 22%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mds-dancer .7s ease-in-out infinite;
}
.scn-mysian-dance-shields .shield {
  position: absolute; width: 28px; height: 40px;
  background: linear-gradient(180deg, #804020 0%, #502818 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  border: 2px solid #a06030;
  box-shadow: 0 0 8px 2px rgba(160,96,48,.3);
  transform-origin: center center;
}
.scn-mysian-dance-shields .shield-l {
  bottom: 24%; left: 35%;
  animation: mds-shield-l .5s ease-in-out infinite;
}
.scn-mysian-dance-shields .shield-r {
  bottom: 28%; right: 35%;
  animation: mds-shield-r .55s ease-in-out infinite;
}
.scn-mysian-dance-shields .strike-stroke {
  position: absolute; top: 30%; left: 42%; width: 30px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #d08020 50%, transparent 100%);
  animation: mds-strike .4s ease-out infinite;
}
.scn-mysian-dance-shields .impact-flash {
  position: absolute; top: 28%; left: 44%; width: 16px; height: 16px;
  background: radial-gradient(circle, #e09030 0%, #c06020 40%, transparent 70%);
  border-radius: 50%;
  animation: mds-flash .3s ease-out infinite;
}
@keyframes mds-arena { 0% { opacity: .85; } 50% { opacity: .95; } 100% { opacity: .9; } }
@keyframes mds-rim { 0% { opacity: .5; transform: scale(.95); } 50% { opacity: .8; transform: scale(1.05); } 100% { opacity: .5; transform: scale(.95); } }
@keyframes mds-dancer { 0% { transform: translateX(-50%) translateY(0) rotate(-4deg); } 25% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(6deg); } 75% { transform: translateX(-50%) translateY(-4px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-4deg); } }
@keyframes mds-shield-l { 0% { transform: translateX(0) rotate(-30deg); } 25% { transform: translateX(6px) rotate(10deg); } 50% { transform: translateX(0) rotate(40deg); } 75% { transform: translateX(-4px) rotate(-10deg); } 100% { transform: translateX(0) rotate(-30deg); } }
@keyframes mds-shield-r { 0% { transform: translateX(0) rotate(30deg); } 25% { transform: translateX(-6px) rotate(-10deg); } 50% { transform: translateX(0) rotate(-40deg); } 75% { transform: translateX(4px) rotate(10deg); } 100% { transform: translateX(0) rotate(30deg); } }
@keyframes mds-strike { 0% { transform: scaleX(0); opacity: 0; } 20% { transform: scaleX(1); opacity: .8; } 100% { transform: scaleX(.5); opacity: 0; } }
@keyframes mds-flash { 0% { transform: scale(0); opacity: 1; } 30% { transform: scale(1.5); opacity: .6; } 100% { transform: scale(2.5); opacity: 0; } }

.scn-thorax-promises-pay-too { background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%); }
.scn-thorax-promises-pay-too .room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 60%, #1a0a00 100%); }
.scn-thorax-promises-pay-too .table { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-thorax-promises-pay-too .candle { position:absolute; bottom:30%; left:50%; width:10px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #d08040 0%, #a06030 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 6px #d08040, 0 0 40px 12px rgba(208,128,64,.4); animation: tp-candle 2s ease-in-out infinite alternate; }
.scn-thorax-promises-pay-too .document { position:absolute; bottom:20%; left:32%; width:40px; height:28px; background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border-radius:2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: tp-doc 12s ease-in-out infinite alternate; }
.scn-thorax-promises-pay-too .figure-left { position:absolute; bottom:20%; left:25%; width:24px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-figL 4s ease-in-out infinite; }
.scn-thorax-promises-pay-too .figure-right { position:absolute; bottom:20%; right:25%; width:26px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tp-figR 3.5s ease-in-out infinite; }
.scn-thorax-promises-pay-too .shadow { position:absolute; bottom:20%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); filter: blur(4px); animation: tp-shadow 8s ease-in-out infinite alternate; }
@keyframes tp-candle { 0% { opacity:.85; transform: translateX(-50%) scaleY(1); box-shadow: 0 0 15px 4px #d08040, 0 0 30px 8px rgba(208,128,64,.3); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.03); box-shadow: 0 0 25px 8px #e09050, 0 0 50px 14px rgba(224,144,80,.5); } 100% { opacity:.9; transform: translateX(-50%) scaleY(.97); box-shadow: 0 0 18px 5px #c07030, 0 0 35px 10px rgba(192,112,48,.35); } }
@keyframes tp-doc { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes tp-figL { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(1deg); } }
@keyframes tp-figR { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(2deg); } 60% { transform: translateX(1px) rotate(-1deg); } }
@keyframes tp-shadow { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.05); } 100% { opacity:.3; transform: scaleX(.95); } }

.scn-xenophon-accused-silence { background: linear-gradient(180deg, #7ab8d0 0%, #b0d8e8 50%, #f0e6c8 100%), radial-gradient(ellipse at 50% 100%, #f0e6c8 0%, transparent 70%); }
.scn-xenophon-accused-silence .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6aa0c0 0%, #a0c8d8 100%); }
.scn-xenophon-accused-silence .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c8a860 0%, #a08040 40%, #806030 100%); }
.scn-xenophon-accused-silence .xenophon-silent { position:absolute; bottom:20%; left:40%; width:22px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xa-still 6s ease-in-out infinite; }
.scn-xenophon-accused-silence .accuser { position:absolute; bottom:20%; right:35%; width:24px; height:68px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: xa-accuse 2.5s ease-in-out infinite; }
.scn-xenophon-accused-silence .crowd { position:absolute; bottom:20%; left:50%; width:40px; height:40px; background: radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); border-radius:50%; filter: blur(3px); transform: translateX(-50%); animation: xa-crowd 4s ease-in-out infinite alternate; }
.scn-xenophon-accused-silence .sunburst { position:absolute; top:10%; left:30%; width:80px; height:80px; background: radial-gradient(circle, #ffe080 0%, #ffd060 20%, transparent 70%); filter: blur(2px); animation: xa-sun 3s ease-in-out infinite alternate; }
.scn-xenophon-accused-silence .shadow-hard { position:absolute; bottom:20%; left:35%; right:25%; height:4%; background: rgba(0,0,0,.25); filter: blur(1px); animation: xa-shadow 8s ease-in-out infinite alternate; }
@keyframes xa-still { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg) translateY(-1px); } }
@keyframes xa-accuse { 0% { transform: translateX(0) rotate(-5deg) scaleY(1); } 25% { transform: translateX(5px) rotate(5deg) scaleY(1.01); } 50% { transform: translateX(0) rotate(-5deg) scaleY(1); } 75% { transform: translateX(-3px) rotate(5deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(-5deg) scaleY(1); } }
@keyframes xa-crowd { 0% { opacity:.4; transform: translateX(-50%) scale(.95); } 50% { opacity:.7; transform: translateX(-50%) scale(1.05); } 100% { opacity:.5; transform: translateX(-50%) scale(.95); } }
@keyframes xa-sun { 0% { opacity:.6; transform: scale(.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(.95); } }
@keyframes xa-shadow { 0% { opacity:.2; transform: scaleX(1); } 50% { opacity:.4; transform: scaleX(1.1); } 100% { opacity:.3; transform: scaleX(.9); } }

.scn-xenophon-defends-himself { background: linear-gradient(180deg, #c0d8e8 0%, #e0f0f8 50%, #f0e8d0 100%), radial-gradient(ellipse at 50% 100%, #f0e8d0 0%, transparent 70%); }
.scn-xenophon-defends-himself .sky-soft { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d0e0 0%, #d0e8f0 100%); }
.scn-xenophon-defends-himself .columns { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background: linear-gradient(90deg, #d0c8b0 0%, #e0d8c0 20%, #d0c8b0 40%, #e0d8c0 60%, #d0c8b0 80%, #e0d8c0 100%); border-radius:0; box-shadow: inset 0 8px 20px rgba(0,0,0,.1); }
.scn-xenophon-defends-himself .xenophon-speaking { position:absolute; bottom:20%; left:40%; width:24px; height:72px; background: linear-gradient(180deg, #c8a060 0%, #b09050 40%, #806030 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xd-speak 10s ease-in-out infinite alternate; }
.scn-xenophon-defends-himself .listener-left { position:absolute; bottom:20%; left:25%; width:20px; height:60px; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xd-listen 12s ease-in-out infinite; }
.scn-xenophon-defends-himself .listener-right { position:absolute; bottom:20%; right:25%; width:20px; height:62px; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xd-listen 12s ease-in-out infinite 4s; }
.scn-xenophon-defends-himself .scroll { position:absolute; bottom:20%; left:48%; width:30px; height:20px; background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); border-radius:15% 15% 15% 15% / 30% 30% 30% 30%; transform: rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: xd-scroll 20s ease-in-out infinite; }
.scn-xenophon-defends-himself .sunlight-glow { position:absolute; top:15%; left:30%; width:100px; height:100px; background: radial-gradient(circle, #ffe8c0 0%, #ffd880 30%, transparent 70%); filter: blur(3px); animation: xd-glow 15s ease-in-out infinite alternate; }
@keyframes xd-speak { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(5px) rotate(2deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes xd-listen { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(1deg); } }
@keyframes xd-scroll { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes xd-glow { 0% { opacity:.4; transform: scale(.9); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.5; transform: scale(1); } }

.scn-xenophon-reveals-silanus-betrayal { background: linear-gradient(180deg, #6aa0c0 0%, #b0d8e8 40%, #f0e8d0 100%), radial-gradient(ellipse at 50% 100%, #f0e8d0 0%, transparent 70%); }
.scn-xenophon-reveals-silanus-betrayal .sky-bright { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a90b0 0%, #90c0d0 100%); }
.scn-xenophon-reveals-silanus-betrayal .ground-dusty { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #d0b080 0%, #b09060 40%, #907050 100%); }
.scn-xenophon-reveals-silanus-betrayal .xenophon-pointing { position:absolute; bottom:20%; left:35%; width:24px; height:70px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xs-point 1s ease-in-out infinite; }
.scn-xenophon-reveals-silanus-betrayal .silanus-recoiling { position:absolute; bottom:20%; right:30%; width:22px; height:68px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: xs-recoil 1.5s ease-in-out infinite; }
.scn-xenophon-reveals-silanus-betrayal .altar { position:absolute; bottom:20%; left:55%; width:40px; height:30px; background: linear-gradient(180deg, #a09070 0%, #807060 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-xenophon-reveals-silanus-betrayal .smoke { position:absolute; bottom:30%; left:55%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,160,.4) 0%, transparent 70%); filter: blur(6px); animation: xs-smoke 4s ease-in-out infinite; }
.scn-xenophon-reveals-silanus-betrayal .shadow-stark { position:absolute; bottom:20%; left:30%; right:25%; height:6%; background: rgba(0,0,0,.3); filter: blur(2px); animation: xs-shadow 6s ease-in-out infinite alternate; }
@keyframes xs-point { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(8px) rotate(10deg) scaleY(1.02); } 60% { transform: translateX(0) rotate(0deg) scaleY(1); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes xs-recoil { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 25% { transform: translateX(-10px) rotate(-8deg) scaleX(.95); } 50% { transform: translateX(-2px) rotate(-3deg) scaleX(1.02); } 75% { transform: translateX(-8px) rotate(-6deg) scaleX(.98); } 100% { transform: translateX(0) rotate(0deg) scaleX(1); } }
@keyframes xs-smoke { 0% { transform: translateY(0) scale(1); opacity:.4; } 50% { transform: translateY(-10px) scale(1.2); opacity:.6; } 100% { transform: translateY(0) scale(1); opacity:.4; } }
@keyframes xs-shadow { 0% { opacity:.2; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.08); } 100% { opacity:.3; transform: scaleX(.95); } }

.scn-cilicia-pass-menon {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 50%, #deb887 100%), radial-gradient(ellipse at 50% 0%, #f0e68c 0%, transparent 70%);
}
.scn-cilicia-pass-menon .sky-bright { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffd700 0%, #87CEEB 100%); animation: cpm-glow 4s ease-in-out infinite alternate; }
.scn-cilicia-pass-menon .sun { position:absolute; top:8%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #fff7a0 20%, #ffcc00 50%, transparent 100%); box-shadow: 0 0 60px 20px rgba(255,204,0,0.6); animation: cpm-pulse 5s ease-in-out infinite; }
.scn-cilicia-pass-menon .cliff-left { position:absolute; bottom:20%; left:0; width:35%; height:60%; background: linear-gradient(135deg, #6b4c2e 0%, #3e2b1a 100%); border-radius: 0 30% 0 0 / 0 40% 0 0; box-shadow: inset -8px 0 12px rgba(0,0,0,0.5); animation: cpm-rise 12s ease-in-out infinite alternate; }
.scn-cilicia-pass-menon .cliff-right { position:absolute; bottom:20%; right:0; width:40%; height:65%; background: linear-gradient(225deg, #6b4c2e 0%, #3e2b1a 100%); border-radius: 30% 0 0 0 / 40% 0 0 0; box-shadow: inset 8px 0 12px rgba(0,0,0,0.5); animation: cpm-rise 14s ease-in-out infinite alternate-reverse; }
.scn-cilicia-pass-menon .path-up { position:absolute; bottom:15%; left:50%; width:12%; height:48%; background: linear-gradient(180deg, #c9a96b 0%, #a07848 100%); clip-path: polygon(30% 0%, 70% 100%, 40% 100%, 20% 0%); filter: blur(2px); animation: cpm-shimmer 8s ease-in-out infinite; }
.scn-cilicia-pass-menon .soldier { position:absolute; bottom:18%; left:52%; width:12px; height:30px; background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cpm-climb 6s ease-in-out infinite; }
.scn-cilicia-pass-menon .spear { position:absolute; bottom:27%; left:56%; width:2px; height:40px; background: #5a4a3a; transform: rotate(15deg); animation: cpm-spear 6s ease-in-out infinite; }
.scn-cilicia-pass-menon .shadow-sharp { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: cpm-shadow 3s ease-in-out infinite alternate; }

@keyframes cpm-glow { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cpm-pulse { 0% { transform:scale(1); box-shadow:0 0 40px 15px rgba(255,204,0,0.6); } 50% { transform:scale(1.05); box-shadow:0 0 60px 25px rgba(255,204,0,0.8); } 100% { transform:scale(0.95); box-shadow:0 0 30px 10px rgba(255,204,0,0.5); } }
@keyframes cpm-rise { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(0); } }
@keyframes cpm-shimmer { 0% { opacity:0.7; filter:blur(2px); } 50% { opacity:1; filter:blur(1px); } 100% { opacity:0.8; filter:blur(2px); } }
@keyframes cpm-climb { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(2px) rotate(2deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(-2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes cpm-spear { 0% { transform:rotate(15deg) translateY(0); } 25% { transform:rotate(20deg) translateY(-1px); } 50% { transform:rotate(12deg) translateY(0); } 75% { transform:rotate(18deg) translateY(-1px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes cpm-shadow { 0% { opacity:0.6; } 100% { opacity:0.8; } }

.scn-descent-into-cilicia {
  background: linear-gradient(180deg, #b0e0e6 0%, #f5deb3 60%, #8fbc8f 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 70%);
}
.scn-descent-into-cilicia .sky-wide { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 100%); animation: dic-sky 12s ease-in-out infinite alternate; }
.scn-descent-into-cilicia .sun-soft { position:absolute; top:10%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #fff7e0 0%, #f0e68c 40%, transparent 100%); box-shadow: 0 0 80px 30px rgba(240,230,140,0.5); animation: dic-sun 10s ease-in-out infinite alternate; }
.scn-descent-into-cilicia .plain { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #9acd32 0%, #6b8e23 100%); animation: dic-plain 20s ease-in-out infinite alternate; }
.scn-descent-into-cilicia .river { position:absolute; bottom:20%; left:10%; width:80%; height:6%; background: linear-gradient(90deg, #4682b4 0%, #87CEFA 50%, #4682b4 100%); border-radius: 50%; filter: blur(4px); animation: dic-river 8s ease-in-out infinite alternate; }
.scn-descent-into-cilicia .tent-left { position:absolute; bottom:28%; left:15%; width:30px; height:20px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); animation: dic-tent 6s ease-in-out infinite; }
.scn-descent-into-cilicia .tent-right { position:absolute; bottom:26%; right:20%; width:25px; height:15px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); animation: dic-tent 6s ease-in-out infinite 1s; }
.scn-descent-into-cilicia .tree { position:absolute; bottom:30%; left:45%; width:8px; height:40px; background: linear-gradient(180deg, #6b8e23 0%, #228b22 100%); border-radius: 50% 50% 0 0; animation: dic-tree 15s ease-in-out infinite alternate; }
.scn-descent-into-cilicia .bird { position:absolute; top:32%; left:60%; width:14px; height:8px; background: #8b4513; border-radius: 50%; filter: blur(1px); animation: dic-bird 30s linear infinite; }

@keyframes dic-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dic-sun { 0% { transform:scale(0.9); opacity:0.9; } 50% { transform:scale(1.05); opacity:1; } 100% { transform:scale(0.95); opacity:0.85; } }
@keyframes dic-plain { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(0.98); } }
@keyframes dic-river { 0% { transform:translateX(-5px); opacity:0.7; } 50% { transform:translateX(5px); opacity:1; } 100% { transform:translateX(-5px); opacity:0.8; } }
@keyframes dic-tent { 0% { transform:rotate(-2deg); } 25% { transform:rotate(2deg); } 50% { transform:rotate(-1deg); } 75% { transform:rotate(1deg); } 100% { transform:rotate(0deg); } }
@keyframes dic-tree { 0% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }
@keyframes dic-bird { 0% { transform:translateX(-20px); } 100% { transform:translateX(120vw); } }

.scn-tarsus-deserted {
  background: linear-gradient(180deg, #f0e68c 0%, #deb887 50%, #a0522d 100%), radial-gradient(ellipse at 50% 0%, #f0e68c 0%, transparent 60%);
}
.scn-tarsus-deserted .hot-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffd700 0%, #f0e68c 100%); animation: tds-heat 4s ease-in-out infinite alternate; }
.scn-tarsus-deserted .sun-harsh { position:absolute; top:5%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #fff7a0 0%, #ffcc00 100%); box-shadow: 0 0 70px 20px rgba(255,204,0,0.7); animation: tds-sun 3s ease-in-out infinite alternate; }
.scn-tarsus-deserted .palace { position:absolute; bottom:25%; left:20%; width:55%; height:35%; background: linear-gradient(180deg, #cd853f 0%, #8b4513 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 -6px 16px rgba(0,0,0,0.4); animation: tds-palace 8s ease-in-out infinite; }
.scn-tarsus-deserted .city-wall { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #a0522d 0%, #6b3e23 100%); clip-path: polygon(0% 100%, 0% 10%, 5% 10%, 5% 0%, 10% 0%, 10% 10%, 15% 10%, 15% 0%, ...); animation: tds-wall 6s ease-in-out infinite alternate; }
.scn-tarsus-deserted .river-cyd { position:absolute; bottom:15%; left:0; right:0; height:8%; background: linear-gradient(90deg, #4682b4 0%, #87CEFA 50%, #4682b4 100%); border-radius: 50%; filter: blur(2px); animation: tds-river 10s ease-in-out infinite alternate; }
.scn-tarsus-deserted .bridge { position:absolute; bottom:17%; left:25%; width:20%; height:6%; background: linear-gradient(180deg, #8b4513 0%, #5a3a1a 100%); border-radius: 10% 10% 0 0; animation: tds-bridge 7s ease-in-out infinite; }
.scn-tarsus-deserted .shadow-fig { position:absolute; bottom:30%; left:55%; width:10px; height:25px; background: #2a1a0a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: tds-fig 5s ease-in-out infinite; }
.scn-tarsus-deserted .dust-devil { position:absolute; bottom:12%; left:35%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(210,180,140,0.6) 0%, transparent 100%); filter: blur(3px); animation: tds-dust 15s linear infinite; }

@keyframes tds-heat { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes tds-sun { 0% { transform:scale(0.9); box-shadow:0 0 50px 15px rgba(255,204,0,0.6); } 100% { transform:scale(1.05); box-shadow:0 0 80px 25px rgba(255,204,0,0.8); } }
@keyframes tds-palace { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes tds-wall { 0% { transform:translateX(-2px); } 50% { transform:translateX(2px); } 100% { transform:translateX(-1px); } }
@keyframes tds-river { 0% { transform:translateX(-5px); opacity:0.7; } 50% { transform:translateX(5px); opacity:1; } 100% { transform:translateX(-5px); opacity:0.8; } }
@keyframes tds-bridge { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes tds-fig { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(2px) rotate(2deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(-2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes tds-dust { 0% { transform:translateX(-20px) scale(1); opacity:0.6; } 50% { transform:translateX(20px) scale(1.2); opacity:1; } 100% { transform:translateX(-20px) scale(0.8); opacity:0.4; } }

.scn-menon-soldiers-lost {
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 60%, #3e2b1a 100%), radial-gradient(ellipse at 50% 30%, #d2b48c 0%, transparent 70%);
}
.scn-menon-soldiers-lost .glare { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 50%); animation: msl-glare 3s ease-in-out infinite alternate; }
.scn-menon-soldiers-lost .fallen-shield { position:absolute; bottom:20%; left:30%; width:30px; height:35px; background: radial-gradient(ellipse at 50% 50%, #8b4513 0%, #5a3a1a 100%); border-radius: 50%; transform: rotate(20deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.6); animation: msl-shield 5s ease-in-out infinite; }
.scn-menon-soldiers-lost .broken-spear { position:absolute; bottom:30%; left:35%; width:2px; height:50px; background: #5a4a3a; transform: rotate(-15deg); border-radius: 0 0 50% 50%; animation: msl-spear 6s ease-in-out infinite; }
.scn-menon-soldiers-lost .body-silhouette { position:absolute; bottom:18%; left:45%; width:20px; height:30px; background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: msl-body 7s ease-in-out infinite; }
.scn-menon-soldiers-lost .bloodstain { position:absolute; bottom:15%; left:40%; width:15px; height:10px; background: radial-gradient(ellipse, #c8553d 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: msl-blood 8s ease-in-out infinite alternate; }
.scn-menon-soldiers-lost .vulture { position:absolute; top:25%; right:10%; width:20px; height:12px; background: #3e2b1a; clip-path: polygon(0% 100%, 30% 0%, 70% 0%, 100% 100%); animation: msl-vulture 20s linear infinite; }
.scn-menon-soldiers-lost .dust-cloud { position:absolute; bottom:10%; left:20%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(210,180,140,0.5) 0%, transparent 100%); filter: blur(5px); animation: msl-dust 12s ease-in-out infinite; }

@keyframes msl-glare { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes msl-shield { 0% { transform:rotate(20deg) translateX(0); } 25% { transform:rotate(25deg) translateX(2px); } 50% { transform:rotate(15deg) translateX(0); } 75% { transform:rotate(22deg) translateX(-2px); } 100% { transform:rotate(20deg) translateX(0); } }
@keyframes msl-spear { 0% { transform:rotate(-15deg) translateY(0); } 25% { transform:rotate(-10deg) translateY(-2px); } 50% { transform:rotate(-18deg) translateY(0); } 75% { transform:rotate(-12deg) translateY(-1px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes msl-body { 0%,100% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(5deg) translateY(-3px); } }
@keyframes msl-blood { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(0.9); } }
@keyframes msl-vulture { 0% { transform:translateX(-20px); } 100% { transform:translateX(120vw); } }
@keyframes msl-dust { 0% { transform:translateY(0) scale(1); opacity:0.5; } 50% { transform:translateY(-5px) scale(1.1); opacity:0.8; } 100% { transform:translateY(0) scale(0.9); opacity:0.4; } }

/* Scene: seuthes-sends-medosades (ss) */
.scn-seuthes-sends-medosades {
  background:
    linear-gradient(180deg, #3a2516 0%, #1e1108 50%, #0f0804 100%),
    radial-gradient(ellipse at 40% 30%, #6b4b30 0%, transparent 70%);
}
.scn-seuthes-sends-medosades .tent-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3525 0%, #2a1a10 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: ss-tent 10s ease-in-out infinite alternate;
}
.scn-seuthes-sends-medosades .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2510 0%, #1e0f05 100%);
  border-radius: 20% 20% 0 0;
}
.scn-seuthes-sends-medosades .brazier {
  position: absolute; bottom: 18%; left: 20%;
  width: 30px; height: 20px;
  background: radial-gradient(ellipse, #c86020 0%, #7a2a0a 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(200,96,32,0.4);
  animation: ss-brazier 3s ease-in-out infinite alternate;
}
.scn-seuthes-sends-medosades .brazier-glow {
  position: absolute; bottom: 18%; left: 20%;
  width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(200,96,32,0.2) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-25px, 10px);
  animation: ss-glow 4s ease-in-out infinite alternate;
}
.scn-seuthes-sends-medosades .figure-seuthes {
  position: absolute; bottom: 20%; left: 35%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ss-figure1 8s ease-in-out infinite;
}
.scn-seuthes-sends-medosades .figure-medosades {
  position: absolute; bottom: 20%; left: 58%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ss-figure2 6s ease-in-out infinite;
}
.scn-seuthes-sends-medosades .scroll {
  position: absolute; bottom: 30%; left: 48%;
  width: 16px; height: 10px;
  background: linear-gradient(180deg, #d4b88a 0%, #a88a5a 100%);
  border-radius: 3px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ss-scroll 12s ease-in-out infinite;
}
.scn-seuthes-sends-medosades .lamp {
  position: absolute; top: 15%; right: 20%;
  width: 8px; height: 14px;
  background: radial-gradient(circle, #e0c070 0%, #b08030 80%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,150,50,0.5);
  animation: ss-lamp 2s ease-in-out infinite alternate;
}

@keyframes ss-tent { 0% { opacity:0.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.85; transform:scaleY(0.98); } }
@keyframes ss-brazier { 0% { transform:scale(0.95); opacity:0.8; } 50% { transform:scale(1.05); opacity:1; } 100% { transform:scale(0.98); opacity:0.85; } }
@keyframes ss-glow { 0% { opacity:0.4; transform:translate(-25px,10px) scale(0.9); } 50% { opacity:0.7; transform:translate(-20px,8px) scale(1.1); } 100% { opacity:0.5; transform:translate(-30px,12px) scale(0.95); } }
@keyframes ss-figure1 { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 30% { transform:translateX(2px) translateY(-2px) rotate(0deg); } 60% { transform:translateX(-1px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(-0.5deg); } }
@keyframes ss-figure2 { 0% { transform:translateX(0) translateY(0) rotate(1deg); } 40% { transform:translateX(-2px) translateY(-1px) rotate(0deg); } 70% { transform:translateX(1px) translateY(-2px) rotate(-1deg); } 100% { transform:translateX(0) translateY(0) rotate(0.5deg); } }
@keyframes ss-scroll { 0% { transform:rotate(8deg) translateY(0); } 50% { transform:rotate(12deg) translateY(-2px); } 100% { transform:rotate(10deg) translateY(1px); } }
@keyframes ss-lamp { 0% { opacity:0.6; box-shadow:0 0 20px 4px rgba(200,150,50,0.3); } 50% { opacity:1; box-shadow:0 0 40px 12px rgba(200,150,50,0.6); } 100% { opacity:0.7; box-shadow:0 0 25px 6px rgba(200,150,50,0.4); } }

/* Scene: army-crosses-to-byzantium (acb) */
.scn-army-crosses-to-byzantium {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #6a7a8a 0%, transparent 70%);
}
.scn-army-crosses-to-byzantium .overcast-sky {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 60%, #2a3a4a 100%);
  animation: acb-sky 15s ease-in-out infinite alternate;
}
.scn-army-crosses-to-byzantium .distant-sea {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-army-crosses-to-byzantium .bridge {
  position: absolute; bottom:28%; left:10%; width:80%; height:8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: acb-bridge 9s ease-in-out infinite alternate;
}
.scn-army-crosses-to-byzantium .column-march {
  position: absolute; bottom:32%; left:20%;
  width:8px; height:16px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 10px 0 0 #4a3a2a, 20px 0 0 #5a4a3a, 30px 0 0 #4a3a2a, 40px 0 0 #5a4a3a, 50px 0 0 #4a3a2a, 60px 0 0 #5a4a3a;
  animation: acb-march 4s ease-in-out infinite;
}
.scn-army-crosses-to-byzantium .column-hold {
  position: absolute; bottom:32%; left:80%;
  width:8px; height:16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: -10px 0 0 #3a2a1a, -20px 0 0 #4a3a2a, -30px 0 0 #3a2a1a, -40px 0 0 #4a3a2a;
  animation: acb-hold 6s ease-in-out infinite;
}
.scn-army-crosses-to-byzantium .city-wall {
  position: absolute; bottom:25%; right:5%;
  width:40px; height:60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  border-radius: 0 20% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
}
.scn-army-crosses-to-byzantium .spear-forest {
  position: absolute; bottom:30%; left:15%;
  width:3px; height:30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  box-shadow: 6px 0 0 #7a6a4a, 12px 0 0 #8a7a5a, 18px 0 0 #7a6a4a, 24px 0 0 #8a7a5a, 30px 0 0 #7a6a4a, 36px 0 0 #8a7a5a;
  border-radius: 1px;
  animation: acb-spear 3s ease-in-out infinite alternate;
}
.scn-army-crosses-to-byzantium .battle-flag {
  position: absolute; bottom:32%; left:25%;
  width:10px; height:14px;
  background: linear-gradient(180deg, #a05030 0%, #803020 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(10deg);
  animation: acb-flag 5s ease-in-out infinite alternate;
}

@keyframes acb-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes acb-bridge { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(1px); } }
@keyframes acb-march { 0% { transform:translateX(0); } 50% { transform:translateX(3px); } 100% { transform:translateX(0); } }
@keyframes acb-hold { 0% { transform:translateX(0); } 50% { transform:translateX(-2px); } 100% { transform:translateX(0); } }
@keyframes acb-spear { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-1deg); } }
@keyframes acb-flag { 0% { transform:rotate(8deg); } 50% { transform:rotate(12deg); } 100% { transform:rotate(9deg); } }

/* Scene: xenophon-visits-cleander (xvc) */
.scn-xenophon-visits-cleander {
  background:
    linear-gradient(180deg, #3a2a20 0%, #1a120a 60%, #0f0805 100%),
    radial-gradient(ellipse at 30% 40%, #5a3a2a 0%, transparent 70%);
}
.scn-xenophon-visits-cleander .room-wall {
  position: absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-bottom: 2px solid #2a1a0a;
}
.scn-xenophon-visits-cleander .floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 10% 10% 0 0;
}
.scn-xenophon-visits-cleander .table {
  position: absolute; bottom:18%; left:25%; width:50%; height:6%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.6);
}
.scn-xenophon-visits-cleander .cup-left {
  position: absolute; bottom:22%; left:30%;
  width:8px; height:10px;
  background: radial-gradient(circle, #8a7050 0%, #5a4020 80%);
  border-radius: 30% 30% 20% 20%;
  animation: xvc-cup 4s ease-in-out infinite alternate;
}
.scn-xenophon-visits-cleander .cup-right {
  position: absolute; bottom:22%; right:30%;
  width:8px; height:10px;
  background: radial-gradient(circle, #7a6040 0%, #4a3010 80%);
  border-radius: 30% 30% 20% 20%;
  animation: xvc-cup 4s ease-in-out infinite alternate 2s;
}
.scn-xenophon-visits-cleander .lamp-halo {
  position: absolute; top:10%; right:15%;
  width:40px; height:40px;
  background: radial-gradient(circle, #e0b060 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  animation: xvc-lamp 3s ease-in-out infinite alternate;
}
.scn-xenophon-visits-cleander .xenophon {
  position: absolute; bottom:18%; left:20%;
  width:20px; height:44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xvc-fig1 8s ease-in-out infinite;
}
.scn-xenophon-visits-cleander .cleander {
  position: absolute; bottom:18%; right:20%;
  width:20px; height:44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xvc-fig2 7s ease-in-out infinite;
}

@keyframes xvc-cup { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-1px) rotate(0deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes xvc-lamp { 0% { opacity:0.5; transform:scale(0.9); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(0.95); } }
@keyframes xvc-fig1 { 0% { transform:translateX(0) rotate(-1deg); } 30% { transform:translateX(2px) rotate(0deg); } 60% { transform:translateX(-1px) rotate(1deg); } 100% { transform:translateX(0) rotate(-0.5deg); } }
@keyframes xvc-fig2 { 0% { transform:translateX(0) rotate(1deg); } 40% { transform:translateX(-2px) rotate(0deg); } 70% { transform:translateX(1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0.5deg); } }

/* Scene: cleander-advises-xenophon (ca) */
.scn-cleander-advises-xenophon {
  background:
    linear-gradient(180deg, #2a1a10 0%, #1a0e05 40%, #0f0803 100%),
    radial-gradient(ellipse at 20% 50%, #4a2a1a 0%, transparent 70%);
}
.scn-cleander-advises-xenophon .chamber-wall {
  position: absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
}
.scn-cleander-advises-xenophon .door {
  position: absolute; bottom:15%; right:10%;
  width:30px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 1px solid #6a4a3a;
  border-radius: 4px;
  transform: perspective(300px) rotateY(12deg);
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: ca-door 10s ease-in-out infinite alternate;
}
.scn-cleander-advises-xenophon .door-glow {
  position: absolute; bottom:15%; right:10%;
  width:30px; height:50px;
  background: radial-gradient(ellipse at 90% 50%, rgba(200,150,50,0.15) 0%, transparent 70%);
  border-radius: 4px;
  animation: ca-glow 4s ease-in-out infinite alternate;
}
.scn-cleander-advises-xenophon .xenophon-profil {
  position: absolute; bottom:15%; left:25%;
  width:18px; height:42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 30% 30% 40% / 60% 40% 40% 60%;
  transform: scaleX(1.1);
  animation: ca-xen 8s ease-in-out infinite;
}
.scn-cleander-advises-xenophon .cleander-hand {
  position: absolute; bottom:30%; left:40%;
  width:12px; height:16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-20deg);
  animation: ca-hand 5s ease-in-out infinite alternate;
}
.scn-cleander-advises-xenophon .lamp-base {
  position: absolute; bottom:18%; left:15%;
  width:6px; height:14px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4020 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-cleander-advises-xenophon .lamp-flame {
  position: absolute; bottom:30%; left:15%;
  width:6px; height:10px;
  background: radial-gradient(circle, #ffd070 0%, #e0a030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translate(0, -4px);
  animation: ca-flame 2s ease-in-out infinite alternate;
}
.scn-cleander-advises-xenophon .shadow-advice {
  position: absolute; bottom:15%; right:20%;
  width:40px; height:40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: ca-shadow 12s ease-in-out infinite alternate;
}

@keyframes ca-door { 0% { transform:perspective(300px) rotateY(10deg); } 50% { transform:perspective(300px) rotateY(14deg); } 100% { transform:perspective(300px) rotateY(11deg); } }
@keyframes ca-glow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes ca-xen { 0% { transform:scaleX(1.1) translateY(0) rotate(-1deg); } 30% { transform:scaleX(1.1) translateY(-2px) rotate(0deg); } 60% { transform:scaleX(1.1) translateY(-1px) rotate(1deg); } 100% { transform:scaleX(1.1) translateY(0) rotate(-0.5deg); } }
@keyframes ca-hand { 0% { transform:rotate(-18deg) translateX(0); } 50% { transform:rotate(-22deg) translateX(-2px); } 100% { transform:rotate(-19deg) translateX(0); } }
@keyframes ca-flame { 0% { transform:translate(0,-4px) scale(0.9); opacity:0.7; } 50% { transform:translate(1px,-6px) scale(1.1); opacity:1; } 100% { transform:translate(-1px,-3px) scale(0.95); opacity:0.8; } }
@keyframes ca-shadow { 0% { opacity:0.3; transform:scale(0.9); } 50% { opacity:0.6; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(0.95); } }

.scn-xenophon-remembers-perinthus {
  background: linear-gradient(180deg, #1a2a4a 0%, #3a4a6a 30%, #c8a060 70%, #8a6030 100%), radial-gradient(ellipse at 50% 0%, #4a5a7a 0%, transparent 60%);
}
.scn-xenophon-remembers-perinthus .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, transparent 100%);
  animation: pe-sky 12s ease-in-out infinite alternate;
}
.scn-xenophon-remembers-perinthus .town-wall {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.4);
  animation: pe-wall 15s ease-in-out infinite alternate;
}
.scn-xenophon-remembers-perinthus .gates-closed {
  position: absolute; bottom: 32%; left: 45%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  border-left: 2px solid #2a1a0a;
  border-right: 2px solid #2a1a0a;
  animation: pe-gate 8s ease-in-out infinite;
}
.scn-xenophon-remembers-perinthus .tent {
  position: absolute; bottom: 26%; left: 35%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: pe-tent 6s ease-in-out infinite;
}
.scn-xenophon-remembers-perinthus .campfire {
  position: absolute; bottom: 25%; left: 38%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffa040 0%, #c06020 40%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(255,160,64,.5);
  animation: pe-fire 3s ease-in-out infinite alternate;
}
.scn-xenophon-remembers-perinthus .figure-sitting {
  position: absolute; bottom: 25%; left: 42%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-fig 4s ease-in-out infinite;
}
.scn-xenophon-remembers-perinthus .star {
  position: absolute; top: 10%; right: 20%; width: 1%; height: 1%;
  background: #f0e0c0;
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,224,192,.7);
  animation: pe-star 5s ease-in-out infinite alternate;
}
@keyframes pe-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pe-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pe-gate { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes pe-tent { 0%,100% { transform: translateY(0) skewX(0) } 50% { transform: translateY(-2px) skewX(2deg) } }
@keyframes pe-fire { 0% { opacity: .8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .85; transform: scale(1) } }
@keyframes pe-fig { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pe-star { 0% { opacity: .5; transform: scale(1) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: .6; transform: scale(1) } }

.scn-xenophon-on-desperate-straits {
  background: linear-gradient(180deg, #1a2a4a 0%, #3a4a6a 30%, #8a7a5a 60%, #4a3a2a 100%), radial-gradient(ellipse at 30% 0%, #6a8a9a 0%, transparent 70%);
}
.scn-xenophon-on-desperate-straits .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, transparent 100%);
  animation: ds-sky 14s ease-in-out infinite alternate;
}
.scn-xenophon-on-desperate-straits .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.3);
  animation: ds-hills 20s ease-in-out infinite alternate;
}
.scn-xenophon-on-desperate-straits .road {
  position: absolute; bottom: 20%; left: 30%; right: 10%; height: 2%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%);
  transform: skew(-20deg);
  animation: ds-road 10s linear infinite;
}
.scn-xenophon-on-desperate-straits .infantry {
  position: absolute; bottom: 22%; left: 35%; width: 20%; height: 15%;
  background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 6px, #3a3a4a 6px, #3a3a4a 12px);
  clip-path: polygon(0% 100%, 5% 20%, 10% 100%, 15% 20%, 20% 100%, 25% 20%, 30% 100%, 35% 20%, 40% 100%, 45% 20%, 50% 100%, 55% 20%, 60% 100%, 65% 20%, 70% 100%, 75% 20%, 80% 100%, 85% 20%, 90% 100%, 95% 20%, 100% 100%);
  animation: ds-infantry 8s linear infinite;
}
.scn-xenophon-on-desperate-straits .cavalry {
  position: absolute; bottom: 28%; right: 15%; width: 12%; height: 10%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: ds-cavalry 12s linear infinite;
}
.scn-xenophon-on-desperate-straits .dust-cloud {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 8%;
  background: radial-gradient(ellipse, rgba(180,160,120,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: ds-dust 6s ease-in-out infinite alternate;
}
.scn-xenophon-on-desperate-straits .spear {
  position: absolute; bottom: 30%; right: 20%; width: 1%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  transform: rotate(-15deg);
  animation: ds-spear 4s ease-in-out infinite;
}
@keyframes ds-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ds-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ds-road { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes ds-infantry { 0% { transform: translateX(0) } 100% { transform: translateX(-20%) } }
@keyframes ds-cavalry { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-15px) translateY(-3px) } 100% { transform: translateX(-30px) translateY(0) } }
@keyframes ds-dust { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .6; transform: scale(1.2) } 100% { opacity: .4; transform: scale(1) } }
@keyframes ds-spear { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } }

.scn-xenophon-defends-alliance {
  background: linear-gradient(180deg, #2a3a5a 0%, #5a6a7a 30%, #a09060 70%, #6a4a2a 100%), radial-gradient(ellipse at 80% 20%, #d0b070 0%, transparent 50%);
}
.scn-xenophon-defends-alliance .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, transparent 100%);
  animation: da-sky 16s ease-in-out infinite alternate;
}
.scn-xenophon-defends-alliance .village-huts {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: repeating-linear-gradient(90deg, #6a5a3a 0px, #6a5a3a 30px, transparent 30px, transparent 40px);
  border-radius: 20% 20% 0 0;
  animation: da-huts 12s ease-in-out infinite alternate;
}
.scn-xenophon-defends-alliance .corn-stalks {
  position: absolute; bottom: 18%; left: 15%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #c8a060 0%, #8a7a3a 100%);
  clip-path: polygon(10% 0%, 20% 50%, 30% 0%, 40% 50%, 50% 0%, 60% 50%, 70% 0%, 80% 50%, 90% 0%, 100% 50%, 90% 100%, 10% 100%);
  animation: da-corn 6s ease-in-out infinite alternate;
}
.scn-xenophon-defends-alliance .thracian-fleeing {
  position: absolute; bottom: 20%; left: 40%; width: 5%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: da-thracian 3s linear infinite;
}
.scn-xenophon-defends-alliance .cattle {
  position: absolute; bottom: 18%; left: 50%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: da-cattle 8s ease-in-out infinite;
}
.scn-xenophon-defends-alliance .smoke {
  position: absolute; top: 10%; left: 30%; width: 15%; height: 20%;
  background: radial-gradient(ellipse, rgba(200,180,140,.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: da-smoke 18s linear infinite;
}
.scn-xenophon-defends-alliance .grain-stacks {
  position: absolute; bottom: 15%; right: 20%; width: 12%; height: 12%;
  background: radial-gradient(ellipse, #c8a060 0%, #8a7030 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: da-grain 5s ease-in-out infinite alternate;
}
@keyframes da-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes da-huts { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes da-corn { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes da-thracian { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(20px) rotate(5deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes da-cattle { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-5px) } }
@keyframes da-smoke { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-15px) translateX(10px) } 100% { transform: translateY(-30px) translateX(20px) } }
@keyframes da-grain { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }

.scn-xenophon-on-security {
  background: linear-gradient(180deg, #2a3a5a 0%, #4a6a7a 30%, #a0a080 60%, #6a5a3a 100%), radial-gradient(ellipse at 10% 0%, #6a8a9a 0%, transparent 60%);
}
.scn-xenophon-on-security .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, transparent 100%);
  animation: os-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-on-security .plains {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: os-plains 12s ease-in-out infinite alternate;
}
.scn-xenophon-on-security .cavalry-line {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 15%;
  background: repeating-linear-gradient(90deg, #3a2a2a 0%, #3a2a2a 8%, transparent 8%, transparent 12%);
  clip-path: polygon(0% 100%, 2% 40%, 5% 100%, 7% 40%, 10% 100%, 12% 40%, 15% 100%, 17% 40%, 20% 100%, 22% 40%, 25% 100%, 27% 40%, 30% 100%, 32% 40%, 35% 100%, 37% 40%, 40% 100%, 42% 40%, 45% 100%, 47% 40%, 50% 100%, 52% 40%, 55% 100%, 57% 40%, 60% 100%, 62% 40%, 65% 100%, 67% 40%, 70% 100%, 72% 40%, 75% 100%, 77% 40%, 80% 100%, 82% 40%, 85% 100%, 87% 40%, 90% 100%, 92% 40%, 95% 100%, 97% 40%, 100% 100%);
  animation: os-cavalry 10s ease-in-out infinite alternate;
}
.scn-xenophon-on-security .spears {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20%;
  background: repeating-linear-gradient(90deg, #8a7a5a 0%, #8a7a5a 2px, transparent 2px, transparent 20px);
  transform: rotate(10deg);
  animation: os-spears 6s linear infinite;
}
.scn-xenophon-on-security .watchtower {
  position: absolute; bottom: 30%; left: 5%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: os-tower 9s ease-in-out infinite;
}
.scn-xenophon-on-security .banner {
  position: absolute; bottom: 45%; left: 6%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #a06040 0%, #804020 100%);
  clip-path: polygon(0% 0%, 100% 30%, 100% 70%, 0% 100%);
  animation: os-banner 5s ease-in-out infinite alternate;
}
.scn-xenophon-on-security .dust {
  position: absolute; bottom: 20%; left: 30%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(200,180,140,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: os-dust 15s linear infinite;
}
@keyframes os-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes os-plains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes os-cavalry { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes os-spears { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }
@keyframes os-tower { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) } }
@keyframes os-banner { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes os-dust { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(20px) } }

.scn-xenophon-hope-from-gods { background: linear-gradient(180deg, #f7d6a0 0%, #e8b87a 30%, #b89a6a 60%, #6a7a8a 100%), radial-gradient(ellipse at 70% 20%, #ffe8b0 0%, transparent 50%); }
.scn-xenophon-hope-from-gods .dawn-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #fce4b8 0%, #f0c898 40%, #c8a87a 100%); animation: xhg-sky 14s ease-in-out infinite alternate; }
.scn-xenophon-hope-from-gods .sun-glow { position:absolute; top:15%; left:68%; width:100px; height:100px; background: radial-gradient(circle, #ffe8b0 0%, #f0c898 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,232,176,.5), 0 0 120px 40px rgba(240,200,152,.2); animation: xhg-sun 12s ease-in-out infinite alternate; }
.scn-xenophon-hope-from-gods .sea-mist { position:absolute; bottom:30%; left:-10%; right:-10%; height:40%; background: linear-gradient(0deg, #8a9aaa 0%, #b0c0d0 30%, #d0d8e0 60%, transparent 100%); border-radius:40%; filter: blur(8px); animation: xhg-mist 20s ease-in-out infinite alternate; }
.scn-xenophon-hope-from-gods .rocky-isle { position:absolute; bottom:20%; left:25%; width:180px; height:60px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 60%, #3a2a1a 100%); border-radius: 30% 50% 10% 30% / 60% 80% 20% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation: xhg-isle 18s ease-in-out infinite alternate; }
.scn-xenophon-hope-from-gods .little-figure { position:absolute; bottom:20%; left:30%; width:14px; height:26px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xhg-figure 4s ease-in-out infinite; }
.scn-xenophon-hope-from-gods .ray { position:absolute; top:20%; width:8px; height:150px; background: linear-gradient(180deg, rgba(255,232,176,.7) 0%, rgba(255,232,176,.1) 100%); border-radius:4px; transform-origin: top center; filter: blur(2px); }
.scn-xenophon-hope-from-gods .ray-left { left:62%; transform: rotate(-12deg); animation: xhg-rayl 10s ease-in-out infinite alternate; }
.scn-xenophon-hope-from-gods .ray-right { left:74%; transform: rotate(8deg); animation: xhg-rayr 10s ease-in-out infinite alternate; }
.scn-xenophon-hope-from-gods .bird { position:absolute; width:18px; height:8px; background: #4a3a2a; border-radius:50%; filter: blur(.5px); }
.scn-xenophon-hope-from-gods .bird-a { top:10%; left:20%; animation: xhg-birda 25s linear infinite; }
.scn-xenophon-hope-from-gods .bird-b { top:14%; left:50%; animation: xhg-birdb 30s linear infinite reverse; }
@keyframes xhg-sky { 0% { opacity:.9; background-position:0 0 } 50% { opacity:1; background-position:0 -10px } 100% { opacity:.85; background-position:0 0 } }
@keyframes xhg-sun { 0% { transform: scale(.95); opacity:.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes xhg-mist { 0% { transform: translateY(0) scaleX(1); opacity:.6 } 50% { transform: translateY(-4px) scaleX(1.02); opacity:.8 } 100% { transform: translateY(2px) scaleX(.98); opacity:.5 } }
@keyframes xhg-isle { 0% { transform: translateY(0); border-radius: 30% 50% 10% 30% / 60% 80% 20% 40% } 50% { transform: translateY(-2px); border-radius: 35% 55% 15% 25% / 55% 75% 25% 45% } 100% { transform: translateY(0); border-radius: 30% 50% 10% 30% / 60% 80% 20% 40% } }
@keyframes xhg-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes xhg-rayl { 0% { opacity:.3; transform: rotate(-15deg) scaleY(1) } 50% { opacity:.7; transform: rotate(-10deg) scaleY(1.1) } 100% { opacity:.4; transform: rotate(-13deg) scaleY(.95) } }
@keyframes xhg-rayr { 0% { opacity:.4; transform: rotate(10deg) scaleY(1) } 50% { opacity:.7; transform: rotate(6deg) scaleY(1.1) } 100% { opacity:.3; transform: rotate(8deg) scaleY(.95) } }
@keyframes xhg-birda { 0% { transform: translateX(-40px) translateY(0) } 25% { transform: translateX(20vw) translateY(-6px) } 50% { transform: translateX(60vw) translateY(0) } 75% { transform: translateX(80vw) translateY(-4px) } 100% { transform: translateX(120vw) translateY(2px) } }
@keyframes xhg-birdb { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(-30vw) translateY(-5px) } 50% { transform: translateX(-60vw) translateY(2px) } 75% { transform: translateX(-80vw) translateY(-3px) } 100% { transform: translateX(-120vw) translateY(0) } }

.scn-example-of-marathon { background: linear-gradient(180deg, #f5c68a 0%, #d4a868 30%, #a8784a 60%, #5a5a4a 100%), radial-gradient(ellipse at 50% 15%, #ffe0a0 0%, transparent 60%); }
.scn-example-of-marathon .plain-dawn { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f0c898 0%, #d4a868 40%, #b89048 100%); animation: xma-sky 12s ease-in-out infinite alternate; }
.scn-example-of-marathon .sunrise-horizon { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(0deg, #d4a868 0%, #f0d8b0 30%, transparent 100%); border-radius: 20% 30% 0 0 / 100% 100% 0 0; animation: xma-horizon 15s ease-in-out infinite alternate; }
.scn-example-of-marathon .hoplite-shield { position:absolute; bottom:22%; left:30%; width:60px; height:70px; background: radial-gradient(ellipse at 40% 40%, #b08040 0%, #8a6020 40%, #5a3a10 100%); border-radius: 50% 50% 45% 45% / 50% 50% 40% 40%; border: 4px solid #c89848; box-shadow: inset 0 -6px 12px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3); transform: rotate(10deg); animation: xma-shield 5s ease-in-out infinite; }
.scn-example-of-marathon .hoplite-spear { position:absolute; bottom:22%; left:33%; width:6px; height:110px; background: linear-gradient(180deg, #6a4a20 0%, #4a2a10 100%); border-radius:3px; transform-origin: bottom center; transform: rotate(-20deg) translateX(-20px); animation: xma-spear 5s ease-in-out infinite; }
.scn-example-of-marathon .hoplite-crest { position:absolute; bottom:44%; left:28%; width:40px; height:18px; background: linear-gradient(180deg, #a03020 0%, #701810 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: xma-crest 4s ease-in-out infinite alternate; }
.scn-example-of-marathon .dust-cloud { position:absolute; bottom:18%; width:80px; height:30px; background: linear-gradient(180deg, rgba(180,160,120,.5) 0%, rgba(180,160,120,.1) 100%); border-radius:50%; filter: blur(10px); }
.scn-example-of-marathon .dust-1 { left:40%; animation: xma-dust1 8s ease-in-out infinite; }
.scn-example-of-marathon .dust-2 { left:55%; animation: xma-dust2 10s ease-in-out infinite reverse; }
.scn-example-of-marathon .trophy-stone { position:absolute; bottom:18%; left:60%; width:30px; height:40px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); animation: xma-stone 12s ease-in-out infinite alternate; }
@keyframes xma-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes xma-horizon { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.95) } }
@keyframes xma-shield { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes xma-spear { 0% { transform: rotate(-20deg) translateX(-20px) translateY(0) } 50% { transform: rotate(-18deg) translateX(-20px) translateY(-2px) } 100% { transform: rotate(-20deg) translateX(-20px) translateY(0) } }
@keyframes xma-crest { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.1) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes xma-dust1 { 0% { transform: translateX(0) scale(1); opacity:.4 } 50% { transform: translateX(10px) scale(1.2); opacity:.6 } 100% { transform: translateX(0) scale(1); opacity:.3 } }
@keyframes xma-dust2 { 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(-8px) scale(1.3); opacity:.5 } 100% { transform: translateX(0) scale(1); opacity:.4 } }
@keyframes xma-stone { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-example-of-xerxes { background: linear-gradient(180deg, #d4a060 0%, #b88840 30%, #8a6830 60%, #4a4a3a 100%), radial-gradient(ellipse at 30% 20%, #e8c060 0%, transparent 60%); }
.scn-example-of-xerxes .sky-invasion { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e8c878 0%, #c8a050 40%, #a08040 100%); animation: xer-sky 14s ease-in-out infinite alternate; }
.scn-example-of-xerxes .sun-back { position:absolute; top:12%; left:25%; width:80px; height:80px; background: radial-gradient(circle, #e8d090 0%, #d4b060 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(232,208,144,.4); animation: xer-sun 16s ease-in-out infinite alternate; }
.scn-example-of-xerxes .ship-prow { position:absolute; bottom:22%; left:10%; width:120px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 80% 20% 30% 20% / 100% 50% 50% 20%; transform: rotate(-15deg); box-shadow: inset 0 -6px 12px rgba(0,0,0,.5); animation: xer-prow 6s ease-in-out infinite; }
.scn-example-of-xerxes .rower-backs { position:absolute; bottom:22%; left:15%; width:90px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: perspective(100px) rotateX(20deg); animation: xer-rowers 4s ease-in-out infinite; }
.scn-example-of-xerxes .wave-foam { position:absolute; bottom:18%; height:12px; background: linear-gradient(180deg, rgba(200,180,160,.6) 0%, transparent 100%); border-radius:50%; filter: blur(3px); }
.scn-example-of-xerxes .foam-1 { left:5%; width:140px; animation: xer-foam1 7s ease-in-out infinite; }
.scn-example-of-xerxes .foam-2 { left:35%; width:100px; animation: xer-foam2 9s ease-in-out infinite reverse; }
.scn-example-of-xerxes .foam-3 { left:60%; width:120px; animation: xer-foam3 11s ease-in-out infinite; }
.scn-example-of-xerxes .helmet-crest { position:absolute; bottom:38%; left:8%; width:30px; height:20px; background: linear-gradient(180deg, #b83830 0%, #802020 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(-20deg); animation: xer-crest 4s ease-in-out infinite alternate; }
@keyframes xer-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes xer-sun { 0% { transform: scale(.95); opacity:.8 } 50% { transform: scale(1.08); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes xer-prow { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-13deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes xer-rowers { 0% { transform: perspective(100px) rotateX(20deg) translateY(0) } 25% { transform: perspective(100px) rotateX(18deg) translateY(-2px) } 50% { transform: perspective(100px) rotateX(22deg) translateY(0) } 75% { transform: perspective(100px) rotateX(20deg) translateY(-1px) } 100% { transform: perspective(100px) rotateX(20deg) translateY(0) } }
@keyframes xer-foam1 { 0% { transform: translateX(0) scaleX(1); opacity:.4 } 50% { transform: translateX(8px) scaleX(1.1); opacity:.6 } 100% { transform: translateX(0) scaleX(1); opacity:.3 } }
@keyframes xer-foam2 { 0% { transform: translateX(0) scaleX(1); opacity:.3 } 50% { transform: translateX(-6px) scaleX(1.15); opacity:.5 } 100% { transform: translateX(0) scaleX(1); opacity:.4 } }
@keyframes xer-foam3 { 0% { transform: translateX(0) scaleX(1); opacity:.35 } 50% { transform: translateX(10px) scaleX(1.2); opacity:.55 } 100% { transform: translateX(0) scaleX(1); opacity:.3 } }
@keyframes xer-crest { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-18deg) scaleY(1.12) } 100% { transform: rotate(-20deg) scaleY(1) } }

.scn-liberty-of-hellas { background: linear-gradient(180deg, #f0d0a0 0%, #d4b068 30%, #a88838 60%, #5a6a4a 100%), radial-gradient(ellipse at 60% 15%, #ffe8c0 0%, transparent 60%); }
.scn-liberty-of-hellas .horizon-wide { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f5dbb0 0%, #d4b068 40%, #b89848 100%); animation: lih-sky 14s ease-in-out infinite alternate; }
.scn-liberty-of-hellas .sunrise-burst { position:absolute; top:10%; right:20%; width:90px; height:90px; background: radial-gradient(circle, #ffe8c0 0%, #f0d090 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(255,232,192,.5), 0 0 100px 30px rgba(240,208,144,.2); animation: lih-sun 12s ease-in-out infinite alternate; }
.scn-liberty-of-hellas .figure-robes { position:absolute; bottom:22%; left:35%; width:28px; height:50px; background: linear-gradient(180deg, #d4c8a8 0%, #a89878 40%, #7a6a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: lih-robes 6s ease-in-out infinite; }
.scn-liberty-of-hellas .figure-arm { position:absolute; bottom:38%; left:36%; width:8px; height:30px; background: linear-gradient(180deg, #c8b898 0%, #8a7a5a 100%); border-radius: 4px; transform-origin: bottom right; transform: rotate(-30deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: lih-arm 5s ease-in-out infinite alternate; }
.scn-liberty-of-hellas .ground-sacred { position:absolute; bottom:18%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%); border-radius: 20% 20% 0 0 / 100% 100% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); animation: lih-ground 18s ease-in-out infinite alternate; }
.scn-liberty-of-hellas .olive-branch { position:absolute; bottom:36%; left:33%; width:40px; height:14px; background: linear-gradient(180deg, #6a7a3a 0%, #4a5a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-40deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: lih-olive 7s ease-in-out infinite alternate; }
.scn-liberty-of-hellas .wind-line { position:absolute; top:25%; height:2px; background: rgba(255,232,176,.3); border-radius:2px; filter: blur(1px); }
.scn-liberty-of-hellas .wind-a { left:10%; width:60px; animation: lih-winda 12s linear infinite; }
.scn-liberty-of-hellas .wind-b { left:50%; width:40px; animation: lih-windb 15s linear infinite reverse; }
@keyframes lih-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lih-sun { 0% { transform: scale(.95); opacity:.8 } 50% { transform: scale(1.06); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes lih-robes { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes lih-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-30deg) } }
@keyframes lih-ground { 0% { transform: translateY(0); border-radius: 20% 20% 0 0 / 100% 100% 0 0 } 50% { transform: translateY(-2px); border-radius: 25% 25% 0 0 / 100% 100% 0 0 } 100% { transform: translateY(0); border-radius: 20% 20% 0 0 / 100% 100% 0 0 } }
@keyframes lih-olive { 0% { transform: rotate(-40deg) scaleX(1) } 50% { transform: rotate(-35deg) scaleX(1.05) } 100% { transform: rotate(-40deg) scaleX(1) } }
@keyframes lih-winda { 0% { transform: translateX(-20px); opacity:0 } 20% { opacity:.6 } 50% { transform: translateX(40px); opacity:.8 } 80% { opacity:.4 } 100% { transform: translateX(120px); opacity:0 } }
@keyframes lih-windb { 0% { transform: translateX(20px); opacity:0 } 20% { opacity:.5 } 50% { transform: translateX(-30px); opacity:.7 } 80% { opacity:.3 } 100% { transform: translateX(-100px); opacity:0 } }

/* scene: item-chestnuts-and-wine */
.scn-item-chestnuts-and-wine { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 80%); }
.scn-item-chestnuts-and-wine .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-item-chestnuts-and-wine .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); animation: wall-icw 15s ease-in-out infinite alternate; }
.scn-item-chestnuts-and-wine .shelf { position:absolute; bottom:45%; left:20%; right:20%; height:4%; background: #5a4a3a; border-radius:2px; box-shadow: 0 3px 6px rgba(0,0,0,.5); }
.scn-item-chestnuts-and-wine .nuts { position:absolute; bottom:47%; left:35%; width:20px; height:20px; background: radial-gradient(circle at 40% 35%, #8a6a4a 0%, #6a4a2a 100%); border-radius:50%; box-shadow: 3px 3px 0 #4a2a1a, 6px 5px 0 #5a3a2a; animation: nuts-icw 4s ease-in-out infinite alternate; }
.scn-item-chestnuts-and-wine .amphora { position:absolute; bottom:40%; left:55%; width:28px; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: amphora-icw 8s ease-in-out infinite; }
.scn-item-chestnuts-and-wine .fire { position:absolute; bottom:30%; left:10%; width:16px; height:30px; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff6000 50%, transparent 100%); border-radius:50%; animation: fire-icw 0.8s ease-in-out infinite alternate; }
.scn-item-chestnuts-and-wine .glow { position:absolute; bottom:25%; left:5%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,160,64,.4) 0%, transparent 70%); filter: blur(8px); animation: glow-icw 3s ease-in-out infinite alternate; }

@keyframes wall-icw { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: -5% 0%; } }
@keyframes nuts-icw { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes amphora-icw { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03) rotate(2deg); } 100% { transform: scaleY(0.97) rotate(-1deg); } }
@keyframes fire-icw { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.2) translateY(-3px); opacity:1; } 100% { transform: scaleY(0.9) translateY(2px); opacity:.7; } }
@keyframes glow-icw { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.9; transform: scale(1.1); } 100% { opacity:.5; transform: scale(0.9); } }

/* scene: march-to-chalybes */
.scn-march-to-chalybes { background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #7a8a9a 0%, transparent 60%); }
.scn-march-to-chalybes .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a7a8a 0%, transparent 100%); animation: sky-mtc 20s ease-in-out infinite alternate; }
.scn-march-to-chalybes .mountains { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 30% 50% 0 0 / 60% 40% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.3); animation: mtn-mtc 35s linear infinite; }
.scn-march-to-chalybes .fortress { position:absolute; bottom:40%; left:60%; width:50px; height:40px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius:4px 4px 2px 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: fort-mtc 12s ease-in-out infinite; }
.scn-march-to-chalybes .soldier1, .scn-march-to-chalybes .soldier2, .scn-march-to-chalybes .soldier3 { position:absolute; bottom:22%; width:12px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; }
.scn-march-to-chalybes .soldier1 { left:15%; animation: march-mtc 4s ease-in-out infinite; }
.scn-march-to-chalybes .soldier2 { left:30%; animation: march-mtc 4.5s ease-in-out infinite; }
.scn-march-to-chalybes .soldier3 { left:45%; animation: march-mtc 5s ease-in-out infinite; }
.scn-march-to-chalybes .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; animation: ground-mtc 10s ease-in-out infinite alternate; }

@keyframes sky-mtc { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes mtn-mtc { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(10px); } }
@keyframes fort-mtc { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(1px); } }
@keyframes march-mtc { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes ground-mtc { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }

/* scene: friendly-entertainment */
.scn-friendly-entertainment { background: linear-gradient(180deg, #a0c8e0 0%, #70a0c0 100%), radial-gradient(ellipse at 50% 0%, #f0e8d0 0%, transparent 70%); }
.scn-friendly-entertainment .bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b0d4e8 0%, #80b0d0 100%); animation: bg-fe 25s ease-in-out infinite alternate; }
.scn-friendly-entertainment .sun { position:absolute; top:10%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #f0e8d0 0%, #e0c090 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(240,232,208,.5); animation: sun-fe 6s ease-in-out infinite alternate; }
.scn-friendly-entertainment .hill { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #70a070 0%, #407040 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; }
.scn-friendly-entertainment .child1, .scn-friendly-entertainment .child2 { position:absolute; width:24px; height:28px; background: radial-gradient(ellipse at 50% 60%, #f0f0e0 0%, #d0d0c0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.scn-friendly-entertainment .child1 { bottom:25%; left:25%; animation: child-fe 5s ease-in-out infinite; }
.scn-friendly-entertainment .child2 { bottom:28%; left:55%; animation: child-fe 5.5s ease-in-out infinite; animation-delay: -1.5s; }
.scn-friendly-entertainment .parent { position:absolute; bottom:20%; left:40%; width:16px; height:40px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: parent-fe 8s ease-in-out infinite; }
.scn-friendly-entertainment .chestnut1, .scn-friendly-entertainment .chestnut2 { position:absolute; width:8px; height:8px; background: radial-gradient(circle at 40% 40%, #b08050 0%, #906030 100%); border-radius:50%; }
.scn-friendly-entertainment .chestnut1 { bottom:15%; left:30%; animation: nut-fe 3s ease-in-out infinite; }
.scn-friendly-entertainment .chestnut2 { bottom:18%; left:45%; animation: nut-fe 3.5s ease-in-out infinite; animation-delay: -0.8s; }

@keyframes bg-fe { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes sun-fe { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(2px) scale(0.95); } }
@keyframes child-fe { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.03); } 100% { transform: translateY(2px) scale(0.98); } }
@keyframes parent-fe { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(6px); } 100% { transform: scaleY(0.98) translateX(-6px); } }
@keyframes nut-fe { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.2) rotate(15deg); } 100% { transform: scale(0.9) rotate(-10deg); } }

/* scene: barbaric-customs-description */
.scn-barbaric-customs-description { background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%), radial-gradient(ellipse at 50% 100%, #5a5a5a 0%, transparent 70%); }
.scn-barbaric-customs-description .bg { position:absolute; inset:0; background: linear-gradient(180deg, #7a7a7a 0%, #5a5a5a 100%); animation: bg-bcd 12s ease-in-out infinite alternate; }
.scn-barbaric-customs-description .fig1, .scn-barbaric-customs-description .fig2, .scn-barbaric-customs-description .fig3, .scn-barbaric-customs-description .fig4 { position:absolute; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; }
.scn-barbaric-customs-description .fig1 { bottom:20%; left:10%; animation: fig1-bcd 2s ease-in-out infinite; }
.scn-barbaric-customs-description .fig2 { bottom:18%; left:30%; animation: fig2-bcd 2.5s ease-in-out infinite; }
.scn-barbaric-customs-description .fig3 { bottom:22%; left:50%; animation: fig3-bcd 3s ease-in-out infinite; }
.scn-barbaric-customs-description .fig4 { bottom:16%; left:70%; animation: fig4-bcd 2.8s ease-in-out infinite; }
.scn-barbaric-customs-description .prop1, .scn-barbaric-customs-description .prop2 { position:absolute; width:12px; height:6px; background: #8a8a7a; border-radius:50% 50% 0 0; }
.scn-barbaric-customs-description .prop1 { bottom:35%; left:15%; transform: rotate(30deg); animation: prop1-bcd 4s ease-in-out infinite; }
.scn-barbaric-customs-description .prop2 { bottom:30%; left:65%; transform: rotate(-20deg); animation: prop2-bcd 3.5s ease-in-out infinite; }

@keyframes bg-bcd { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes fig1-bcd { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(15deg) translateX(10px); } 50% { transform: rotate(-10deg) translateX(20px); } 75% { transform: rotate(5deg) translateX(5px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes fig2-bcd { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(-180deg) scaleY(1) translateY(-10px); } 100% { transform: rotate(-360deg) scaleY(1) translateY(0); } }
@keyframes fig3-bcd { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-20px) scale(1.1); } 100% { transform: translateY(10px) scale(0.9); } }
@keyframes fig4-bcd { 0% { transform: scale(1,1); } 50% { transform: scale(1,-1); } 100% { transform: scale(1,1); } }
@keyframes prop1-bcd { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(-150deg) translateX(20px); } 100% { transform: rotate(30deg) translateX(0); } }
@keyframes prop2-bcd { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(160deg) translateX(-15px); } 100% { transform: rotate(-20deg) translateX(0); } }

/* ======== Scene: Xenophon Narrows Sacrifice ======== */
.scn-xenophon-narrows-sacrifice {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2a20 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-xenophon-narrows-sacrifice .tent-bg {
  position: absolute; inset: 0; background: #1a1410; opacity: 0.6;
  animation: xs-bg-pulse 8s ease-in-out infinite alternate;
}
.scn-xenophon-narrows-sacrifice .tent-wall {
  position: absolute; inset: 15% 10% 20% 10%; 
  background: linear-gradient(135deg, #2a1e18 0%, #3a2a20 50%, #1a1410 100%);
  border-radius: 5% / 8%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.7);
}
.scn-xenophon-narrows-sacrifice .altar {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 12px rgba(0,0,0,0.6);
}
.scn-xenophon-narrows-sacrifice .flame {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 30px;
  background: radial-gradient(ellipse 50% 100%, #ffa040 0%, #cc6010 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px #cc6010, 0 0 60px 20px rgba(204,96,16,0.3);
  animation: xs-flame 0.6s ease-in-out infinite alternate;
}
.scn-xenophon-narrows-sacrifice .figure {
  position: absolute; bottom: 20%; left: 42%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xs-figure 5s ease-in-out infinite;
}
.scn-xenophon-narrows-sacrifice .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px);
  animation: xs-shadow 5s ease-in-out infinite;
}
.scn-xenophon-narrows-sacrifice .smoke {
  position: absolute; bottom: 34%; left: 48%; width: 50px; height: 40px;
  background: radial-gradient(ellipse, rgba(180,140,100,0.2) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: xs-smoke 7s ease-out infinite;
}
@keyframes xs-bg-pulse {
  0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; }
}
@keyframes xs-flame {
  0% { transform: translateX(-50%) scaleY(0.9); } 50% { transform: translateX(-50%) scaleY(1.15); } 100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes xs-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(0); } 75% { transform: translateX(4px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes xs-shadow {
  0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(4px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); }
}
@keyframes xs-smoke {
  0% { opacity: 0.6; transform: translateY(0) scale(0.8); } 50% { opacity: 0.3; transform: translateY(-20px) scale(1.5); } 100% { opacity: 0; transform: translateY(-40px) scale(2.5); }
}

/* ======== Scene: Army Waits for Cleander ======== */
.scn-army-waits-for-cleander {
  background: linear-gradient(180deg, #4a5058 0%, #6a7078 40%, #8a9098 100%),
              radial-gradient(ellipse at 50% 100%, #8a9098 0%, transparent 60%);
}
.scn-army-waits-for-cleander .sky-cloudy {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a5058 0%, transparent 100%);
  animation: aw-sky 20s ease-in-out infinite alternate;
}
.scn-army-waits-for-cleander .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-army-waits-for-cleander .tent-left {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #6a6040 0%, #4a4030 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 5% 5%;
  transform: skewY(-5deg); box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: aw-tent-sway 12s ease-in-out infinite;
}
.scn-army-waits-for-cleander .tent-right {
  position: absolute; bottom: 28%; right: 15%; width: 70px; height: 55px;
  background: linear-gradient(225deg, #5a5030 0%, #3a3020 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 5% 5%;
  transform: skewY(5deg); box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: aw-tent-sway2 14s ease-in-out infinite;
}
.scn-army-waits-for-cleander .soldier-a {
  position: absolute; bottom: 10%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aw-soldier-shift 6s ease-in-out infinite;
}
.scn-army-waits-for-cleander .soldier-b {
  position: absolute; bottom: 12%; left: 48%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aw-soldier-shift 7s ease-in-out infinite 1s;
}
.scn-army-waits-for-cleander .flag {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 40px;
  background: #5a4030; transform: translateX(-50%);
}
.scn-army-waits-for-cleander .flag::after {
  content: ''; position: absolute; top: 0; left: 2px; width: 24px; height: 12px;
  background: linear-gradient(180deg, #886040 0%, #604020 100%);
  border-radius: 0 4px 4px 0; animation: aw-flag-wave 3s ease-in-out infinite;
}
.scn-army-waits-for-cleander .cloud-far {
  position: absolute; top: 8%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(180,180,190,0.6) 0%, rgba(180,180,190,0.1) 100%);
  border-radius: 40%; filter: blur(8px);
  animation: aw-cloud-drift 60s linear infinite;
}
@keyframes aw-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes aw-tent-sway { 0% { transform: skewY(-5deg) translateY(0); } 50% { transform: skewY(-4deg) translateY(-2px); } 100% { transform: skewY(-5deg) translateY(0); } }
@keyframes aw-tent-sway2 { 0% { transform: skewY(5deg) translateY(0); } 50% { transform: skewY(4deg) translateY(-2px); } 100% { transform: skewY(5deg) translateY(0); } }
@keyframes aw-soldier-shift { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes aw-flag-wave { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes aw-cloud-drift { 0% { transform: translateX(-30px); } 100% { transform: translateX(150vw); } }

/* ======== Scene: Victims Fail Completely ======== */
.scn-victims-fail-completely {
  background: linear-gradient(180deg, #0e0a12 0%, #1a1422 40%, #2a1e32 100%),
              radial-gradient(ellipse at 50% 70%, #2a1e32 0%, transparent 60%);
}
.scn-victims-fail-completely .room-bg {
  position: absolute; inset: 0; background: #0e0a12; opacity: 0.8;
  animation: vf-bg-pulse 15s ease-in-out infinite alternate;
}
.scn-victims-fail-completely .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-victims-fail-completely .victim-foot {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: vf-victim-tremble 2s ease-in-out infinite;
}
.scn-victims-fail-completely .altar {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 40px;
  background: linear-gradient(180deg, #4a3030 0%, #2a1818 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-victims-fail-completely .crowd {
  position: absolute; bottom: 14%; left: 0; right: 0; height: 50px;
  background: repeating-linear-gradient(
    90deg,
    #1a1a1a 0px, #1a1a1a 8px,
    transparent 8px, transparent 14px,
    #1a1a1a 14px, #1a1a1a 22px,
    transparent 22px, transparent 28px,
    #1a1a1a 28px, #1a1a1a 36px,
    transparent 36px, transparent 42px,
    #1a1a1a 42px, #1a1a1a 50px
  );
  background-size: 50px 100%;
  animation: vf-crowd-move 10s linear infinite;
}
.scn-victims-fail-completely .light-pool {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: radial-gradient(ellipse, rgba(200,160,100,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: vf-light-fade 8s ease-in-out infinite alternate;
}
.scn-victims-fail-completely .shadow-fig {
  position: absolute; bottom: 14%; left: 40%; width: 20px; height: 45px;
  background: rgba(0,0,0,0.6);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: vf-shadow-fig 6s ease-in-out infinite;
}
@keyframes vf-bg-pulse { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes vf-victim-tremble { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(0); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes vf-crowd-move { 0% { background-position: 0 0; } 100% { background-position: -50px 0; } }
@keyframes vf-light-fade { 0% { opacity: 0.4; transform: translateX(-50%) scale(0.9); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.5; transform: translateX(-50%) scale(1); } }
@keyframes vf-shadow-fig { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(3px) translateY(-1px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-3px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }

/* ======== Scene: Neon Leads Foraging Party ======== */
.scn-neon-leads-foraging-party {
  background: linear-gradient(180deg, #2a3038 0%, #404850 40%, #606870 100%),
              radial-gradient(ellipse at 50% 100%, #606870 0%, transparent 60%);
}
.scn-neon-leads-foraging-party .sky-grey {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a3038 0%, #4a5058 100%);
  animation: nl-sky-sweep 30s ease-in-out infinite alternate;
}
.scn-neon-leads-foraging-party .ground-barren {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a28 0%, #1a1a10 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-neon-leads-foraging-party .leader {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl-leader-walk 7s ease-in-out infinite;
}
.scn-neon-leads-foraging-party .soldier-one {
  position: absolute; bottom: 18%; left: 50%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl-soldier-walk 6s ease-in-out infinite 0.5s;
}
.scn-neon-leads-foraging-party .soldier-two {
  position: absolute; bottom: 20%; left: 58%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl-soldier-walk 6s ease-in-out infinite 1.2s;
}
.scn-neon-leads-foraging-party .pack {
  position: absolute; bottom: 16%; left: 55%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10% 30% 10% 30% / 20% 20% 20% 20%;
  transform: rotate(10deg);
  animation: nl-pack-sway 4s ease-in-out infinite;
}
.scn-neon-leads-foraging-party .bird {
  position: absolute; top: 15%; right: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #3a3a3a 0%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 0 0;
  animation: nl-bird-fly 20s linear infinite;
}
.scn-neon-leads-foraging-party .cloud-low {
  position: absolute; top: 12%; left: -10%; width: 180px; height: 25px;
  background: linear-gradient(180deg, rgba(180,180,200,0.4) 0%, rgba(180,180,200,0.05) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: nl-cloud-drift 70s linear infinite;
}
@keyframes nl-sky-sweep { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes nl-leader-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(0); } 75% { transform: translateX(24px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes nl-soldier-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(0); } 75% { transform: translateX(18px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0); } }
@keyframes nl-pack-sway { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes nl-bird-fly { 0% { transform: translate(0, 0); } 25% { transform: translate(-20px, -10px); } 50% { transform: translate(-40px, 5px); } 75% { transform: translate(-60px, -15px); } 100% { transform: translate(-80px, 0); } }
@keyframes nl-cloud-drift { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-dexipus-accuses-robbery {
  background: linear-gradient(180deg, #b8d4e8 0%, #e8c878 60%, #c89050 100%), radial-gradient(ellipse at 40% 80%, #f0d090 0%, transparent 60%);
}
.scn-dexipus-accuses-robbery .sky {
  position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #8ab8d4 0%, #d4b87a 100%); animation: dar-sky 14s ease-in-out infinite alternate;
}
.scn-dexipus-accuses-robbery .hills {
  position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%); border-radius:30% 50% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,.3); animation: dar-hills 10s ease-in-out infinite alternate;
}
.scn-dexipus-accuses-robbery .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a08050 0%, #6a5030 100%); border-radius:20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-dexipus-accuses-robbery .figure-dexipus {
  position:absolute; bottom:24%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dar-dexi 6s ease-in-out infinite;
}
.scn-dexipus-accuses-robbery .figure-agasias {
  position:absolute; bottom:22%; left:55%; width:24px; height:52px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:45% 40% 35% 35% / 55% 50% 35% 35%; transform-origin: bottom center; animation: dar-agas 5s ease-in-out infinite alternate;
}
.scn-dexipus-accuses-robbery .stone-a {
  position:absolute; bottom:38%; left:42%; width:8px; height:8px; background: radial-gradient(circle at 30% 30%, #a08060, #504030); border-radius:50%; animation: dar-stone 2.5s ease-in infinite;
}
.scn-dexipus-accuses-robbery .stone-b {
  position:absolute; bottom:42%; left:48%; width:6px; height:6px; background: radial-gradient(circle at 30% 30%, #907050, #403020); border-radius:50%; animation: dar-stone 2.8s ease-in 0.5s infinite;
}
.scn-dexipus-accuses-robbery .shadow-hard {
  position:absolute; bottom:0; left:30%; width:40%; height:15%; background: linear-gradient(90deg, transparent, rgba(0,0,0,.4) 40%, rgba(0,0,0,.4) 60%, transparent); filter: blur(4px); animation: dar-shadow 8s ease-in-out infinite alternate;
}
@keyframes dar-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes dar-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes dar-dexi {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-3deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dar-agas {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(5px) rotate(2deg); }
}
@keyframes dar-stone {
  0% { transform: translateY(0) scale(1); opacity:1; }
  50% { transform: translateY(-60px) scale(1.2); opacity:0.8; }
  100% { transform: translateY(0) scale(0.8); opacity:0; }
}
@keyframes dar-shadow {
  0% { opacity:0.3; transform: scaleX(1); }
  50% { opacity:0.6; transform: scaleX(1.2); }
  100% { opacity:0.3; transform: scaleX(0.9); }
}

.scn-xenophon-calms-cleander {
  background: linear-gradient(180deg, #a0c4d8 0%, #c8b878 50%, #9a7a4a 100%), radial-gradient(ellipse at 50% 0%, #d4d8b8 0%, transparent 70%);
}
.scn-xenophon-calms-cleander .bg-horizon {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #88a8c0 0%, #b0a070 100%); animation: xcc-horizon 15s ease-in-out infinite alternate;
}
.scn-xenophon-calms-cleander .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #9a7a50 0%, #5a3a20 100%); border-radius:30% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-xenophon-calms-cleander .figure-xenophon {
  position:absolute; bottom:25%; left:40%; width:26px; height:60px; background: linear-gradient(180deg, #2a1a10 0%, #0a0804 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: xcc-xen 7s ease-in-out infinite;
}
.scn-xenophon-calms-cleander .figure-cleander {
  position:absolute; bottom:25%; left:52%; width:28px; height:62px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:42% 42% 32% 32% / 52% 52% 32% 32%; transform-origin: bottom center; animation: xcc-clean 8s ease-in-out infinite alternate;
}
.scn-xenophon-calms-cleander .soldier-left {
  position:absolute; bottom:25%; left:25%; width:20px; height:48px; background: linear-gradient(180deg, #2a1a0a 0%, #100804 100%); border-radius:35% 35% 25% 25% / 45% 45% 25% 25%; transform: scale(0.9); animation: xcc-sold 12s ease-in-out infinite;
}
.scn-xenophon-calms-cleander .soldier-right {
  position:absolute; bottom:25%; left:65%; width:20px; height:48px; background: linear-gradient(180deg, #2a1a0a 0%, #100804 100%); border-radius:35% 35% 25% 25% / 45% 45% 25% 25%; transform: scale(0.9); animation: xcc-sold 12s ease-in-out 2s infinite;
}
.scn-xenophon-calms-cleander .spear {
  position:absolute; bottom:35%; left:46%; width:4px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:2px; transform-origin: bottom center; animation: xcc-spear 6s ease-in-out infinite;
}
@keyframes xcc-horizon {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes xcc-xen {
  0% { transform: translateX(0) rotate(0deg); }
  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 xcc-clean {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(3px) rotate(2deg); }
}
@keyframes xcc-sold {
  0% { transform: scale(0.9) translateY(0); }
  50% { transform: scale(0.92) translateY(-2px); }
  100% { transform: scale(0.88) translateY(1px); }
}
@keyframes xcc-spear {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}

.scn-army-begs-cleander-stay {
  background: linear-gradient(180deg, #7a9ab8 0%, #b8a070 60%, #8a6a40 100%), radial-gradient(ellipse at 30% 70%, #c8b080 0%, transparent 60%);
}
.scn-army-begs-cleander-stay .bg-sea {
  position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #6a8ea8 0%, #a08858 100%); animation: abc-sea 20s ease-in-out infinite alternate;
}
.scn-army-begs-cleander-stay .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #9a7a50 0%, #5a3a20 100%); border-radius:40% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-army-begs-cleander-stay .figure-cleander {
  position:absolute; bottom:28%; right:20%; width:28px; height:62px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:42% 42% 32% 32% / 52% 52% 32% 32%; transform-origin: bottom center; animation: abc-clean 10s ease-in-out infinite alternate;
}
.scn-army-begs-cleander-stay .soldier-a {
  position:absolute; bottom:28%; left:20%; width:24px; height:56px; background: linear-gradient(180deg, #2a1a0a 0%, #100804 100%); border-radius:38% 38% 28% 28% / 48% 48% 28% 28%; animation: abc-sold 8s ease-in-out infinite;
}
.scn-army-begs-cleander-stay .soldier-b {
  position:absolute; bottom:28%; left:32%; width:24px; height:56px; background: linear-gradient(180deg, #2a1a0a 0%, #100804 100%); border-radius:38% 38% 28% 28% / 48% 48% 28% 28%; animation: abc-sold 8s ease-in-out 2s infinite;
}
.scn-army-begs-cleander-stay .soldier-c {
  position:absolute; bottom:28%; left:44%; width:24px; height:56px; background: linear-gradient(180deg, #2a1a0a 0%, #100804 100%); border-radius:38% 38% 28% 28% / 48% 48% 28% 28%; animation: abc-sold 8s ease-in-out 4s infinite;
}
.scn-army-begs-cleander-stay .arms-raised {
  position:absolute; bottom:38%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, transparent 100%); border-radius:40% 40% 20% 20%; clip-path: polygon(10% 50%, 30% 0%, 50% 50%, 70% 0%, 90% 50%, 50% 100%); animation: abc-arms 6s ease-in-out infinite alternate;
}
@keyframes abc-sea {
  0% { opacity:0.75; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes abc-clean {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(4px) rotate(3deg); }
}
@keyframes abc-sold {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes abc-arms {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-10px) scaleY(1.3); }
  100% { transform: translateY(0) scaleY(0.9); }
}

.scn-xenophon-addresses-assembly {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a14 50%, #1a0e0a 100%), radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-xenophon-addresses-assembly .bg-wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-xenophon-addresses-assembly .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.8);
}
.scn-xenophon-addresses-assembly .platform {
  position:absolute; bottom:30%; left:45%; width:80px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,.7); animation: xaa-platform 15s ease-in-out infinite alternate;
}
.scn-xenophon-addresses-assembly .figure-xenophon {
  position:absolute; bottom:38%; left:50%; width:28px; height:64px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%); border-radius:42% 42% 32% 32% / 52% 52% 32% 32%; transform: translateX(-50%); transform-origin: bottom center; animation: xaa-xen 8s ease-in-out infinite;
}
.scn-xenophon-addresses-assembly .lantern {
  position:absolute; bottom:40%; left:38%; width:12px; height:18px; background: radial-gradient(circle at 50% 20%, #d4a050 0%, #8a6020 60%, #3a2010 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 6px #b08030, 0 0 40px 12px rgba(176,128,48,.4); animation: xaa-lantern 5s ease-in-out infinite alternate;
}
.scn-xenophon-addresses-assembly .soldier-left {
  position:absolute; bottom:30%; left:20%; width:22px; height:54px; background: linear-gradient(180deg, #1a1008 0%, #080402 100%); border-radius:35% 35% 25% 25% / 45% 45% 25% 25%; opacity:0.6; animation: xaa-sold 12s ease-in-out infinite;
}
.scn-xenophon-addresses-assembly .soldier-right {
  position:absolute; bottom:30%; right:20%; width:22px; height:54px; background: linear-gradient(180deg, #1a1008 0%, #080402 100%); border-radius:35% 35% 25% 25% / 45% 45% 25% 25%; opacity:0.6; animation: xaa-sold 12s ease-in-out 4s infinite;
}
@keyframes xaa-platform {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes xaa-xen {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-48%) rotate(1deg); }
  50% { transform: translateX(-52%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes xaa-lantern {
  0% { box-shadow: 0 0 12px 4px #b08030, 0 0 30px 8px rgba(176,128,48,.3); opacity:0.9; }
  50% { box-shadow: 0 0 24px 10px #d4a050, 0 0 50px 16px rgba(212,160,80,.5); opacity:1; }
  100% { box-shadow: 0 0 14px 5px #b08030, 0 0 35px 10px rgba(176,128,48,.35); opacity:0.85; }
}
@keyframes xaa-sold {
  0% { transform: scale(0.9) translateY(0); }
  50% { transform: scale(0.95) translateY(-3px); }
  100% { transform: scale(0.85) translateY(2px); }
}

.scn-heracliot-gifts { background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 60%, #DAA520 100%), radial-gradient(ellipse at 70% 30%, #FFF8DC 0%, transparent 60%); }
.scn-heracliot-gifts .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 100%); animation: hg-sky 20s ease-in-out infinite alternate; }
.scn-heracliot-gifts .hills { position: absolute; bottom: 35%; left:0; right:0; height: 20%; background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%); border-radius: 60% 40% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.3); animation: hg-hills 15s ease-in-out infinite alternate; }
.scn-heracliot-gifts .river { position: absolute; bottom: 30%; left: 20%; width: 60%; height: 6%; background: linear-gradient(90deg, #4682B4 0%, #87CEEB 50%, #4682B4 100%); border-radius: 50%; filter: blur(3px); animation: hg-river 10s ease-in-out infinite; }
.scn-heracliot-gifts .ground { position: absolute; bottom: 0; left:0; right:0; height: 35%; background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 100%); }
.scn-heracliot-gifts .gift-barley { position: absolute; bottom: 18%; left: 15%; width: 40px; height: 30px; background: #D2B48C; border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); transform: skewX(-10deg); animation: hg-gift 6s ease-in-out infinite; }
.scn-heracliot-gifts .gift-wine { position: absolute; bottom: 20%; right: 20%; width: 25px; height: 35px; background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 3px 6px rgba(0,0,0,0.5); animation: hg-wine 7s ease-in-out infinite; }
.scn-heracliot-gifts .gift-sheep { position: absolute; bottom: 15%; left: 40%; width: 20px; height: 15px; background: #F5F5DC; border-radius: 50% 50% 40% 40%; box-shadow: inset 0 -2px 3px rgba(0,0,0,0.2); animation: hg-sheep 12s linear infinite; }
.scn-heracliot-gifts .sunbeam { position: absolute; top: 0; left: 30%; width: 8px; height: 100%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 70%); filter: blur(4px); animation: hg-sunbeam 8s ease-in-out infinite alternate; }
@keyframes hg-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hg-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hg-river { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(5px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes hg-gift { 0%,100% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-8deg) translateY(-3px); } }
@keyframes hg-wine { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-3deg); } }
@keyframes hg-sheep { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }
@keyframes hg-sunbeam { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }

.scn-soldiers-demand-money { background: linear-gradient(180deg, #3E2723 0%, #2C1810 60%, #1A0F0A 100%), radial-gradient(ellipse at 50% 100%, #5D4037 0%, transparent 70%); }
.scn-soldiers-demand-money .wall-bg { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #4E342E 0%, #3E2723 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.7); animation: sdm-wall 10s ease-in-out infinite alternate; }
.scn-soldiers-demand-money .floor { position: absolute; bottom: 0; left:0; right:0; height: 25%; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); border-top: 2px solid #4E342E; }
.scn-soldiers-demand-money .table { position: absolute; bottom: 15%; left: 25%; width: 50%; height: 6%; background: linear-gradient(180deg, #6D4C41 0%, #4E342E 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); transform: perspective(400px) rotateX(5deg); animation: sdm-table 8s ease-in-out infinite; }
.scn-soldiers-demand-money .soldier-1 { position: absolute; bottom: 12%; left: 10%; width: 22px; height: 45px; background: linear-gradient(180deg, #2C1810 0%, #1A0F0A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sdm-soldier 6s ease-in-out infinite; }
.scn-soldiers-demand-money .soldier-2 { position: absolute; bottom: 12%; left: 35%; width: 22px; height: 45px; background: linear-gradient(180deg, #2C1810 0%, #1A0F0A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sdm-soldier 6s ease-in-out infinite 0.5s; }
.scn-soldiers-demand-money .soldier-3 { position: absolute; bottom: 12%; right: 15%; width: 22px; height: 45px; background: linear-gradient(180deg, #2C1810 0%, #1A0F0A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sdm-soldier 6s ease-in-out infinite 1s; }
.scn-soldiers-demand-money .speaker { position: absolute; bottom: 20%; left: 50%; width: 28px; height: 52px; transform: translateX(-50%); background: linear-gradient(180deg, #3E2723 0%, #2C1810 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; clip-path: polygon(0 0, 100% 0, 90% 70%, 100% 100%, 0 100%, 10% 70%); animation: sdm-speaker 4s ease-in-out infinite alternate; }
.scn-soldiers-demand-money .torch { position: absolute; top: 10%; left: 70%; width: 6px; height: 20px; background: linear-gradient(180deg, #8D6E63 0%, #5D4037 100%); border-radius: 2px; animation: sdm-torch 2s ease-in-out infinite alternate; }
@keyframes sdm-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sdm-table { 0% { transform: perspective(400px) rotateX(5deg) translateY(0); } 50% { transform: perspective(400px) rotateX(6deg) translateY(-1px); } 100% { transform: perspective(400px) rotateX(5deg) translateY(0); } }
@keyframes sdm-soldier { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sdm-speaker { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes sdm-torch { 0% { filter: brightness(1); } 100% { filter: brightness(1.3); } }

.scn-embassy-to-heraclea { background: linear-gradient(180deg, #4E342E 0%, #3E2723 60%, #2C1810 100%), radial-gradient(ellipse at 50% 30%, #6D4C41 0%, transparent 70%); }
.scn-embassy-to-heraclea .room-bg { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.6); animation: eth-room 12s ease-in-out infinite; }
.scn-embassy-to-heraclea .floor { position: absolute; bottom: 0; left:0; right:0; height: 20%; background: linear-gradient(180deg, #6D4C41 0%, #4E342E 100%); }
.scn-embassy-to-heraclea .doorway { position: absolute; bottom: 15%; left: 50%; width: 50px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #2C1810 0%, #1A0F0A 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: eth-door 8s ease-in-out infinite alternate; }
.scn-embassy-to-heraclea .ambassador-1 { position: absolute; bottom: 12%; left: 20%; width: 24px; height: 48px; background: linear-gradient(180deg, #3E2723 0%, #2C1810 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: eth-amb 6s ease-in-out infinite; }
.scn-embassy-to-heraclea .ambassador-2 { position: absolute; bottom: 12%; left: 42%; width: 24px; height: 48px; background: linear-gradient(180deg, #3E2723 0%, #2C1810 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: eth-amb 6s ease-in-out infinite 0.7s; }
.scn-embassy-to-heraclea .ambassador-3 { position: absolute; bottom: 12%; right: 22%; width: 24px; height: 48px; background: linear-gradient(180deg, #3E2723 0%, #2C1810 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: eth-amb 6s ease-in-out infinite 1.4s; }
.scn-embassy-to-heraclea .table-scroll { position: absolute; bottom: 10%; left: 35%; width: 30px; height: 10px; background: #D7CCC8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); transform: perspective(200px) rotateX(20deg); animation: eth-scroll 10s ease-in-out infinite; }
.scn-embassy-to-heraclea .lamp { position: absolute; top: 15%; left: 15%; width: 8px; height: 12px; background: radial-gradient(circle, #FFB74D 0%, #FF8A65 100%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(255,183,77,0.4); animation: eth-lamp 3s ease-in-out infinite alternate; }
@keyframes eth-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes eth-door { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes eth-amb { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes eth-scroll { 0% { transform: perspective(200px) rotateX(20deg) translateX(0); } 50% { transform: perspective(200px) rotateX(25deg) translateX(2px); } 100% { transform: perspective(200px) rotateX(20deg) translateX(0); } }
@keyframes eth-lamp { 0% { filter: brightness(1); } 100% { filter: brightness(1.4); } }

.scn-lycon-callimachus-agasias { background: linear-gradient(180deg, #3E2723 0%, #2C1810 70%, #1A0F0A 100%), radial-gradient(ellipse at 40% 50%, #4E342E 0%, transparent 60%); }
.scn-lycon-callimachus-agasias .chamber-wall { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #4E342E 0%, #3E2723 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,0.7); animation: lca-wall 8s ease-in-out infinite; }
.scn-lycon-callimachus-agasias .chamber-floor { position: absolute; bottom: 0; left:0; right:0; height: 15%; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); }
.scn-lycon-callimachus-agasias .figure-lycon { position: absolute; bottom: 8%; left: 15%; width: 28px; height: 55px; background: linear-gradient(180deg, #2C1810 0%, #1A0F0A 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; clip-path: polygon(0 0, 100% 0, 90% 60%, 100% 100%, 0 100%, 10% 60%); transform-origin: bottom center; animation: lca-lycon 4s ease-in-out infinite alternate; }
.scn-lycon-callimachus-agasias .figure-callimachus { position: absolute; bottom: 8%; left: 40%; width: 26px; height: 50px; background: linear-gradient(180deg, #3E2723 0%, #2C1810 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lca-call 5s ease-in-out infinite; }
.scn-lycon-callimachus-agasias .figure-agasias { position: absolute; bottom: 8%; right: 18%; width: 26px; height: 52px; background: linear-gradient(180deg, #3E2723 0%, #2C1810 100%); border-radius: 42% 42% 32% 32% / 52% 52% 32% 32%; transform-origin: bottom center; animation: lca-aga 5s ease-in-out infinite 0.5s; }
.scn-lycon-callimachus-agasias .distant-door { position: absolute; bottom: 10%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #1A0F0A 0%, #0D0705 100%); border-radius: 3px 3px 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,0.9); animation: lca-door 9s ease-in-out infinite alternate; }
.scn-lycon-callimachus-agasias .brazier { position: absolute; top: 20%; left: 25%; width: 14px; height: 14px; background: radial-gradient(circle, #FF8A65 0%, #E64A19 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,138,101,0.5); animation: lca-brazier 2s ease-in-out infinite alternate; }
@keyframes lca-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lca-lycon { 0% { transform: translateX(0) scaleY(1) rotate(0); } 50% { transform: translateX(3px) scaleY(1.02) rotate(2deg); } 100% { transform: translateX(0) scaleY(1) rotate(0); } }
@keyframes lca-call { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lca-aga { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lca-door { 0% { transform: translateX(-50%) scaleX(1); } 100% { transform: translateX(-50%) scaleX(1.03); } }
@keyframes lca-brazier { 0% { filter: brightness(1); } 100% { filter: brightness(1.4); } }

.scn-night-manoeuvre {
  background: linear-gradient(180deg, #0c0c1a 0%, #1a1a3a 30%, #2a2a4e 60%, #1e1e36 100%), 
              radial-gradient(ellipse at 50% 80%, #3a3a5e 0%, transparent 70%);
}
.scn-night-manoeuvre .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3a 100%); animation: nm-sky 12s ease-in-out infinite alternate; }
.scn-night-manoeuvre .stars { position:absolute; inset:0 0 40% 0; background: radial-gradient(circle at 20% 30%, #fff 1px, transparent 1px), radial-gradient(circle at 60% 20%, #fff 1px, transparent 1px), radial-gradient(circle at 80% 50%, #fff 0.5px, transparent 0.5px); background-size: 100% 100%; animation: nm-stars 8s ease-in-out infinite alternate; }
.scn-night-manoeuvre .tent { position:absolute; bottom:20%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: nm-tent 6s ease-in-out infinite alternate; }
.scn-night-manoeuvre .fire { position:absolute; bottom:18%; left:45%; width:30px; height:40px; background: radial-gradient(circle at 50% 80%, #ff8c4a 0%, #cc6630 50%, #8a4020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px 8px #cc6630, 0 0 60px 16px rgba(204,102,48,0.3); animation: nm-fire 2s ease-in-out infinite; }
.scn-night-manoeuvre .ember-a { position:absolute; bottom:38%; left:42%; width:4px; height:4px; background:#ffa55a; border-radius:50%; box-shadow: 0 0 6px 2px #ffa55a; animation: nm-ember 3s ease-out infinite; }
.scn-night-manoeuvre .ember-b { position:absolute; bottom:36%; left:48%; width:3px; height:3px; background:#ffc080; border-radius:50%; box-shadow: 0 0 4px 1px #ffc080; animation: nm-ember 2.5s ease-out infinite 0.5s; }
.scn-night-manoeuvre .guard { position:absolute; bottom:15%; left:55%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nm-guard 5s ease-in-out infinite; }
.scn-night-manoeuvre .horizon { position:absolute; bottom:40%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent, #ffe0a0 30%, #ffcc80 50%, #ffe0a0 70%, transparent); filter: blur(1px); animation: nm-horizon 15s ease-in-out infinite; }

@keyframes nm-sky { 0% { opacity:0.8; } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(0,0,20,0.3); } 100% { opacity:0.9; } }
@keyframes nm-stars { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes nm-tent { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nm-fire { 0%,100% { transform: scale(1) rotate(0deg); opacity:0.9; } 30% { transform: scale(1.05) rotate(2deg); opacity:1; } 60% { transform: scale(0.95) rotate(-2deg); opacity:0.85; } }
@keyframes nm-ember { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(-20px) scale(1.2); opacity:0.7; } 100% { transform: translateY(-40px) scale(0.5); opacity:0; } }
@keyframes nm-guard { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes nm-horizon { 0% { opacity:0.2; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.5); } 100% { opacity:0.3; transform: scaleY(1); } }

.scn-arcadians-escaped {
  background: linear-gradient(180deg, #e8d8b8 0%, #c4b49a 30%, #a48e74 60%, #7a6a54 100%), 
              radial-gradient(ellipse at 50% 90%, #d4c0a0 0%, transparent 70%);
}
.scn-arcadians-escaped .dawn-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0dcc0 0%, #c4b49a 100%); animation: ae-sky 12s ease-in-out infinite alternate; }
.scn-arcadians-escaped .dawn-sun { position:absolute; top:10%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #fff8e0 0%, #ffd080 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 20px #ffd080; animation: ae-sun 10s ease-in-out infinite; }
.scn-arcadians-escaped .distant-hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.2); animation: ae-hills 15s ease-in-out infinite alternate; }
.scn-arcadians-escaped .road { position:absolute; bottom:15%; left:20%; right:20%; height:10%; background: linear-gradient(90deg, #8a7a5a 0%, #b8a88a 50%, #8a7a5a 100%); border-radius: 20% / 40%; transform: rotate(-2deg); animation: ae-road 8s ease-in-out infinite; }
.scn-arcadians-escaped .tree { position:absolute; bottom:25%; left:15%; width:30px; height:60px; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ae-tree 6s ease-in-out infinite; }
.scn-arcadians-escaped .figure-a { position:absolute; bottom:14%; left:40%; width:12px; height:30px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ae-walk 4s ease-in-out infinite; }
.scn-arcadians-escaped .figure-b { position:absolute; bottom:14%; left:48%; width:12px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ae-walk 4s ease-in-out infinite 1s; }
.scn-arcadians-escaped .cloud-drift { position:absolute; top:15%; left:0; width:100px; height:20px; background: radial-gradient(ellipse, rgba(255,255,255,0.3) 0%, transparent 100%); filter: blur(4px); animation: ae-cloud 35s linear infinite; }

@keyframes ae-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ae-sun { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-8px) scale(1.1); opacity:1; box-shadow: 0 0 60px 25px #ffd080; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }
@keyframes ae-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ae-road { 0%,100% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(3px); } }
@keyframes ae-tree { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } }
@keyframes ae-walk { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(10px) rotate(3deg); } 75% { transform: translateX(5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes ae-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(150vw); } }

.scn-reunion-at-calpe {
  background: linear-gradient(180deg, #c0d8e8 0%, #a0c0d8 30%, #7aa8c0 60%, #5a8898 100%), 
              radial-gradient(ellipse at 50% 100%, #6a9aa8 0%, transparent 70%);
}
.scn-reunion-at-calpe .sunny-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e0f0ff 0%, #a0c0d8 100%); animation: rc-sky 10s ease-in-out infinite alternate; }
.scn-reunion-at-calpe .sea { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a9aa8 0%, #4a7a8a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; animation: rc-sea 6s ease-in-out infinite; }
.scn-reunion-at-calpe .cliff { position:absolute; bottom:30%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 20% 40% 10% 10% / 60% 80% 10% 10%; box-shadow: inset 0 5px 15px rgba(0,0,0,0.3); animation: rc-cliff 8s ease-in-out infinite alternate; }
.scn-reunion-at-calpe .haven { position:absolute; bottom:30%; left:40%; width:40%; height:20%; background: linear-gradient(180deg, #4a8a9a 0%, #2a6a7a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 3px 10px rgba(0,0,0,0.2); animation: rc-haven 5s ease-in-out infinite; }
.scn-reunion-at-calpe .tent-camp { position:absolute; bottom:35%; left:50%; width:60px; height:40px; background: linear-gradient(180deg, #c0a870 0%, #a08850 100%); border-radius: 30% 30% 10% 10%; transform: translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: rc-tent 4s ease-in-out infinite; }
.scn-reunion-at-calpe .march-figures { position:absolute; bottom:28%; left:20%; width:100px; height:20px; background: repeating-linear-gradient(90deg, #3a4a3a 0px 8px, transparent 8px 16px); background-size: 100% 100%; animation: rc-march 8s ease-in-out infinite; }
.scn-reunion-at-calpe .sun-glow { position:absolute; top:15%; left:45%; width:70px; height:70px; background: radial-gradient(circle, rgba(255,240,180,0.8) 0%, rgba(255,220,140,0.3) 50%, transparent 100%); filter: blur(10px); animation: rc-sunglow 12s ease-in-out infinite alternate; }
.scn-reunion-at-calpe .hillside { position:absolute; bottom:35%; right:10%; width:20%; height:30%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%); border-radius: 60% 40% 10% 10% / 70% 50% 10% 10%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.2); animation: rc-hillside 6s ease-in-out infinite; }

@keyframes rc-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rc-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rc-cliff { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes rc-haven { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rc-tent { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.03); } }
@keyframes rc-march { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(0); } }
@keyframes rc-sunglow { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes rc-hillside { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.scn-arcadians-explain-fear {
  background: linear-gradient(180deg, #d4c8a0 0%, #b8a88a 30%, #9a8870 60%, #7a6a54 100%), 
              radial-gradient(ellipse at 50% 20%, #e0d4b8 0%, transparent 70%);
}
.scn-arcadians-explain-fear .open-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8e0c8 0%, #c8b8a0 100%); animation: ef-sky 8s ease-in-out infinite alternate; }
.scn-arcadians-explain-fear .sun-field { position:absolute; top:10%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #fff8e0 0%, #ffe0a0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px #ffe0a0; animation: ef-sun 12s ease-in-out infinite; }
.scn-arcadians-explain-fear .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: ef-ground 6s ease-in-out infinite; }
.scn-arcadians-explain-fear .figure-speaker { position:absolute; bottom:25%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ef-speaker 3s ease-in-out infinite; }
.scn-arcadians-explain-fear .figure-listener { position:absolute; bottom:25%; left:45%; width:16px; height:38px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ef-listener 5s ease-in-out infinite; }
.scn-arcadians-explain-fear .figure-side { position:absolute; bottom:25%; left:52%; width:14px; height:36px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ef-side 4s ease-in-out infinite; }
.scn-arcadians-explain-fear .field-tree { position:absolute; bottom:30%; right:15%; width:30px; height:60px; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ef-tree 7s ease-in-out infinite alternate; }
.scn-arcadians-explain-fear .breeze-grass { position:absolute; bottom:40%; left:20%; right:20%; height:5px; background: repeating-linear-gradient(90deg, #6a7a4a 0px 4px, transparent 4px 8px); background-size: 50px 100%; animation: ef-grass 4s ease-in-out infinite; }

@keyframes ef-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ef-sun { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; box-shadow: 0 0 100px 40px #ffe0a0; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes ef-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ef-speaker { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ef-listener { 0%,100% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(1px) rotate(-2deg); } }
@keyframes ef-side { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ef-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes ef-grass { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }

/* meeting-to-prevent-split */
.scn-meeting-to-prevent-split {
  background: linear-gradient(180deg, #2a1b1a 0%, #3d2a28 40%, #1f1412 100%),
              radial-gradient(ellipse at 50% 60%, #3d2a28 0%, transparent 70%);
}
.scn-meeting-to-prevent-split .tent-bg {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(90deg, rgba(60,45,40,.4) 0px, rgba(60,45,40,.2) 20px, transparent 20px, transparent 40px);
  animation: mtps-tent 30s linear infinite;
}
.scn-meeting-to-prevent-split .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1d1a 0%, #1f1412 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-meeting-to-prevent-split .figure-1 {
  position: absolute; bottom: 28%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtps-idle 6s ease-in-out infinite;
}
.scn-meeting-to-prevent-split .figure-2 {
  position: absolute; bottom: 28%; right: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtps-idle 6s ease-in-out infinite reverse;
}
.scn-meeting-to-prevent-split .figure-3 {
  position: absolute; bottom: 26%; left: 40%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtps-idle 8s ease-in-out infinite;
}
.scn-meeting-to-prevent-split .figure-4 {
  position: absolute; bottom: 30%; right: 38%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtps-idle 8s ease-in-out infinite reverse;
}
.scn-meeting-to-prevent-split .torch {
  position: absolute; bottom: 44%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%);
  border-radius: 2px 2px 4px 4px;
  transform: translateX(-50%);
}
.scn-meeting-to-prevent-split .torch-glow {
  position: absolute; bottom: 46%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,160,60,.6) 0%, rgba(255,160,60,.2) 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: mtps-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes mtps-tent {
  0%, 100% { opacity: .7; }
  50% { opacity: .9; }
}
@keyframes mtps-idle {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mtps-flicker {
  0% { opacity: .6; transform: translate(-50%, 50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, 50%) scale(1.1); }
  100% { opacity: .7; transform: translate(-50%, 50%) scale(.95); }
}

/* xenophon-announces-foot-march */
.scn-xenophon-announces-foot-march {
  background: linear-gradient(180deg, #7fb8d4 0%, #d4b87f 60%, #9a7a4a 100%),
              radial-gradient(circle at 60% 20%, #fce4a8 0%, transparent 50%);
}
.scn-xenophon-announces-foot-march .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6ea8c0 0%, #b8d4e6 80%);
  animation: xen-sky 20s linear infinite alternate;
}
.scn-xenophon-announces-foot-march .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a3a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.3);
  animation: xen-hills 15s ease-in-out infinite;
}
.scn-xenophon-announces-foot-march .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8a07a 0%, #9a8060 40%, #7a6a4a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-xenophon-announces-foot-march .sun {
  position: absolute; top: 15%; left: 65%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,224,128,.5);
  animation: xen-sun 5s ease-in-out infinite alternate;
}
.scn-xenophon-announces-foot-march .xenophon-figure {
  position: absolute; bottom: 36%; left: 30%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a2018 0%, #101410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xen-speak 4s ease-in-out infinite;
}
.scn-xenophon-announces-foot-march .soldiers {
  position: absolute; bottom: 32%; right: 15%; width: 80px; height: 100px;
  background: 
    radial-gradient(ellipse at 10% 80%, #1a1a1a 0%, transparent 30%),
    radial-gradient(ellipse at 30% 80%, #1a1a1a 0%, transparent 30%),
    radial-gradient(ellipse at 50% 80%, #1a1a1a 0%, transparent 30%),
    radial-gradient(ellipse at 70% 80%, #1a1a1a 0%, transparent 30%),
    radial-gradient(ellipse at 90% 80%, #1a1a1a 0%, transparent 30%);
  filter: blur(2px);
  animation: xen-soldiers 8s ease-in-out infinite;
}
.scn-xenophon-announces-foot-march .cloud {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px;
  background: linear-gradient(90deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: xen-drift 40s linear infinite;
}
@keyframes xen-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes xen-hills {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes xen-sun {
  0% { opacity: .9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .85; transform: scale(.95); }
}
@keyframes xen-speak {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xen-soldiers {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.03); }
  100% { opacity: .6; transform: scale(.98); }
}
@keyframes xen-drift {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}

/* victims-unfavourable */
.scn-victims-unfavourable {
  background: linear-gradient(180deg, #1a1415 0%, #2a1c20 40%, #141012 100%),
              radial-gradient(ellipse at 50% 70%, #2a1c20 0%, transparent 70%);
}
.scn-victims-unfavourable .bg-dark {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(20,15,15,.3) 0px, transparent 4px, transparent 8px);
  animation: vict-bg 10s linear infinite;
}
.scn-victims-unfavourable .altar {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 8% 8% 4% 4%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-victims-unfavourable .fire {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ff8440 0%, #cc5020 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: vict-fire 1s ease-in-out infinite alternate;
}
.scn-victims-unfavourable .general {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1c18 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vict-bow 5s ease-in-out infinite;
}
.scn-victims-unfavourable .victim {
  position: absolute; bottom: 38%; left: 48%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #8a6a50 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: translateX(-50%);
  animation: vict-twitch 2s ease-in-out infinite;
}
.scn-victims-unfavourable .smoke-1 {
  position: absolute; bottom: 50%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(ellipse, rgba(180,160,140,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: vict-smoke 12s ease-in-out infinite alternate;
}
.scn-victims-unfavourable .smoke-2 {
  position: absolute; bottom: 52%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(ellipse, rgba(180,160,140,.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: vict-smoke 15s ease-in-out infinite alternate-reverse;
}
@keyframes vict-bg {
  0%, 100% { opacity: .6; }
  50% { opacity: .9; }
}
@keyframes vict-fire {
  0% { transform: translateX(-50%) scale(1) rotate(-3deg); }
  50% { transform: translateX(-50%) scale(1.15) rotate(3deg); }
  100% { transform: translateX(-50%) scale(.9) rotate(-2deg); }
}
@keyframes vict-bow {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(10deg) translateY(-4px); }
  75% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes vict-twitch {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.1) translateY(-1px); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes vict-smoke {
  0% { transform: translateY(0) scale(1); opacity: .3; }
  50% { transform: translateY(-15px) scale(1.5); opacity: .5; }
  100% { transform: translateY(-30px) scale(2); opacity: 0; }
}

/* repeated-sacrifices-unfavourable */
.scn-repeated-sacrifices-unfavourable {
  background: linear-gradient(180deg, #1a1012 0%, #2a181c 40%, #10080a 100%),
              radial-gradient(circle at 50% 60%, #2a181c 0%, transparent 70%);
}
.scn-repeated-sacrifices-unfavourable .bg-interior {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(40,25,20,.3) 0px, transparent 6px, transparent 12px);
  animation: rep-bg 8s linear infinite;
}
.scn-repeated-sacrifices-unfavourable .altar-1 {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 6% 6% 3% 3%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-repeated-sacrifices-unfavourable .altar-2 {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 6% 6% 3% 3%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-repeated-sacrifices-unfavourable .altar-3 {
  position: absolute; bottom: 30%; left: 80%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 6% 6% 3% 3%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-repeated-sacrifices-unfavourable .fire-1 {
  position: absolute; bottom: 40%; left: 20%; width: 16px; height: 24px;
  background: radial-gradient(circle, #ff7040 0%, #cc4010 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: rep-fire 1.2s ease-in-out infinite alternate;
}
.scn-repeated-sacrifices-unfavourable .fire-2 {
  position: absolute; bottom: 40%; left: 50%; width: 16px; height: 24px;
  background: radial-gradient(circle, #ff7040 0%, #cc4010 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: rep-fire 1.5s ease-in-out infinite alternate-reverse;
}
.scn-repeated-sacrifices-unfavourable .fire-3 {
  position: absolute; bottom: 40%; left: 80%; width: 16px; height: 24px;
  background: radial-gradient(circle, #ff7040 0%, #cc4010 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: rep-fire 1.8s ease-in-out infinite alternate;
}
.scn-repeated-sacrifices-unfavourable .soldiers-bg {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 60px;
  background: 
    radial-gradient(ellipse at 10% 100%, #1a1412 0%, transparent 20%),
    radial-gradient(ellipse at 30% 100%, #1a1412 0%, transparent 20%),
    radial-gradient(ellipse at 50% 100%, #1a1412 0%, transparent 20%),
    radial-gradient(ellipse at 70% 100%, #1a1412 0%, transparent 20%),
    radial-gradient(ellipse at 90% 100%, #1a1412 0%, transparent 20%);
  filter: blur(3px);
  animation: rep-soldiers 5s ease-in-out infinite;
}
@keyframes rep-bg {
  0%, 100% { opacity: .5; }
  50% { opacity: .8; }
}
@keyframes rep-fire {
  0% { transform: translateX(-50%) scale(1) rotate(-2deg); }
  50% { transform: translateX(-50%) scale(1.2) rotate(3deg); }
  100% { transform: translateX(-50%) scale(.85) rotate(-3deg); }
}
@keyframes rep-soldiers {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.02); }
  100% { opacity: .5; transform: scale(.98); }
}

/* gifts-arrive */
.scn-gifts-arrive {
  background:
    linear-gradient(180deg, #b8d4e6 0%, #f7e8c8 50%, #e6c88a 100%),
    radial-gradient(ellipse at 20% 30%, #fff4e0 0%, transparent 70%);
}
.scn-gifts-arrive .sky {
  position:absolute; inset:0 0 45% 0;
  background:linear-gradient(180deg, #b8d4e6 0%, #f2deb0 100%);
  animation:ga-sky 20s ease-in-out infinite alternate;
}
.scn-gifts-arrive .sun {
  position:absolute; top:8%; left:22%; width:60px; height:60px;
  background:radial-gradient(circle, #fff8e0 0%, #fde08a 50%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(253,224,138,0.6);
  animation:ga-sun 10s ease-in-out infinite alternate;
}
.scn-gifts-arrive .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background:linear-gradient(180deg, #9e9a5a 0%, #7a7a3e 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  animation:ga-ground 15s ease-in-out infinite alternate;
}
.scn-gifts-arrive .figure-left {
  position:absolute; bottom:18%; left:30%; width:22px; height:48px;
  background:linear-gradient(180deg, #3a3a2a 0%, #1a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:ga-figure 4s ease-in-out infinite;
}
.scn-gifts-arrive .figure-right {
  position:absolute; bottom:20%; left:55%; width:20px; height:44px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:ga-figure 4.5s ease-in-out infinite 0.3s;
}
.scn-gifts-arrive .horse {
  position:absolute; bottom:22%; left:45%; width:50px; height:30px;
  background:linear-gradient(180deg, #8a7a5a 0%, #5a4a32 100%);
  border-radius: 40% 60% 30% 30% / 70% 80% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation:ga-horse 6s ease-in-out infinite;
}
.scn-gifts-arrive .gift-1 {
  position:absolute; bottom:25%; left:62%; width:30px; height:24px;
  background:linear-gradient(135deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation:ga-gift 8s ease-in-out infinite;
}
.scn-gifts-arrive .gift-2 {
  position:absolute; bottom:28%; left:68%; width:22px; height:18px;
  background:linear-gradient(135deg, #e6c88a 0%, #c8a86a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation:ga-gift 8.5s ease-in-out infinite 0.5s;
}
@keyframes ga-sky {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes ga-sun {
  0% { transform: translate(0,0) scale(1); opacity:0.9; }
  50% { transform: translate(8px,-4px) scale(1.05); opacity:1; }
  100% { transform: translate(-4px,2px) scale(0.95); opacity:0.85; }
}
@keyframes ga-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ga-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-0.5deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ga-horse {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ga-gift {
  0% { transform: translate(0,0) rotate(0deg) scale(1); }
  33% { transform: translate(2px,-3px) rotate(2deg) scale(1.02); }
  66% { transform: translate(-1px,1px) rotate(-1deg) scale(0.98); }
  100% { transform: translate(0,0) rotate(0deg) scale(1); }
}

/* march-through-troad */
.scn-march-through-troad {
  background:
    linear-gradient(180deg, #c2d8e8 0%, #f5e6c0 30%, #d4c694 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 60%);
}
.scn-march-through-troad .sky {
  position:absolute; inset:0 0 55% 0;
  background:linear-gradient(180deg, #b0cce0 0%, #f0e4c0 100%);
  animation:mt-sky 25s ease-in-out infinite alternate;
}
.scn-march-through-troad .sun-haze {
  position:absolute; top:5%; left:40%; width:80px; height:80px;
  background:radial-gradient(circle, #fff8e0 0%, #ffe28a 40%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px rgba(255,226,138,0.4);
  animation:mt-haze 30s ease-in-out infinite alternate;
}
.scn-march-through-troad .mountains {
  position:absolute; bottom:35%; left:0; right:0; height:25%;
  background:linear-gradient(180deg, #6a7a6a 0%, #4a5a3a 100%);
  border-radius: 30% 40% 0 0 / 60% 50% 0 0;
  filter: blur(3px);
  animation:mt-mountains 20s ease-in-out infinite alternate;
}
.scn-march-through-troad .sea {
  position:absolute; bottom:20%; left:0; right:0; height:20%;
  background:linear-gradient(180deg, #7a9aae 0%, #9ab8ce 50%, #7a9aae 100%);
  background-size: 200% 100%;
  animation:mt-sea 15s linear infinite;
}
.scn-march-through-troad .road {
  position:absolute; bottom:15%; left:10%; right:10%; height:8%;
  background:linear-gradient(180deg, #9e9a6a 0%, #7a7650 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation:mt-road 12s ease-in-out infinite alternate;
}
.scn-march-through-troad .soldier-1 {
  position:absolute; bottom:8%; left:25%; width:16px; height:40px;
  background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:mt-march 6s ease-in-out infinite;
}
.scn-march-through-troad .soldier-2 {
  position:absolute; bottom:9%; left:40%; width:16px; height:38px;
  background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:mt-march 6.5s ease-in-out infinite 0.5s;
}
.scn-march-through-troad .soldier-3 {
  position:absolute; bottom:7%; left:55%; width:16px; height:42px;
  background:linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:mt-march 5.5s ease-in-out infinite 1s;
}
@keyframes mt-sky {
  0% { opacity:0.85; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes mt-haze {
  0% { transform: translateX(-20px) scale(1); opacity:0.7; }
  50% { transform: translateX(10px) scale(1.1); opacity:0.9; }
  100% { transform: translateX(-10px) scale(0.95); opacity:0.75; }
}
@keyframes mt-mountains {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes mt-sea {
  0% { background-position: 0% 0%; }
  50% { background-position: 100% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes mt-road {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes mt-march {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(12px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}

/* xeenophon-at-pergamus */
.scn-xeenophon-at-pergamus {
  background:
    linear-gradient(180deg, #c2a87a 0%, #8a7050 40%, #5a4a32 100%),
    radial-gradient(ellipse at 50% 100%, #d4b88a 0%, transparent 60%);
}
.scn-xeenophon-at-pergamus .tent-wall {
  position:absolute; inset:10% 5% 10% 5%;
  background:linear-gradient(135deg, #7a6a4a 0%, #5a4a32 100%);
  border-radius: 10% 10% 8% 8% / 20% 20% 15% 15%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation:xp-wall 15s ease-in-out infinite alternate;
}
.scn-xeenophon-at-pergamus .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background:linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-xeenophon-at-pergamus .table {
  position:absolute; bottom:12%; left:30%; width:40%; height:10%;
  background:linear-gradient(180deg, #8a7050 0%, #6a5a3a 100%);
  border-radius: 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation:xp-table 8s ease-in-out infinite;
}
.scn-xeenophon-at-pergamus .map {
  position:absolute; bottom:14%; left:35%; width:25%; height:6%;
  background:linear-gradient(135deg, #e6d8b8 0%, #c8b89a 100%);
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation:xp-map 12s ease-in-out infinite alternate;
}
.scn-xeenophon-at-pergamus .figure-center {
  position:absolute; bottom:15%; left:45%; width:24px; height:50px;
  background:linear-gradient(180deg, #3a3a2a 0%, #1a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:xp-figure 4s ease-in-out infinite;
}
.scn-xeenophon-at-pergamus .figure-left-helper {
  position:absolute; bottom:16%; left:32%; width:20px; height:44px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:xp-figure 4.5s ease-in-out infinite 0.4s;
}
.scn-xeenophon-at-pergamus .figure-right-helper {
  position:absolute; bottom:17%; left:60%; width:20px; height:42px;
  background:linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:xp-figure 5s ease-in-out infinite 0.8s;
}
.scn-xeenophon-at-pergamus .sunbeam {
  position:absolute; top:0; left:40%; width:20%; height:60%;
  background:linear-gradient(180deg, rgba(255,248,224,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation:xp-beam 18s ease-in-out infinite alternate;
}
@keyframes xp-wall {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.01); opacity:1; }
  100% { transform: scale(0.99); opacity:0.85; }
}
@keyframes xp-table {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes xp-map {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(2px,-1px) rotate(1deg); }
  100% { transform: translate(-2px,1px) rotate(-1deg); }
}
@keyframes xp-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(6px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes xp-beam {
  0% { transform: translateX(-10px) scaleY(1); opacity:0.6; }
  50% { transform: translateX(5px) scaleY(1.1); opacity:0.9; }
  100% { transform: translateX(-5px) scaleY(0.9); opacity:0.5; }
}

/* sacrifice-before-raid */
.scn-sacrifice-before-raid {
  background:
    linear-gradient(180deg, #bea882 0%, #e6d4b8 30%, #c8b098 70%, #8a7050 100%),
    radial-gradient(ellipse at 50% 10%, #fff8e8 0%, transparent 50%);
}
.scn-sacrifice-before-raid .sky {
  position:absolute; inset:0 0 40% 0;
  background:linear-gradient(180deg, #d4c4a8 0%, #f0e0c8 100%);
  animation:sb-sky 20s ease-in-out infinite alternate;
}
.scn-sacrifice-before-raid .altar {
  position:absolute; bottom:20%; left:40%; width:20%; height:15%;
  background:linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation:sb-altar 14s ease-in-out infinite alternate;
}
.scn-sacrifice-before-raid .fire {
  position:absolute; bottom:27%; left:46%; width:12%; height:15%;
  background:radial-gradient(circle, #ffd080 0%, #ff8040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ff8040, 0 0 60px 20px rgba(255,128,64,0.4);
  animation:sb-fire 3s ease-in-out infinite alternate;
}
.scn-sacrifice-before-raid .smoke {
  position:absolute; bottom:40%; left:46%; width:10%; height:20%;
  background:radial-gradient(circle, rgba(200,180,160,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation:sb-smoke 8s ease-in-out infinite alternate;
}
.scn-sacrifice-before-raid .xeenophon {
  position:absolute; bottom:15%; left:35%; width:24px; height:50px;
  background:linear-gradient(180deg, #3a3a2a 0%, #1a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:sb-figure 5s ease-in-out infinite;
}
.scn-sacrifice-before-raid .soothsayer {
  position:absolute; bottom:16%; left:55%; width:22px; height:48px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation:sb-figure 5.5s ease-in-out infinite 0.5s;
}
.scn-sacrifice-before-raid .animal {
  position:absolute; bottom:18%; left:43%; width:30px; height:20px;
  background:linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 40% 50% 30% 30% / 60% 70% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation:sb-animal 6s ease-in-out infinite;
}
.scn-sacrifice-before-raid .shadow-band {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,0.2));
  animation:sb-shadow 12s ease-in-out infinite alternate;
}
@keyframes sb-sky {
  0% { opacity:0.85; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes sb-altar {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(0.99); }
}
@keyframes sb-fire {
  0% { transform: scale(0.9) translateY(0); opacity:0.8; box-shadow: 0 0 20px 8px #ff8040; }
  50% { transform: scale(1.1) translateY(-4px); opacity:1; box-shadow: 0 0 40px 15px #ff8040, 0 0 80px 25px rgba(255,128,64,0.4); }
  100% { transform: scale(0.95) translateY(-2px); opacity:0.9; box-shadow: 0 0 30px 12px #ff8040; }
}
@keyframes sb-smoke {
  0% { transform: translateX(-10px) translateY(0) scale(1); opacity:0.3; }
  50% { transform: translateX(5px) translateY(-15px) scale(1.5); opacity:0.6; }
  100% { transform: translateX(-5px) translateY(-5px) scale(0.8); opacity:0.2; }
}
@keyframes sb-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes sb-animal {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sb-shadow {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.4; }
}

.scn-menon-treacherous-nature {
  background: 
    linear-gradient(180deg, #1a1410 0%, #3a2a1e 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a0e 0%, transparent 70%);
}
.scn-menon-treacherous-nature .wall-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2218 0%, #1a1410 100%);
  animation: mtn-wall 20s ease-in-out infinite alternate;
}
.scn-menon-treacherous-nature .wall-side {
  position: absolute; top: 10%; left: 0; bottom: 20%; width: 30%;
  background: linear-gradient(90deg, #1a1410 0%, transparent 100%);
  animation: mtn-side 25s ease-in-out infinite alternate;
}
.scn-menon-treacherous-nature .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #2a1a0e 0%, #1a1410 100%);
  border-radius: 10% 10% 0 0;
}
.scn-menon-treacherous-nature .desk {
  position: absolute; bottom: 22%; left: 20%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: mtn-desk 12s ease-in-out infinite alternate;
}
.scn-menon-treacherous-nature .candle {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8c080 0%, #a06030 100%);
  border-radius: 2px;
  animation: mtn-candle 3s ease-in-out infinite alternate;
}
.scn-menon-treacherous-nature .candle-glow {
  position: absolute; bottom: 36%; left: 32%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,180,80,0.6) 0%, rgba(255,120,40,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: mtn-glow 3s ease-in-out infinite alternate;
}
.scn-menon-treacherous-nature .figure-seat {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mtn-fig 5s ease-in-out infinite alternate;
}
.scn-menon-treacherous-nature .shadow-cast {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7) 0%, transparent 100%);
  border-radius: 50%;
  animation: mtn-shadow 12s ease-in-out infinite alternate;
}
@keyframes mtn-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mtn-side { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes mtn-desk { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(1px) scale(1); } }
@keyframes mtn-candle { 0% { transform: scaleY(1) rotate(-1deg); } 50% { transform: scaleY(0.9) rotate(0deg); } 100% { transform: scaleY(1) rotate(1deg); } }
@keyframes mtn-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes mtn-fig { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes mtn-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.2) translateX(5px); } 100% { transform: scaleX(0.9) translateX(-3px); } }

.scn-menon-prides-in-fraud {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1a1210 100%),
    radial-gradient(ellipse at 30% 60%, #2a1a14 0%, transparent 60%);
}
.scn-menon-prides-in-fraud .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1210 0%, #120c0a 100%);
  animation: mpf-bg 15s ease-in-out infinite alternate;
}
.scn-menon-prides-in-fraud .mask {
  position: absolute; top: 20%; left: 20%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  clip-path: polygon(0% 20%, 30% 0%, 70% 0%, 100% 20%, 100% 80%, 70% 100%, 30% 100%, 0% 80%);
  animation: mpf-mask 6s ease-in-out infinite alternate;
  transform-origin: center;
}
.scn-menon-prides-in-fraud .hand-closed {
  position: absolute; bottom: 20%; right: 25%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: mpf-hand 4s ease-in-out infinite alternate;
}
.scn-menon-prides-in-fraud .coin-1 {
  position: absolute; bottom: 15%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle at 30% 30%, #d0a060 0%, #805020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mpf-coin1 8s ease-in-out infinite alternate;
}
.scn-menon-prides-in-fraud .coin-2 {
  position: absolute; bottom: 18%; right: 35%; width: 10px; height: 10px;
  background: radial-gradient(circle at 40% 40%, #c09050 0%, #704020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mpf-coin2 7s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-menon-prides-in-fraud .whisper-line {
  position: absolute; top: 30%; right: 15%; width: 2px; height: 40px;
  background: rgba(200,160,120,0.3);
  border-radius: 1px;
  animation: mpf-whisper 4s ease-in-out infinite;
}
.scn-menon-prides-in-fraud .fleck {
  position: absolute; top: 50%; left: 60%; width: 4px; height: 4px;
  background: rgba(180,140,100,0.6);
  border-radius: 50%;
  animation: mpf-fleck 5s ease-in-out infinite alternate;
}
@keyframes mpf-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mpf-mask { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(0.95); } 100% { transform: rotate(-3deg) scale(1.02); } }
@keyframes mpf-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(-5px) rotate(-3deg); } }
@keyframes mpf-coin1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(180deg); } 100% { transform: translateY(2px) rotate(360deg); } }
@keyframes mpf-coin2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(-180deg); } 100% { transform: translateY(3px) rotate(-360deg); } }
@keyframes mpf-whisper { 0% { transform: scaleY(1); opacity: 0.3; } 50% { transform: scaleY(1.5); opacity: 0.6; } 100% { transform: scaleY(0.8); opacity: 0; } }
@keyframes mpf-fleck { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(2); opacity: 1; } 100% { transform: scale(0.5); opacity: 0; } }

.scn-menon-no-conscience {
  background: 
    linear-gradient(180deg, #0e0c0a 0%, #1a1410 30%, #2a1e16 60%, #0e0c0a 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e16 0%, transparent 70%);
}
.scn-menon-no-conscience .bg-void {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0c0a 0%, #1a1410 100%);
  animation: mnc-bg 20s ease-in-out infinite alternate;
}
.scn-menon-no-conscience .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #1a1410 0%, #0e0c0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-menon-no-conscience .figure-stand {
  position: absolute; bottom: 15%; left: 50%; width: 28px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: mnc-fig 8s ease-in-out infinite alternate;
}
.scn-menon-no-conscience .void-chest {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #0e0c0a 0%, #1a1410 70%);
  border-radius: 50%;
  animation: mnc-void 4s ease-in-out infinite alternate;
}
.scn-menon-no-conscience .lamp-post {
  position: absolute; bottom: 15%; left: 30%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%);
  border-radius: 2px;
}
.scn-menon-no-conscience .lamp-glow {
  position: absolute; bottom: 35%; left: 27%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(160,120,80,0.4) 0%, rgba(80,60,40,0.1) 50%, transparent 70%);
  border-radius: 50%;
  animation: mnc-lamp 5s ease-in-out infinite alternate;
}
.scn-menon-no-conscience .chain {
  position: absolute; bottom: 15%; left: 30%; width: 2px; height: 20px;
  background: rgba(120,90,70,0.4);
  border-radius: 1px;
  animation: mnc-chain 3s ease-in-out infinite;
}
@keyframes mnc-bg { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mnc-fig { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-48%) rotate(2deg) scale(0.98); } 100% { transform: translateX(-52%) rotate(-1deg) scale(1); } }
@keyframes mnc-void { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(0.8); opacity: 1; } 100% { transform: translateX(-50%) scale(1.1); opacity: 0.6; } }
@keyframes mnc-lamp { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }
@keyframes mnc-chain { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }

.scn-menon-death {
  background: 
    linear-gradient(180deg, #0a0604 0%, #1a100c 40%, #0a0604 100%),
    radial-gradient(ellipse at 50% 80%, #1a100c 0%, transparent 60%);
}
.scn-menon-death .bg-grave {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0604 0%, #120a06 100%);
  animation: mdt-bg 25s ease-in-out infinite alternate;
}
.scn-menon-death .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a1410 0%, #0a0604 100%);
  clip-path: polygon(0% 20%, 10% 0%, 20% 15%, 30% 5%, 40% 10%, 50% 0%, 60% 8%, 70% 3%, 80% 12%, 90% 0%, 100% 10%, 100% 100%, 0% 100%);
}
.scn-menon-death .body-lie {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(5deg);
  animation: mdt-body 12s ease-in-out infinite alternate;
}
.scn-menon-death .pool-dark {
  position: absolute; bottom: 10%; left: 25%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #0a0604 0%, transparent 100%);
  border-radius: 50%;
  animation: mdt-pool 8s ease-in-out infinite alternate;
}
.scn-menon-death .scythe-blade {
  position: absolute; bottom: 40%; right: 20%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 10% 10% 50%;
  transform: rotate(-30deg);
  animation: mdt-scythe 6s ease-in-out infinite alternate;
}
.scn-menon-death .scythe-handle {
  position: absolute; bottom: 20%; right: 30%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
}
.scn-menon-death .drip {
  position: absolute; top: 45%; right: 28%; width: 3px; height: 10px;
  background: rgba(120,80,60,0.6);
  border-radius: 2px;
  animation: mdt-drip 4s ease-in-out infinite;
}
@keyframes mdt-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mdt-body { 0% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(8deg) translateX(4px); } 100% { transform: rotate(0deg) translateX(-2px); } }
@keyframes mdt-pool { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.2) scaleY(0.8); } 100% { transform: scaleX(0.9) scaleY(1.1); } }
@keyframes mdt-scythe { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-20deg) scale(0.95); } 100% { transform: rotate(-40deg) scale(1.05); } }
@keyframes mdt-drip { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(12px); opacity: 0.3; } 100% { transform: translateY(24px); opacity: 0; } }

.scn-charge-against-bithynians { background: linear-gradient(170deg, #4a7ab5 0%, #87ceeb 35%, #e8d48b 65%, #c4a44a 100%), radial-gradient(ellipse at 70% 30%, #ffd700 0%, transparent 60%); position: relative; overflow: hidden; height: 100%; }
.scn-charge-against-bithynians .sky-war { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #3a6a9a 0%, #6a9aca 40%, transparent 100%); animation: cab-sky 14s ease-in-out infinite alternate; }
.scn-charge-against-bithynians .dust-clouds { position: absolute; bottom: 35%; left: 10%; right: 10%; height: 30%; background: linear-gradient(90deg, rgba(200,170,120,.6) 0%, rgba(180,150,100,.4) 50%, rgba(200,170,120,.6) 100%); border-radius: 40%; filter: blur(12px); animation: cab-dust 6s ease-in-out infinite alternate; }
.scn-charge-against-bithynians .sunburst { position: absolute; top: 12%; right: 25%; width: 80px; height: 80px; background: radial-gradient(circle, #fff8e0 0%, #ffd700 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,.5), 0 0 120px 40px rgba(255,215,0,.2); animation: cab-sun 9s ease-in-out infinite alternate; }
.scn-charge-against-bithynians .horseman { position: absolute; bottom: 38%; left: 30%; width: 40px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: cab-horseman 2.5s ease-in-out infinite; }
.scn-charge-against-bithynians .peltast-left { position: absolute; bottom: 35%; left: 15%; width: 18px; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; animation: cab-peltast-l 3s ease-in-out infinite; }
.scn-charge-against-bithynians .peltast-right { position: absolute; bottom: 37%; right: 20%; width: 18px; height: 28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; animation: cab-peltast-r 3.2s ease-in-out infinite 0.4s; }
.scn-charge-against-bithynians .bithynian-line { position: absolute; bottom: 40%; right: 10%; width: 120px; height: 35px; background: linear-gradient(90deg, transparent 0%, #5a3a2a 20%, #4a2a1a 50%, #5a3a2a 80%, transparent 100%); border-radius: 30%; transform: skewY(-5deg); animation: cab-bith-line 4s ease-in-out infinite alternate; }
.scn-charge-against-bithynians .spear-tips { position: absolute; bottom: 45%; left: 35%; width: 60px; height: 40px; background: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, #c4a44a 8px, #c4a44a 9px, transparent 9px, transparent 16px); transform: rotate(-15deg); opacity: 0.7; animation: cab-spears 1.8s ease-in-out infinite alternate; }
.scn-charge-against-bithynians .ground-rush { position: absolute; bottom: 0; left: 0; right: 0; height: 38%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 40%, #4a3a2a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.4); animation: cab-ground 7s ease-in-out infinite alternate; }
@keyframes cab-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cab-dust { 0% { transform: translateX(-5px) scaleX(1); } 50% { transform: translateX(3px) scaleX(1.05); } 100% { transform: translateX(-2px) scaleX(0.95); } }
@keyframes cab-sun { 0% { transform: scale(0.9); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.95; } }
@keyframes cab-horseman { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(16px) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes cab-peltast-l { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 33% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(10px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(15px) translateY(0) rotate(0); } }
@keyframes cab-peltast-r { 0% { transform: translateX(0) translateY(0) rotate(3deg); } 33% { transform: translateX(-5px) translateY(-2px) rotate(-1deg); } 66% { transform: translateX(-10px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-15px) translateY(0) rotate(0); } }
@keyframes cab-bith-line { 0% { transform: skewY(-5deg) translateX(0); } 50% { transform: skewY(-3deg) translateX(-5px); } 100% { transform: skewY(-6deg) translateX(3px); } }
@keyframes cab-spears { 0% { opacity: 0.5; transform: rotate(-18deg) translateY(0); } 50% { opacity: 0.8; transform: rotate(-12deg) translateY(-3px); } 100% { opacity: 0.6; transform: rotate(-15deg) translateY(-1px); } }
@keyframes cab-ground { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: -3% 0%; } }

.scn-enemy-turns-peltasts { background: linear-gradient(165deg, #5a8ab5 0%, #8abae5 30%, #d4c47a 60%, #b0943a 100%), radial-gradient(ellipse at 60% 25%, #ffe080 0%, transparent 55%); position: relative; overflow: hidden; height: 100%; }
.scn-enemy-turns-peltasts .sky-clash { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a7aaa 0%, #7a9aca 35%, transparent 100%); animation: etp-sky 16s ease-in-out infinite alternate; }
.scn-enemy-turns-peltasts .sun-glare { position: absolute; top: 8%; right: 35%; width: 100px; height: 100px; background: radial-gradient(circle, #fffae0 0%, #ffd700 30%, transparent 65%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,215,0,.4), 0 0 160px 60px rgba(255,215,0,.15); animation: etp-glare 7s ease-in-out infinite alternate; }
.scn-enemy-turns-peltasts .phalanx { position: absolute; bottom: 35%; left: 25%; width: 70px; height: 45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: -4px 0 8px rgba(0,0,0,.5); transform: skewX(3deg); animation: etp-phalanx 4.5s ease-in-out infinite alternate; }
.scn-enemy-turns-peltasts .peltast-fleeing { position: absolute; bottom: 32%; left: 50%; width: 16px; height: 28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: etp-flee 2.8s ease-in-out infinite; }
.scn-enemy-turns-peltasts .bithynian-charge { position: absolute; bottom: 36%; right: 15%; width: 80px; height: 38px; background: linear-gradient(270deg, #5a3a2a 0%, #4a2a1a 40%, transparent 100%); border-radius: 40% 0 0 40%; transform: skewX(-8deg); animation: etp-bith-charge 3.2s ease-in-out infinite alternate; }
.scn-enemy-turns-peltasts .shield-wall { position: absolute; bottom: 33%; left: 30%; width: 55px; height: 30px; background: repeating-linear-gradient(90deg, #6a4a3a 0px, #6a4a3a 8px, #8a6a4a 8px, #8a6a4a 16px); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: etp-shield 3.6s ease-in-out infinite alternate; }
.scn-enemy-turns-peltasts .dust-swirl { position: absolute; bottom: 30%; left: 20%; right: 20%; height: 35%; background: linear-gradient(90deg, transparent 0%, rgba(200,170,120,.5) 30%, rgba(180,150,100,.3) 70%, transparent 100%); border-radius: 50%; filter: blur(15px); animation: etp-dust 5s ease-in-out infinite alternate; }
.scn-enemy-turns-peltasts .bugle-call { position: absolute; top: 30%; left: 40%; width: 12px; height: 30px; background: linear-gradient(180deg, #c4a44a 0%, #8a7a3a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 0 10px 2px rgba(196,164,74,.4); animation: etp-bugle 2s ease-in-out infinite alternate; }
@keyframes etp-sky { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes etp-glare { 0% { transform: scale(0.85) translateX(0); opacity: 0.8; } 50% { transform: scale(1.15) translateX(5px); opacity: 1; } 100% { transform: scale(1) translateX(-3px); opacity: 0.9; } }
@keyframes etp-phalanx { 0% { transform: skewX(3deg) translateX(0); } 50% { transform: skewX(5deg) translateX(4px); } 100% { transform: skewX(2deg) translateX(-2px); } }
@keyframes etp-flee { 0% { transform: translateX(0) translateY(0) rotate(5deg); } 33% { transform: translateX(10px) translateY(-4px) rotate(8deg); } 66% { transform: translateX(20px) translateY(-2px) rotate(3deg); } 100% { transform: translateX(30px) translateY(0) rotate(6deg); } }
@keyframes etp-bith-charge { 0% { transform: skewX(-8deg) translateX(0); } 50% { transform: skewX(-5deg) translateX(-6px); } 100% { transform: skewX(-10deg) translateX(3px); } }
@keyframes etp-shield { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes etp-dust { 0% { transform: translateX(-8px) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.1); } 100% { transform: translateX(-3px) scaleY(0.95); } }
@keyframes etp-bugle { 0% { transform: translateY(0) rotate(-5deg); opacity: 0.7; } 50% { transform: translateY(-2px) rotate(5deg); opacity: 1; } 100% { transform: translateY(0) rotate(-3deg); opacity: 0.8; } }

.scn-enemy-right-stands { background: linear-gradient(160deg, #4a7ab5 0%, #7aadd5 35%, #c4b47a 65%, #a08a4a 100%), radial-gradient(ellipse at 40% 20%, #ffe080 0%, transparent 60%); position: relative; overflow: hidden; height: 100%; }
.scn-enemy-right-stands .sky-knoll { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #3a6a9a 0%, #6a9aca 40%, transparent 100%); animation: ers-sky 15s ease-in-out infinite alternate; }
.scn-enemy-right-stands .sun-behind { position: absolute; top: 10%; left: 30%; width: 90px; height: 90px; background: radial-gradient(circle, #fff8e0 0%, #ffd700 35%, transparent 70%); border-radius: 50%; box-shadow: 0 0 70px 25px rgba(255,215,0,.4), 0 0 140px 50px rgba(255,215,0,.15); animation: ers-sun 10s ease-in-out infinite alternate; }
.scn-enemy-right-stands .knoll { position: absolute; bottom: 25%; right: 15%; width: 150px; height: 80px; background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 60%, #3a4a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 -8px 20px rgba(0,0,0,.3); animation: ers-knoll 8s ease-in-out infinite alternate; }
.scn-enemy-right-stands .enemy-right { position: absolute; bottom: 38%; right: 22%; width: 40px; height: 40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: ers-enemy-stand 5s ease-in-out infinite alternate; }
.scn-enemy-right-stands .hellene-cavalry { position: absolute; bottom: 30%; left: 20%; width: 50px; height: 35px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: skewX(-5deg); animation: ers-hellene 4.2s ease-in-out infinite alternate; }
.scn-enemy-right-stands .scattered-left { position: absolute; bottom: 28%; left: 5%; width: 30px; height: 25px; background: linear-gradient(90deg, #4a3a2a 0%, transparent 100%); border-radius: 30%; transform: skewY(8deg); opacity: 0.6; animation: ers-scatter 6s ease-in-out infinite alternate; }
.scn-enemy-right-stands .dust-settle { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 25%; background: linear-gradient(90deg, transparent 0%, rgba(200,170,120,.4) 30%, rgba(180,150,100,.2) 70%, transparent 100%); border-radius: 40%; filter: blur(10px); animation: ers-dust 9s ease-in-out infinite alternate; }
.scn-enemy-right-stands .lone-standard { position: absolute; bottom: 45%; right: 35%; width: 4px; height: 35px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10%; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: ers-standard 3.5s ease-in-out infinite alternate; }
@keyframes ers-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ers-sun { 0% { transform: scale(0.9) translateX(0); opacity: 0.85; } 50% { transform: scale(1.1) translateX(-5px); opacity: 1; } 100% { transform: scale(0.95) translateX(3px); opacity: 0.9; } }
@keyframes ers-knoll { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes ers-enemy-stand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(-2px) rotate(0); } }
@keyframes ers-hellene { 0% { transform: skewX(-5deg) translateX(0); } 50% { transform: skewX(-3deg) translateX(3px); } 100% { transform: skewX(-6deg) translateX(-2px); } }
@keyframes ers-scatter { 0% { transform: skewY(8deg) translateX(0); opacity: 0.5; } 50% { transform: skewY(5deg) translateX(-5px); opacity: 0.7; } 100% { transform: skewY(10deg) translateX(3px); opacity: 0.4; } }
@keyframes ers-dust { 0% { transform: translateX(-5px) scaleY(1); opacity: 0.5; } 50% { transform: translateX(3px) scaleY(1.1); opacity: 0.7; } 100% { transform: translateX(-2px) scaleY(0.95); opacity: 0.4; } }
@keyframes ers-standard { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(-1px); } }

.scn-final-stand-cavalry { background: linear-gradient(155deg, #3a6a9a 0%, #6a9aca 30%, #b4a47a 60%, #948a4a 100%), radial-gradient(ellipse at 50% 15%, #ffd700 0%, transparent 55%); position: relative; overflow: hidden; height: 100%; }
.scn-final-stand-cavalry .sky-standoff { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #2a5a8a 0%, #5a8aba 40%, transparent 100%); animation: fsc-sky 18s ease-in-out infinite alternate; }
.scn-final-stand-cavalry .sun-low { position: absolute; top: 5%; left: 45%; width: 80px; height: 80px; background: radial-gradient(circle, #fffae0 0%, #ffd700 25%, transparent 60%); border-radius: 50%; box-shadow: 0 0 90px 35px rgba(255,215,0,.3), 0 0 180px 70px rgba(255,215,0,.1); animation: fsc-sun 12s ease-in-out infinite alternate; }
.scn-final-stand-cavalry .pharnabazus-cavalry { position: absolute; bottom: 32%; left: 25%; width: 60px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: fsc-pharn 6s ease-in-out infinite alternate; }
.scn-final-stand-cavalry .bithynian-mass { position: absolute; bottom: 30%; right: 20%; width: 70px; height: 35px; background: linear-gradient(270deg, #5a3a2a 0%, #4a2a1a 60%, transparent 100%); border-radius: 40% 0 0 40%; transform: skewX(-6deg); animation: fsc-bithynian 4.8s ease-in-out infinite alternate; }
.scn-final-stand-cavalry .knoll-spectators { position: absolute; bottom: 25%; right: 35%; width: 110px; height: 60px; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 60%, #2a3a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 -6px 15px rgba(0,0,0,.3); animation: fsc-knoll 9s ease-in-out infinite alternate; }
.scn-final-stand-cavalry .hellene-weary { position: absolute; bottom: 28%; left: 10%; width: 30px; height: 32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(-5deg); animation: fsc-weary 5s ease-in-out infinite alternate; }
.scn-final-stand-cavalry .dust-haze { position: absolute; bottom: 15%; left: 0; right: 0; height: 40%; background: linear-gradient(90deg, transparent 0%, rgba(200,170,120,.5) 25%, rgba(180,150,100,.35) 50%, rgba(200,170,120,.4) 75%, transparent 100%); border-radius: 40%; filter: blur(18px); animation: fsc-haze 11s ease-in-out infinite alternate; }
.scn-final-stand-cavalry .ground-tension { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 60%, #2a1a0a 100%); box-shadow: inset 0 15px 25px rgba(0,0,0,.5); animation: fsc-ground 8s ease-in-out infinite alternate; }
@keyframes fsc-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes fsc-sun { 0% { transform: scale(0.85) translateY(0); opacity: 0.7; } 50% { transform: scale(1.1) translateY(-5px); opacity: 0.95; } 100% { transform: scale(0.9) translateY(3px); opacity: 0.8; } }
@keyframes fsc-pharn { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(3px) translateY(-4px) rotate(1deg); } 100% { transform: translateX(-2px) translateY(0) rotate(0); } }
@keyframes fsc-bithynian { 0% { transform: skewX(-6deg) translateX(0); } 50% { transform: skewX(-4deg) translateX(-4px); } 100% { transform: skewX(-8deg) translateX(2px); } }
@keyframes fsc-knoll { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.03); } 100% { transform: translateY(0) scaleX(0.97); } }
@keyframes fsc-weary { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-6deg) translateY(-1px); } }
@keyframes fsc-haze { 0% { transform: translateX(-8px) scaleY(1); opacity: 0.5; } 50% { transform: translateX(5px) scaleY(1.1); opacity: 0.7; } 100% { transform: translateX(-3px) scaleY(0.95); opacity: 0.4; } }
@keyframes fsc-ground { 0% { background-position: 0% 0%; } 50% { background-position: 4% 0%; } 100% { background-position: -3% 0%; } }

/* xenophon-on-reputation */
.scn-xenophon-on-reputation {
  background: 
    linear-gradient(180deg, #ffb27a 0%, #e68a4c 35%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 0%, #ffd9b3 0%, transparent 70%);
  background-blend-mode: overlay, normal;
}
.scn-xenophon-on-reputation .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffcca3 0%, #ffb27a 100%); animation: rep-sky 20s ease-in-out infinite alternate; }
.scn-xenophon-on-reputation .sun { position:absolute; bottom:45%; left:15%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle, #fff4d6 0%, #ffb76b 70%); box-shadow: 0 0 80px 30px rgba(255,183,107,.6); animation: rep-sun 12s ease-in-out infinite alternate; }
.scn-xenophon-on-reputation .dais { position:absolute; bottom:18%; left:50%; width:180px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #8c6a4e 0%, #5a3e2c 100%); border-radius:4px; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-xenophon-on-reputation .figure { position:absolute; bottom:28%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rep-fig 3s ease-in-out infinite; }
.scn-xenophon-on-reputation .pillar-left { position:absolute; bottom:20%; left:22%; width:16px; height:120px; background: linear-gradient(90deg, #b08a6e 0%, #8c6a4e 50%, #6b4e38 100%); border-radius:4px; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: rep-pillar 6s ease-in-out infinite; }
.scn-xenophon-on-reputation .pillar-right { position:absolute; bottom:20%; right:22%; width:16px; height:120px; background: linear-gradient(90deg, #6b4e38 0%, #8c6a4e 50%, #b08a6e 100%); border-radius:4px; box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: rep-pillar 6s ease-in-out infinite reverse; }
.scn-xenophon-on-reputation .shadow { position:absolute; bottom:18%; left:50%; width:120px; height:8px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: rep-shadow 3s ease-in-out infinite alternate; }
@keyframes rep-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes rep-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 60px 20px rgba(255,183,107,.5); } 50% { transform: translateY(-8px) scale(1.05); box-shadow: 0 0 100px 40px rgba(255,183,107,.8); } 100% { transform: translateY(2px) scale(.98); box-shadow: 0 0 70px 25px rgba(255,183,107,.6); } }
@keyframes rep-fig { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-52%) rotate(1deg); } 50% { transform: translateX(-48%) rotate(-1deg); } 75% { transform: translateX(-51%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes rep-pillar { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.02); opacity:1; } 100% { transform: scaleY(.99); opacity:.92; } }
@keyframes rep-shadow { 0% { opacity:.4; transform: translateX(-50%) scaleX(1); } 50% { opacity:.6; transform: translateX(-50%) scaleX(1.05); } 100% { opacity:.5; transform: translateX(-50%) scaleX(.95); } }

/* xenophon-on-trust */
.scn-xenophon-on-trust {
  background: 
    linear-gradient(135deg, #3a2a1e 0%, #6b4e38 40%, #b08a6e 100%),
    radial-gradient(ellipse at 30% 20%, #ffd9b3 0%, transparent 60%);
  background-blend-mode: overlay, normal;
}
.scn-xenophon-on-trust .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2c1e14 0%, #4a3626 100%); }
.scn-xenophon-on-trust .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b4e38 0%, #4a3626 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.4); }
.scn-xenophon-on-trust .window { position:absolute; top:10%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #ffd9b3 0%, #e68a4c 90%); border-radius:12px; border: 2px solid #3a2a1e; box-shadow: 0 0 30px 10px rgba(255,183,107,.3); animation: tru-window 8s ease-in-out infinite alternate; }
.scn-xenophon-on-trust .beam { position:absolute; top:15%; left:50%; width:120px; height:200px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,215,175,.3) 0%, transparent 100%); animation: tru-beam 12s ease-in-out infinite alternate; }
.scn-xenophon-on-trust .figure-a { position:absolute; bottom:20%; left:30%; width:28px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tru-fig-a 4s ease-in-out infinite; }
.scn-xenophon-on-trust .figure-b { position:absolute; bottom:20%; right:30%; width:28px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tru-fig-b 4.5s ease-in-out infinite reverse; }
.scn-xenophon-on-trust .table { position:absolute; bottom:20%; left:50%; width:80px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #8c6a4e 0%, #5a3e2c 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: tru-table 6s ease-in-out infinite alternate; }
@keyframes tru-window { 0% { opacity:.8; box-shadow: 0 0 20px 5px rgba(255,183,107,.2); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,183,107,.5); } 100% { opacity:.9; box-shadow: 0 0 25px 8px rgba(255,183,107,.3); } }
@keyframes tru-beam { 0% { opacity:.1; transform: translateX(-50%) rotate(5deg); } 50% { opacity:.3; transform: translateX(-50%) rotate(2deg); } 100% { opacity:.15; transform: translateX(-50%) rotate(-3deg); } }
@keyframes tru-fig-a { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes tru-fig-b { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes tru-table { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(.98); } }

/* xenophon-on-value-of-credit */
.scn-xenophon-on-value-of-credit {
  background: 
    linear-gradient(180deg, #2c1e14 0%, #4a3626 50%, #6b4e38 100%),
    radial-gradient(ellipse at 50% 70%, #b08a6e 0%, transparent 70%);
  background-blend-mode: overlay, normal;
}
.scn-xenophon-on-value-of-credit .table { position:absolute; bottom:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #6b4e38 0%, #4a3626 100%); border-radius:8px; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-xenophon-on-value-of-credit .scale { position:absolute; top:25%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #8c6a4e 0%, #5a3e2c 100%); border-radius:50% 50% 10% 10% / 60% 60% 10% 10%; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: cre-scale 3s ease-in-out infinite alternate; }
.scn-xenophon-on-value-of-credit .coin-left { position:absolute; bottom:35%; left:28%; width:20px; height:20px; border-radius:50%; background: radial-gradient(circle, #d4a373 0%, #b08a6e 100%); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: cre-coin-left 2s ease-in-out infinite; }
.scn-xenophon-on-value-of-credit .coin-right { position:absolute; bottom:35%; right:28%; width:20px; height:20px; border-radius:50%; background: radial-gradient(circle, #d4a373 0%, #b08a6e 100%); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: cre-coin-right 2.5s ease-in-out infinite; }
.scn-xenophon-on-value-of-credit .hand { position:absolute; top:10%; left:50%; width:24px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3626 0%, #2c1e14 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; clip-path: inset(0 0 20% 0); animation: cre-hand 4s ease-in-out infinite alternate; }
.scn-xenophon-on-value-of-credit .shadows { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.4) 0%, transparent 70%); animation: cre-shadows 5s ease-in-out infinite alternate; }
.scn-xenophon-on-value-of-credit .glint { position:absolute; top:30%; left:45%; width:8px; height:8px; border-radius:50%; background: #ffd9b3; box-shadow: 0 0 12px 4px rgba(255,215,175,.8); animation: cre-glint 1.5s steps(2) infinite; }
@keyframes cre-scale { 0% { transform: translateX(-50%) rotate(-8deg); } 50% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(10deg); } }
@keyframes cre-coin-left { 0% { transform: translateY(0); } 25% { transform: translateY(-6px); } 50% { transform: translateY(0); } 75% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes cre-coin-right { 0% { transform: translateY(0); } 25% { transform: translateY(-4px); } 50% { transform: translateY(0); } 75% { transform: translateY(-6px); } 100% { transform: translateY(0); } }
@keyframes cre-hand { 0% { transform: translateX(-50%) translateY(0) rotate(5deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(2px) rotate(8deg); } }
@keyframes cre-shadows { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.4; } }
@keyframes cre-glint { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.3; } }

/* xenophon-on-fear */
.scn-xenophon-on-fear {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2c1e14 50%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 80%, #6b4e38 0%, transparent 80%);
  background-blend-mode: overlay, normal;
}
.scn-xenophon-on-fear .corridor-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); }
.scn-xenophon-on-fear .wall-left { position:absolute; top:0; left:0; bottom:0; width:20%; background: linear-gradient(90deg, #2c1e14 0%, #1a1410 100%); box-shadow: 4px 0 12px rgba(0,0,0,.6); animation: fea-wall 6s ease-in-out infinite alternate; }
.scn-xenophon-on-fear .wall-right { position:absolute; top:0; right:0; bottom:0; width:20%; background: linear-gradient(90deg, #1a1410 0%, #2c1e14 100%); box-shadow: -4px 0 12px rgba(0,0,0,.6); animation: fea-wall 6s ease-in-out infinite alternate-reverse; }
.scn-xenophon-on-fear .door { position:absolute; top:20%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3626 0%, #2c1e14 100%); border-radius:4px 4px 0 0; box-shadow: 0 0 20px 10px rgba(0,0,0,.5); animation: fea-door 8s ease-in-out infinite alternate; }
.scn-xenophon-on-fear .figure { position:absolute; bottom:15%; left:50%; width:32px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #0d0a08 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fea-fig 2s ease-in-out infinite; }
.scn-xenophon-on-fear .chain-left { position:absolute; top:15%; left:25%; width:4px; height:60px; background: #6b4e38; border-radius:2px; box-shadow: 0 4px 4px rgba(0,0,0,.3); animation: fea-chain 1.5s ease-in-out infinite; }
.scn-xenophon-on-fear .chain-right { position:absolute; top:15%; right:25%; width:4px; height:60px; background: #6b4e38; border-radius:2px; box-shadow: 0 4px 4px rgba(0,0,0,.3); animation: fea-chain 1.8s ease-in-out infinite reverse; }
.scn-xenophon-on-fear .torch-glow { position:absolute; bottom:30%; left:10%; width:30px; height:40px; background: radial-gradient(ellipse, #ffd9b3 0%, rgba(255,183,107,.6) 50%, transparent 100%); animation: fea-glow 4s ease-in-out infinite alternate; }
@keyframes fea-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes fea-door { 0% { transform: translateX(-50%) rotateY(0deg); } 25% { transform: translateX(-50%) rotateY(3deg); } 50% { transform: translateX(-50%) rotateY(-2deg); } 75% { transform: translateX(-50%) rotateY(1deg); } 100% { transform: translateX(-50%) rotateY(0deg); } }
@keyframes fea-fig { 0% { transform: translateX(-50%) translateY(0) scale(1); } 25% { transform: translateX(-50%) translateY(-3px) scale(1.02); } 50% { transform: translateX(-50%) translateY(0) scale(.98); } 75% { transform: translateX(-50%) translateY(-2px) scale(1.01); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes fea-chain { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes fea-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.8; transform: scale(1.3); } 100% { opacity:.4; transform: scale(.9); } }

/* xenophon-prepares-return — dawn camp */
.scn-xenophon-prepares-return {
  background: linear-gradient(180deg, #f3a87a 0%, #e27a4a 25%, #c45a3a 50%, #8a3a2a 75%, #4a2a1a 100%), 
              radial-gradient(ellipse at 50% 20%, #f8c890 0%, transparent 60%);
}
.scn-xenophon-prepares-return .dawn-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f7c8a0 0%, #e89860 40%, #b85a2a 100%);
  animation: xpr-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-prepares-return .distant-hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0; filter: blur(2px);
  animation: xpr-hills 30s ease-in-out infinite alternate;
}
.scn-xenophon-prepares-return .camp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 20%, #2a1a0a 100%);
  border-radius: 0 0 40% 60% / 10% 10% 0 0;
}
.scn-xenophon-prepares-return .tent {
  position: absolute; bottom: 18%; left: 50%; width: 70px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(160deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: xpr-tent 8s ease-in-out infinite;
}
.scn-xenophon-prepares-return .figure-pack {
  position: absolute; bottom: 16%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xpr-walk 6s ease-in-out infinite;
}
.scn-xenophon-prepares-return .bundle {
  position: absolute; bottom: 12%; left: 35%; width: 16px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #8a6a4a, #5a3a2a);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: xpr-float 5s ease-in-out infinite;
}
.scn-xenophon-prepares-return .embers {
  position: absolute; bottom: 10%; left: 52%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f8a040, #c07020);
  border-radius: 50%;
  box-shadow: 0 0 14px 4px rgba(248,160,64,.5);
  animation: xpr-glow 4s ease-in-out infinite alternate;
}
@keyframes xpr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; background-position: 0% 0%; }
  100% { opacity: 0.85; background-position: 20% 10%; }
}
@keyframes xpr-hills {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes xpr-tent {
  0%,100% { transform: translateX(-50%) rotate(-0.5deg); }
  50% { transform: translateX(-50%) rotate(0.5deg) translateY(-1px); }
}
@keyframes xpr-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes xpr-float {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.05); }
}
@keyframes xpr-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); box-shadow: 0 0 20px 6px rgba(248,160,64,.7); }
  100% { opacity: 0.7; transform: scale(0.9); }
}

/* sail-to-lampsacus — sunlit sea */
.scn-sail-to-lampsacus {
  background: linear-gradient(180deg, #7ab8e0 0%, #c8e0f0 40%, #e8f0f8 70%, #f8e8c0 100%),
              radial-gradient(ellipse at 50% 0%, #d0e8f8 0%, transparent 70%);
}
.scn-sail-to-lampsacus .sea-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #90c8e8 0%, #d8eaf0 70%, #f0e8c0 100%);
  animation: sl-sky 15s ease-in-out infinite alternate;
}
.scn-sail-to-lampsacus .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a7a9a 0%, #3a6a8a 40%, #2a5a7a 100%);
  border-radius: 0 0 30% 70% / 5% 5% 0 0;
}
.scn-sail-to-lampsacus .ship-hull {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 0 0 60% 60% / 0 0 80% 80%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: sl-hull 12s ease-in-out infinite;
}
.scn-sail-to-lampsacus .sail-fore {
  position: absolute; bottom: 42%; left: 44%; width: 22px; height: 48px;
  background: linear-gradient(135deg, #f8f0e0 0%, #e0d0b0 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform-origin: bottom center;
  animation: sl-sail 8s ease-in-out infinite alternate;
}
.scn-sail-to-lampsacus .sail-aft {
  position: absolute; bottom: 42%; left: 52%; width: 26px; height: 54px;
  background: linear-gradient(135deg, #f0e0c8 0%, #d8c8a8 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform-origin: bottom center;
  animation: sl-sail 10s ease-in-out infinite alternate-reverse;
}
.scn-sail-to-lampsacus .wave-a {
  position: absolute; bottom: 20%; left: 0; width: 120%; height: 12px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.2) 50%, transparent);
  filter: blur(4px);
  animation: sl-wave-a 8s ease-in-out infinite;
}
.scn-sail-to-lampsacus .wave-b {
  position: absolute; bottom: 15%; right: -10%; width: 140%; height: 14px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.15) 50%, transparent);
  filter: blur(5px);
  animation: sl-wave-b 11s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-sail-to-lampsacus .sun-disk {
  position: absolute; top: 10%; right: 18%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #f8d080 40%, #e8b060 70%, transparent 72%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(248,208,128,.4);
  animation: sl-sun 18s ease-in-out infinite alternate;
}
@keyframes sl-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes sl-hull {
  0%,100% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(1px); }
}
@keyframes sl-sail {
  0% { transform: rotate(-3deg) scaleY(1); }
  50% { transform: rotate(0deg) scaleY(1.02); }
  100% { transform: rotate(3deg) scaleY(0.98); }
}
@keyframes sl-wave-a {
  0% { transform: translateX(-20px); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(-20px); }
}
@keyframes sl-wave-b {
  0% { transform: translateX(30px); }
  50% { transform: translateX(-20px); }
  100% { transform: translateX(30px); }
}
@keyframes sl-sun {
  0% { transform: translate(0,0) scale(1); opacity: 0.9; }
  50% { transform: translate(5px,-5px) scale(1.05); opacity: 1; }
  100% { transform: translate(-5px,2px) scale(0.98); opacity: 0.95; }
}

/* lampsacus-sacrifice — sunlit temple courtyard */
.scn-lampsacus-sacrifice {
  background: linear-gradient(180deg, #9ac8e8 0%, #c8e0f0 40%, #e0e8d8 70%, #d8c8a0 100%),
              radial-gradient(ellipse at 50% 0%, #d8e8f0 0%, transparent 60%);
}
.scn-lampsacus-sacrifice .temple-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a8d0e8 0%, #d8e8f0 50%, #f0e8c8 100%);
  animation: ls-sky 20s ease-in-out infinite alternate;
}
.scn-lampsacus-sacrifice .paved-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 52%;
  background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 30%, #6a5a4a 100%);
  border-radius: 0 0 20% 40% / 5% 5% 0 0;
}
.scn-lampsacus-sacrifice .altar-stone {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: ls-altar 12s ease-in-out infinite;
}
.scn-lampsacus-sacrifice .sacred-flame {
  position: absolute; bottom: 40%; left: 50%; width: 16px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 80%, #f8c040 0%, #e08020 50%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 24px 8px rgba(248,192,64,.5);
  animation: ls-flame 3s ease-in-out infinite alternate;
}
.scn-lampsacus-sacrifice .figure-eucl {
  position: absolute; bottom: 28%; left: 36%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-figure1 10s ease-in-out infinite;
}
.scn-lampsacus-sacrifice .figure-xeno {
  position: absolute; bottom: 28%; right: 36%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-figure2 12s ease-in-out infinite;
}
.scn-lampsacus-sacrifice .incense-smoke {
  position: absolute; top: 30%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,255,255,.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: ls-smoke 15s ease-in-out infinite;
}
@keyframes ls-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ls-altar {
  0%,100% { transform: translateX(-50%) rotate(-0.5deg); }
  50% { transform: translateX(-50%) rotate(0.5deg) translateY(-1px); }
}
@keyframes ls-flame {
  0% { transform: translateX(-50%) scaleY(0.9) rotate(-2deg); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1) rotate(-1deg); opacity: 0.85; }
}
@keyframes ls-figure1 {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg) translateY(-2px); }
}
@keyframes ls-figure2 {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-2deg) translateY(-1px); }
}
@keyframes ls-smoke {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(-50%) translateY(-15px) scale(1.5); opacity: 0.1; }
  100% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.3; }
}

/* xenophon-sacrifices — open hill sacrifice */
.scn-xenophon-sacrifices {
  background: linear-gradient(180deg, #b0d0e0 0%, #d0e0e8 40%, #e0d8c0 70%, #c8b898 100%),
              radial-gradient(ellipse at 50% 10%, #d8e8f0 0%, transparent 60%);
}
.scn-xenophon-sacrifices .open-sky {
  position: absolute; inset: 0 0 48% 0;
  background: linear-gradient(180deg, #a8c8d8 0%, #d0e0e8 60%, #e8e0c8 100%);
  animation: xs-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-sacrifices .hill-altar {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: xs-hill 25s ease-in-out infinite alternate;
}
.scn-xenophon-sacrifices .altar-fire {
  position: absolute; bottom: 38%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #f8a040 0%, #c07020 60%, transparent 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(248,160,64,.4);
  animation: xs-fire 4s ease-in-out infinite alternate;
}
.scn-xenophon-sacrifices .ram-silhouette {
  position: absolute; bottom: 36%; left: 42%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: xs-ram 14s ease-in-out infinite;
}
.scn-xenophon-sacrifices .figure-xeno {
  position: absolute; bottom: 33%; right: 38%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xs-figure 9s ease-in-out infinite;
}
.scn-xenophon-sacrifices .smoke-plume {
  position: absolute; top: 25%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,255,255,.12) 0%, transparent 70%);
  filter: blur(10px);
  animation: xs-smoke 20s ease-in-out infinite;
}
.scn-xenophon-sacrifices .ground-herbs {
  position: absolute; bottom: 32%; left: 52%; width: 20px; height: 6px;
  background: linear-gradient(90deg, #4a6a3a, #3a5a2a);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: xs-herbs 7s ease-in-out infinite alternate;
}
@keyframes xs-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes xs-hill {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes xs-fire {
  0% { transform: translateX(-50%) scaleY(0.95) rotate(-2deg); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.15) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1.02) rotate(-1deg); opacity: 0.9; }
}
@keyframes xs-ram {
  0%,100% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(2px) rotate(2deg) scale(1.02); }
}
@keyframes xs-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-2deg) translateY(-1px); }
}
@keyframes xs-smoke {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateX(-50%) translateY(-20px) scale(1.8); opacity: 0.05; }
  100% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.2; }
}
@keyframes xs-herbs {
  0% { transform: translateX(0) rotate(-5deg) scaleY(1); }
  50% { transform: translateX(2px) rotate(5deg) scaleY(1.1); }
  100% { transform: translateX(-2px) rotate(-3deg) scaleY(0.9); }
}

/* Scene: xenophon-joins-cyrus (sunlit calm) */
.scn-xenophon-joins-cyrus {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #ffd700 100%),
    radial-gradient(ellipse at 50% 100%, #ffd700 0%, transparent 70%);
}
.scn-xenophon-joins-cyrus .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 50%, #f0e68c 100%);
  animation: xjc-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-joins-cyrus .sun {
  position: absolute; top: 10%; left: 55%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffd700, 0 0 120px 40px rgba(255,215,0,0.3);
  animation: xjc-sun 20s ease-in-out infinite;
}
.scn-xenophon-joins-cyrus .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 50%, #3b5323 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: xjc-mountains 25s ease-in-out infinite alternate;
}
.scn-xenophon-joins-cyrus .plain {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c2b280 0%, #a0855f 100%);
  border-radius: 0 0 20% 20%;
  animation: xjc-plain 30s ease-in-out infinite alternate;
}
.scn-xenophon-joins-cyrus .tent {
  position: absolute; bottom: 20%; left: 38%;
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #d4c5a9 0%, #b8a88c 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: xjc-tent 12s ease-in-out infinite;
}
.scn-xenophon-joins-cyrus .figure-cyrus {
  position: absolute; bottom: 18%; left: 42%;
  width: 18px; height: 48px;
  background: linear-gradient(180deg, #8b4513 0%, #5c3317 50%, #3a1f0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xjc-figure-cyrus 8s ease-in-out infinite;
}
.scn-xenophon-joins-cyrus .figure-xenophon {
  position: absolute; bottom: 18%; right: 30%;
  width: 16px; height: 44px;
  background: linear-gradient(180deg, #cd853f 0%, #8b6914 50%, #5c4033 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xjc-figure-xenophon 8s ease-in-out infinite reverse;
}
@keyframes xjc-sky {
  0% { opacity: 0.9; background-position: 0% 50%; }
  50% { opacity: 1; background-position: 50% 50%; }
  100% { opacity: 0.8; background-position: 100% 50%; }
}
@keyframes xjc-sun {
  0%, 100% { transform: translate(0, 0) scale(1); box-shadow: 0 0 60px 20px #ffd700; }
  50% { transform: translate(5px, -10px) scale(1.1); box-shadow: 0 0 80px 30px #fff8dc; }
}
@keyframes xjc-mountains {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(0.98); }
}
@keyframes xjc-plain {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% -5%; }
  100% { background-position: 100% 0%; }
}
@keyframes xjc-tent {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-1px); }
}
@keyframes xjc-figure-cyrus {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes xjc-figure-xenophon {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* Scene: xenophon-now-distressed (dim interior, dark mood) */
.scn-xenophon-now-distressed {
  background:
    linear-gradient(180deg, #2c1a0e 0%, #1a0f08 50%, #0d0804 100%),
    radial-gradient(ellipse at 50% 60%, #4a2c1a 0%, transparent 60%);
}
.scn-xenophon-now-distressed .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3e2723 0%, #2c1a0e 50%, #1a0f08 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  animation: xnd-wall 10s ease-in-out infinite alternate;
}
.scn-xenophon-now-distressed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3e2723 0%, #1a0f08 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.8);
}
.scn-xenophon-now-distressed .lantern {
  position: absolute; top: 30%; left: 50%;
  width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 50px 15px #ff8c00, 0 0 100px 30px rgba(255,140,0,0.3);
  animation: xnd-lantern 2s ease-in-out infinite alternate;
}
.scn-xenophon-now-distressed .table {
  position: absolute; bottom: 20%; left: 35%; width: 90px; height: 10px;
  background: linear-gradient(90deg, #5c4033 0%, #3e2723 50%, #2c1a0e 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: xnd-table 15s ease-in-out infinite;
}
.scn-xenophon-now-distressed .figure-xenophon {
  position: absolute; bottom: 18%; left: 40%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #5c4033 0%, #2c1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xnd-figure 4s ease-in-out infinite;
}
.scn-xenophon-now-distressed .figure-proxenus {
  position: absolute; bottom: 18%; right: 35%;
  width: 16px; height: 38px;
  background: linear-gradient(180deg, #6b4c3b 0%, #3e2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xnd-figure 4.5s ease-in-out infinite reverse;
}
@keyframes xnd-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes xnd-lantern {
  0% { box-shadow: 0 0 30px 10px #ff8c00, 0 0 60px 20px rgba(255,140,0,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 60px 20px #ffa500, 0 0 120px 40px rgba(255,165,0,0.4); opacity: 1; }
  100% { box-shadow: 0 0 40px 15px #ff8c00, 0 0 80px 30px rgba(255,140,0,0.25); opacity: 0.85; }
}
@keyframes xnd-table {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.02) translateY(-1px); }
}
@keyframes xnd-figure {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(2px) rotate(1deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* Scene: xenophon-dream-interpretation (dark, tense, great light) */
.scn-xenophon-dream-interpretation {
  background:
    linear-gradient(180deg, #0b0c10 0%, #1a1a2e 50%, #0f0f1a 100%),
    radial-gradient(ellipse at 40% 30%, #4a4a7a 0%, transparent 60%);
}
.scn-xenophon-dream-interpretation .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0b0c10 100%);
  animation: xdi-bg 8s ease-in-out infinite alternate;
}
.scn-xenophon-dream-interpretation .ray {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(255,215,0,0.4) 50%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%);
  box-shadow: 0 0 100px 50px rgba(255,215,0,0.6);
  animation: xdi-ray 3s ease-in-out infinite alternate;
}
.scn-xenophon-dream-interpretation .fire {
  position: absolute; bottom: 20%; left: 45%;
  width: 40px; height: 60px;
  background: radial-gradient(circle at 50% 100%, #ff4500 0%, #ffa500 40%, #ffd700 70%, transparent 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 80px 30px #ff4500, 0 0 160px 60px rgba(255,69,0,0.3);
  animation: xdi-fire 1.5s ease-in-out infinite alternate;
}
.scn-xenophon-dream-interpretation .figure {
  position: absolute; bottom: 25%; left: 40%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xdi-figure 2s ease-in-out infinite;
}
.scn-xenophon-dream-interpretation .sparks {
  position: absolute; bottom: 45%; left: 45%; width: 100%;
  height: 200px;
  background: radial-gradient(circle at 10% 20%, #ffa500 0%, transparent 50%),
              radial-gradient(circle at 60% 40%, #ff4500 0%, transparent 40%),
              radial-gradient(circle at 80% 10%, #ffd700 0%, transparent 30%);
  filter: blur(4px);
  animation: xdi-sparks 0.8s ease-in-out infinite alternate;
}
@keyframes xdi-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes xdi-ray {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.5; transform: scaleY(0.95); }
}
@keyframes xdi-fire {
  0% { transform: scaleY(0.8) rotate(-2deg); opacity: 0.9; }
  50% { transform: scaleY(1.2) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(0.9) rotate(-1deg); opacity: 0.95; }
}
@keyframes xdi-figure {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-5px) rotate(5deg); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes xdi-sparks {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 1; }
  100% { transform: translateY(0) scale(0.8); opacity: 0.3; }
}

/* Scene: xenophon-self-awakening (dark, tense, night rising) */
.scn-xenophon-self-awakening {
  background:
    linear-gradient(180deg, #0a0b1a 0%, #1a1a2e 30%, #0f0f1a 70%, #05060a 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 60%);
}
.scn-xenophon-self-awakening .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0b1a 0%, #1a1a2e 50%, #0f0f1a 100%);
  animation: xsa-bg 12s ease-in-out infinite alternate;
}
.scn-xenophon-self-awakening .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0b1a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-xenophon-self-awakening .embers {
  position: absolute; bottom: 15%; left: 30%;
  width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #ff6347 0%, #ffa07a 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ff6347, 0 0 60px 20px rgba(255,99,71,0.2);
  animation: xsa-embers 3s ease-in-out infinite alternate;
}
.scn-xenophon-self-awakening .figure-prone {
  position: absolute; bottom: 10%; left: 35%;
  width: 60px; height: 20px;
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0f08 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: xsa-prone 6s ease-in-out infinite;
}
.scn-xenophon-self-awakening .figure-rising {
  position: absolute; bottom: 15%; left: 38%;
  width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a2210 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0;
  transform-origin: bottom center;
  animation: xsa-rising 6s ease-in-out infinite;
}
.scn-xenophon-self-awakening .shadows {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  animation: xsa-shadows 8s ease-in-out infinite alternate;
}
@keyframes xsa-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes xsa-embers {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes xsa-prone {
  0%, 100% { transform: rotate(0deg) scaleX(1); opacity: 1; }
  40% { transform: rotate(-5deg) scaleX(1.1); opacity: 1; }
  50% { transform: rotate(0deg) scaleX(0.9); opacity: 0; }
  60% { transform: rotate(5deg) scaleX(1); opacity: 0; }
  100% { transform: rotate(0deg) scaleX(1); opacity: 1; }
}
@keyframes xsa-rising {
  0%, 40% { opacity: 0; transform: translateY(10px) scale(0.8); }
  50% { opacity: 1; transform: translateY(0) scale(1); }
  60%, 100% { opacity: 1; transform: translateY(-5px) scale(1.02); }
}
@keyframes xsa-shadows {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

.scn-xenophon-reveals-accusations {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a5e 70%, #6a5a4e 100%),
              radial-gradient(ellipse at 50% 80%, #b08060 0%, transparent 60%);
}
.scn-xenophon-reveals-accusations .sky   { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #3a3a5e 0%, #5a5a7e 40%, #7a6a5e 70%, #a08060 100%); animation: xr-sky 8s ease-in-out infinite alternate; }
.scn-xenophon-reveals-accusations .hills { position:absolute; bottom:40%; left:0; right:0; height:18%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 90% 80% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: xr-hills 14s ease-in-out infinite alternate; }
.scn-xenophon-reveals-accusations .ground{ position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-xenophon-reveals-accusations .figure-left{ position:absolute; bottom:30%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xr-gesture 5s ease-in-out infinite; }
.scn-xenophon-reveals-accusations .figure-right{ position:absolute; bottom:30%; right:30%; width:18px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xr-cower 4s ease-in-out infinite; }
.scn-xenophon-reveals-accusations .sun   { position:absolute; bottom:52%; left:60%; width:30px; height:30px; background: radial-gradient(circle, #e0b060 0%, #a08040 50%, transparent 80%); border-radius:50%; filter: blur(4px); animation: xr-sunrise 20s ease-in-out infinite alternate; }
.scn-xenophon-reveals-accusations .shadow-left{ position:absolute; bottom:0; left:28%; width:40px; height:80px; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); transform-origin: top center; animation: xr-shadow 5s ease-in-out infinite; }

@keyframes xr-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes xr-hills  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes xr-gesture{ 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(15deg) translateY(-2px) } 70% { transform: rotate(-5deg) translateY(0) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes xr-cower  { 0% { transform: scale(1) translateY(0) } 25% { transform: scale(.9) translateY(2px) } 75% { transform: scale(1.05) translateY(-1px) } 100% { transform: scale(1) translateY(0) } }
@keyframes xr-sunrise{ 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes xr-shadow { 0% { transform: scaleY(.8) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(.9) } }

.scn-xenophon-contrasts-present {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a5e 70%, #6a5a4e 100%),
              radial-gradient(ellipse at 50% 100%, #7a6a5a 0%, transparent 70%);
}
.scn-xenophon-contrasts-present .sky  { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a3a5e 0%, #5a5a7e 40%, #8a7a6a 100%); animation: xc-sky 10s ease-in-out infinite alternate; }
.scn-xenophon-contrasts-present .tent { position:absolute; top:10%; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: xc-tent 12s ease-in-out infinite alternate; }
.scn-xenophon-contrasts-present .ground{ position:absolute; bottom:0; left:0; right:0; height:52%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-xenophon-contrasts-present .figure-standing{ position:absolute; bottom:32%; left:32%; width:18px; height:52px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xc-tremble 4s ease-in-out infinite; }
.scn-xenophon-contrasts-present .figure-seated{ position:absolute; bottom:30%; right:30%; width:22px; 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: xc-lean 6s ease-in-out infinite; }
.scn-xenophon-contrasts-present .table  { position:absolute; bottom:34%; left:45%; width:50px; height:4px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: xc-table 8s ease-in-out infinite alternate; }
.scn-xenophon-contrasts-present .lamp  { position:absolute; bottom:39%; left:52%; width:6px; height:8px; background: radial-gradient(circle, #c08040 0%, #a06020 60%); border-radius:50%; box-shadow: 0 0 16px 4px #a06020, 0 0 32px 10px rgba(160,96,32,.4); animation: xc-lamp 3s ease-in-out infinite alternate; }

@keyframes xc-sky   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes xc-tent  { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1) } }
@keyframes xc-tremble{ 0% { transform: rotate(0deg) translateY(0) } 20% { transform: rotate(2deg) translateY(-1px) } 40% { transform: rotate(-1deg) translateY(1px) } 60% { transform: rotate(3deg) translateY(-2px) } 80% { transform: rotate(-2deg) translateY(0) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes xc-lean  { 0% { transform: rotate(0deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(0deg) } }
@keyframes xc-table { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes xc-lamp  { 0% { box-shadow: 0 0 12px 2px #a06020, 0 0 24px 6px rgba(160,96,32,.3); opacity:.8 } 50% { box-shadow: 0 0 24px 8px #d0a060, 0 0 48px 14px rgba(208,160,96,.5); opacity:1 } 100% { box-shadow: 0 0 16px 4px #a06020, 0 0 32px 10px rgba(160,96,32,.35); opacity:.9 } }

.scn-seuthes-curses-heraclides {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a3a5e 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a5a 0%, transparent 70%);
}
.scn-seuthes-curses-heraclides .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-seuthes-curses-heraclides .window { position:absolute; top:25%; left:15%; width:40px; height:50px; background: linear-gradient(180deg, #5a5a7e 0%, #7a7a9e 40%, #9a8a7e 100%); border-radius: 4px 4px 20px 20px; box-shadow: inset 0 0 20px rgba(200,180,160,.3); animation: sh-window 8s ease-in-out infinite alternate; }
.scn-seuthes-curses-heraclides .figure-seuthes{ position:absolute; bottom:30%; right:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-arm 5s ease-in-out infinite; }
.scn-seuthes-curses-heraclides .figure-heraclides{ position:absolute; bottom:30%; left:30%; width:16px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-cower 4s ease-in-out infinite; }
.scn-seuthes-curses-heraclides .pillar { position:absolute; bottom:0; left:50%; width:8px; height:100%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); box-shadow: 0 0 6px rgba(0,0,0,.4); animation: sh-pillar 10s ease-in-out infinite alternate; }
.scn-seuthes-curses-heraclides .floor-shadow{ position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); animation: sh-shadow 5s ease-in-out infinite; }

@keyframes sh-window { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sh-arm    { 0% { transform: rotate(0deg) } 20% { transform: rotate(-30deg) translateY(-4px) } 40% { transform: rotate(10deg) translateY(-1px) } 60% { transform: rotate(-20deg) translateY(-3px) } 80% { transform: rotate(5deg) translateY(0) } 100% { transform: rotate(0deg) } }
@keyframes sh-cower  { 0% { transform: scale(1) translateY(0) } 25% { transform: scale(.85) translateY(3px) } 75% { transform: scale(1.1) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes sh-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(.96) } 100% { transform: scaleY(1) } }
@keyframes sh-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-seuthes-offers-stay {
  background: linear-gradient(180deg, #3a2a4e 0%, #5a4a6e 30%, #7a6a5e 60%, #9a8a7e 100%),
              radial-gradient(ellipse at 50% 80%, #c0a060 0%, transparent 60%);
}
.scn-seuthes-offers-stay .sky  { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5a4a6e 0%, #7a6a7e 30%, #9a8a7e 60%, #c0a060 100%); animation: so-sky 12s ease-in-out infinite alternate; }
.scn-seuthes-offers-stay .hills { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a6a4a 0%, #3a5a3a 100%); border-radius: 50% 50% 0 0 / 70% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); animation: so-hills 18s ease-in-out infinite alternate; }
.scn-seuthes-offers-stay .ground{ position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-seuthes-offers-stay .figure-left{ position:absolute; bottom:30%; left:32%; width:18px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: so-handshake 6s ease-in-out infinite; }
.scn-seuthes-offers-stay .figure-right{ position:absolute; bottom:30%; right:32%; width:18px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: so-handshake 6s ease-in-out infinite reverse; }
.scn-seuthes-offers-stay .fire { position:absolute; bottom:35%; left:47%; width:14px; height:20px; background: radial-gradient(circle, #ffc080 0%, #c06020 60%, transparent 90%); border-radius:50%; filter: blur(3px); box-shadow: 0 0 30px 10px #c06020; animation: so-fire 3s ease-in-out infinite alternate; }
.scn-seuthes-offers-stay .tent { position:absolute; top:12%; left:30%; right:30%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); animation: so-tent 14s ease-in-out infinite alternate; }

@keyframes so-sky   { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes so-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes so-handshake{ 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(10px) rotate(5deg) } 70% { transform: translateX(5px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes so-fire  { 0% { transform: scale(1) opacity:.8 } 50% { transform: scale(1.2) opacity:1 } 100% { transform: scale(.9) opacity:.7 } }
@keyframes so-tent  { 0% { transform: scaleY(1) } 50% { transform: scaleY(.94) } 100% { transform: scaleY(1) } }

/* Scene 1: xenophon-presents-options */
.scn-xenophon-presents-options {
  background: linear-gradient(180deg, #f9eab0 0%, #a8d8ea 40%, #5a8cbf 70%, #3a6f8f 100%),
              radial-gradient(ellipse at 70% 30%, #ffe082 0%, transparent 50%);
}
.scn-xenophon-presents-options .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, rgba(255,235,170,0.9) 0%, rgba(135,206,235,0.3) 100%);
  animation: xpo-sky 14s ease-in-out infinite alternate;
}
.scn-xenophon-presents-options .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a6f8f 0%, #1a4f6f 50%, #0a2f4f 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: xpo-sea 8s ease-in-out infinite;
}
.scn-xenophon-presents-options .mountain-l {
  position: absolute; bottom: 48%; left: -5%; width: 55%; height: 35%;
  background: linear-gradient(135deg, #8b7355 0%, #6b5340 100%);
  border-radius: 50% 20% 0 0 / 100% 40% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  transform: skewX(-5deg);
  animation: xpo-mtn 20s ease-in-out infinite alternate;
}
.scn-xenophon-presents-options .mountain-r {
  position: absolute; bottom: 45%; right: -8%; width: 50%; height: 40%;
  background: linear-gradient(225deg, #7a6345 0%, #5a4325 100%);
  border-radius: 20% 50% 0 0 / 40% 100% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  transform: skewX(5deg);
  animation: xpo-mtn 22s ease-in-out infinite alternate-reverse;
}
.scn-xenophon-presents-options .ship-1 {
  position: absolute; bottom: 38%; left: 22%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #543a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: xpo-ship 5s ease-in-out infinite alternate;
}
.scn-xenophon-presents-options .ship-2 {
  position: absolute; bottom: 35%; right: 18%; width: 50px; height: 22px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: xpo-ship2 6s ease-in-out infinite alternate;
}
.scn-xenophon-presents-options .figure {
  position: absolute; bottom: 50%; left: 45%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: center bottom;
  animation: xpo-fig 4s ease-in-out infinite;
}
@keyframes xpo-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes xpo-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(1.02); } 100% { transform: translateY(-1px) scaleY(0.98); } }
@keyframes xpo-mtn { 0% { transform: skewX(-5deg) translateX(0); } 50% { transform: skewX(-4deg) translateX(3px); } 100% { transform: skewX(-6deg) translateX(-2px); } }
@keyframes xpo-ship { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(-4px) rotate(2deg); } }
@keyframes xpo-ship2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(3px) rotate(-2deg); } }
@keyframes xpo-fig { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(1px) rotate(-1deg); } 75% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }

/* Scene 2: xenophon-advises-march */
.scn-xenophon-advises-march {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8b297 30%, #8a7355 70%, #5a4020 100%),
              radial-gradient(ellipse at 20% 40%, #f0d080 0%, transparent 60%);
}
.scn-xenophon-advises-march .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #fbe5b0 0%, #d4c4a0 40%, #a09070 100%);
  animation: xam-sky 16s ease-in-out infinite alternate;
}
.scn-xenophon-advises-march .cliff-bg {
  position: absolute; bottom: 30%; left: 0; right: 60%; height: 50%;
  background: linear-gradient(135deg, #7a6345 0%, #4a3a2a 100%);
  border-radius: 0 60% 0 0 / 0 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: xam-cliff 12s ease-in-out infinite alternate;
}
.scn-xenophon-advises-march .cliff-fg {
  position: absolute; bottom: 20%; right: 0; left: 50%; height: 60%;
  background: linear-gradient(225deg, #6a5335 0%, #3a2a1a 100%);
  border-radius: 60% 0 0 0 / 40% 0 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: xam-cliff2 14s ease-in-out infinite alternate-reverse;
}
.scn-xenophon-advises-march .path {
  position: absolute; bottom: 20%; left: 38%; right: 35%; height: 10%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 30% 30% 0 0;
  transform: rotate(-5deg);
  animation: xam-path 8s ease-in-out infinite;
}
.scn-xenophon-advises-march .figure-speaker {
  position: absolute; bottom: 18%; left: 44%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: xam-speak 3s ease-in-out infinite;
}
.scn-xenophon-advises-march .figure-audience {
  position: absolute; bottom: 18%; right: 20%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  animation: xam-aud 4s ease-in-out infinite;
}
@keyframes xam-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes xam-cliff { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.02); } 100% { transform: translateX(-2px) scaleY(0.98); } }
@keyframes xam-cliff2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.02); } 100% { transform: translateX(2px) scaleY(0.98); } }
@keyframes xam-path { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(0); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes xam-speak { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes xam-aud { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }

/* Scene 3: march-to-seuthes */
.scn-march-to-seuthes {
  background: linear-gradient(180deg, #fceabb 0%, #f8b500 30%, #e0a800 60%, #b08040 100%),
              radial-gradient(ellipse at 50% 30%, #ffe080 0%, transparent 50%);
}
.scn-march-to-seuthes .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fcedc0 0%, #f8d080 40%, #d0a050 100%);
  animation: xms-sky 20s ease-in-out infinite alternate;
}
.scn-march-to-seuthes .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #806030 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: xms-gnd 18s ease-in-out infinite;
}
.scn-march-to-seuthes .sun {
  position: absolute; top: 18%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #f8c040 40%, #e0a020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,64,0.6);
  animation: xms-sun 12s ease-in-out infinite alternate;
}
.scn-march-to-seuthes .leader {
  position: absolute; bottom: 28%; left: 30%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: xms-lead 4s ease-in-out infinite;
}
.scn-march-to-seuthes .column {
  position: absolute; bottom: 28%; left: 38%; right: 20%; height: 24px;
  background: repeating-linear-gradient(90deg, 
    #3a2a1a 0px, #3a2a1a 8px,
    transparent 8px, transparent 16px
  );
  background-size: 16px 100%;
  mask: linear-gradient(90deg, transparent 0%, black 10%, black 90%, transparent 100%);
  -webkit-mask: linear-gradient(90deg, transparent 0%, black 10%, black 90%, transparent 100%);
  animation: xms-col 6s ease-in-out infinite;
}
.scn-march-to-seuthes .dust {
  position: absolute; bottom: 20%; left: 25%; right: 40%; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,160,100,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: xms-dust 10s ease-in-out infinite alternate;
}
@keyframes xms-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes xms-gnd { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes xms-sun { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(0.98); } }
@keyframes xms-lead { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(6px) rotate(0); } 50% { transform: translateX(12px) rotate(1deg); } 75% { transform: translateX(6px) rotate(0); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes xms-col { 0% { background-position: 0 0; } 100% { background-position: -16px 0; } }
@keyframes xms-dust { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(-5px) scaleX(0.9); } }

/* Scene 4: xenophon-tells-seuthes-intent */
.scn-xenophon-tells-seuthes-intent {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8b297 50%, #8a7355 100%),
              radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-xenophon-tells-seuthes-intent .sky-open {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fcedc0 0%, #d4c4a0 100%);
  clip-path: polygon(10% 0, 90% 0, 80% 100%, 20% 100%);
  animation: xts-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-tells-seuthes-intent .ground-inside {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: xts-gnd 14s ease-in-out infinite;
}
.scn-xenophon-tells-seuthes-intent .tent-pole-l {
  position: absolute; bottom: 40%; left: 25%; width: 4px; height: 50%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: xts-pole 10s ease-in-out infinite alternate;
}
.scn-xenophon-tells-seuthes-intent .tent-pole-r {
  position: absolute; bottom: 40%; right: 25%; width: 4px; height: 50%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: xts-pole 10s ease-in-out infinite alternate-reverse;
}
.scn-xenophon-tells-seuthes-intent .xenophon {
  position: absolute; bottom: 12%; left: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: xts-xen 6s ease-in-out infinite;
}
.scn-xenophon-tells-seuthes-intent .seuthes {
  position: absolute; bottom: 12%; right: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: xts-seu 6s ease-in-out infinite alternate;
}
@keyframes xts-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes xts-gnd { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(-1px); } }
@keyframes xts-pole { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-11deg) scaleY(1.02); } 100% { transform: rotate(-9deg) scaleY(0.98); } }
@keyframes xts-xen { 0% { transform: rotate(0); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }
@keyframes xts-seu { 0% { transform: scaleX(-1) rotate(0); } 50% { transform: scaleX(-1) rotate(2deg); } 100% { transform: scaleX(-1) rotate(-2deg); } }

.scn-thynians-storm-houses { background: linear-gradient(180deg, #0d0d24 0%, #1a1a3a 40%, #2a1a2a 100%), radial-gradient(ellipse at 30% 100%, #3a2a1a 0%, transparent 70%); }
.scn-thynians-storm-houses .sky-storm { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 50%, #0a0a1a 100%); animation: th1-sky 20s ease-in-out infinite; }
.scn-thynians-storm-houses .clouds   { position:absolute; top:8%; left:0; width:100%; height:20%; background: repeating-linear-gradient(90deg, rgba(255,255,250,0.08) 0px, rgba(255,255,250,0.02) 40px); filter: blur(8px); animation: th1-clouds 35s linear infinite; }
.scn-thynians-storm-houses .hill     { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-thynians-storm-houses .house    { position:absolute; bottom:28%; left:20%; width:80px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 6% 6% 3% 3%; box-shadow: 0 6px 12px rgba(0,0,0,0.7); animation: th1-house 8s ease-in-out infinite; }
.scn-thynians-storm-houses .flame-1  { position:absolute; bottom:38%; left:22%; width:14px; height:22px; background: radial-gradient(circle at 50% 100%, #c8553d 0%, #8a2a1a 60%, transparent 80%); border-radius:50%; filter:blur(2px); animation: th1-flame 1.2s ease-in-out infinite alternate; }
.scn-thynians-storm-houses .flame-2  { position:absolute; bottom:36%; left:26%; width:10px; height:16px; background: radial-gradient(circle at 50% 100%, #d07040 0%, #9a3a1a 60%, transparent 80%); border-radius:50%; filter:blur(2px); animation: th1-flame 1.8s ease-in-out infinite alternate-reverse; }
.scn-thynians-storm-houses .spear    { position:absolute; bottom:42%; left:15%; width:4px; height:40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); transform-origin: bottom center; border-radius: 20% 20% 0 0; animation: th1-spear 3s ease-in-out infinite; }
@keyframes th1-sky   { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.05); } 100% { opacity:0.7; transform: scaleY(0.95); } }
@keyframes th1-clouds { 0% { transform: translateX(-30px); } 50% { transform: translateX(60vw); } 100% { transform: translateX(120vw); } }
@keyframes th1-house  { 0% { transform: translateY(0); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes th1-flame  { 0% { transform: scaleY(0.8) translateX(0); opacity:0.7; } 50% { transform: scaleY(1.2) translateX(3px); opacity:1; } 100% { transform: scaleY(0.9) translateX(-2px); opacity:0.8; } }
@keyframes th1-spear  { 0% { transform: rotate(-10deg); } 33% { transform: rotate(5deg); } 66% { transform: rotate(-5deg); } 100% { transform: rotate(-10deg); } }

.scn-xenophon-ignites-trumpet { background: linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 30%, #5a2a0a 70%, #2a0a0a 100%), radial-gradient(circle at 80% 30%, #c8553d 0%, transparent 50%); }
.scn-xenophon-ignites-trumpet .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a0a 100%); border-radius: 0 0 10% 10%; }
.scn-xenophon-ignites-trumpet .floor   { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.8); }
.scn-xenophon-ignites-trumpet .flames  { position:absolute; bottom:40%; left:30%; width:50%; height:30%; background: repeating-linear-gradient(0deg, #d07040 0px, #c8553d 10px, #a03a1a 20px); mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 70%); animation: xi2-flames 2s ease-in-out infinite alternate; }
.scn-xenophon-ignites-trumpet .figure  { position:absolute; bottom:22%; left:40%; width:20px; height:35px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: xi2-figure 4s ease-in-out infinite; }
.scn-xenophon-ignites-trumpet .shield  { position:absolute; bottom:26%; left:44%; width:16px; height:20px; background: radial-gradient(circle at 40% 40%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; border: 2px solid #7a6a4a; box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: xi2-shield 5s ease-in-out infinite alternate; }
.scn-xenophon-ignites-trumpet .trumpet { position:absolute; bottom:30%; left:36%; width:4px; height:18px; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); transform: rotate(10deg); transform-origin: bottom center; border-radius: 20% 20% 0 0; animation: xi2-trumpet 2s ease-in-out infinite; }
.scn-xenophon-ignites-trumpet .smoke   { position:absolute; top:5%; left:20%; width:30%; height:30%; background: radial-gradient(ellipse, rgba(150,130,100,0.25) 0%, transparent 70%); filter: blur(10px); animation: xi2-smoke 10s ease-in-out infinite alternate; }
@keyframes xi2-flames  { 0% { transform: scaleY(0.9); opacity:0.8; } 50% { transform: scaleY(1.15); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.85; } }
@keyframes xi2-figure  { 0% { transform: translateY(0) rotate(-2deg); } 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 xi2-shield  { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(4px) rotate(5deg); } 66% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes xi2-trumpet { 0% { transform: rotate(5deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(5deg); } }
@keyframes xi2-smoke   { 0% { transform: translateX(-10px) scale(1); opacity:0.4; } 50% { transform: translateX(20px) scale(1.2); opacity:0.6; } 100% { transform: translateX(-5px) scale(0.9); opacity:0.3; } }

.scn-thracians-flee { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0a0a0a 100%), radial-gradient(ellipse at 70% 100%, #1a2a1a 0%, transparent 60%); }
.scn-thracians-flee .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #2a2a4a 80%, #1a1a2a 100%); animation: tf3-sky 30s ease-in-out infinite; }
.scn-thracians-flee .moon      { position:absolute; top:12%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #e0e0e0 0%, #a0a0b0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(200,200,220,0.3); animation: tf3-moon 60s linear infinite; }
.scn-thracians-flee .stockade  { position:absolute; bottom:30%; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 16px); border-bottom: 4px solid #2a1a0a; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-thracians-flee .fleeing-fig-1 { position:absolute; bottom:28%; left:20%; width:14px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tf3-run 4s ease-in-out infinite; }
.scn-thracians-flee .fleeing-fig-2 { position:absolute; bottom:30%; left:45%; width:14px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tf3-run 5s ease-in-out infinite alternate; animation-delay: 2s; }
.scn-thracians-flee .shield-thrown { position:absolute; bottom:38%; left:60%; width:10px; height:14px; background: radial-gradient(circle at 40% 40%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; border:1px solid #7a6a4a; animation: tf3-shield 3s ease-in-out infinite; }
.scn-thracians-flee .ground    { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%); border-top: 2px solid #2a3a2a; }
@keyframes tf3-sky   { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes tf3-moon  { 0% { transform: translateX(0); } 25% { transform: translateX(10px); } 50% { transform: translateX(-5px); } 75% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes tf3-run   { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(6px) rotate(-3deg) scaleY(1.05); } 40% { transform: translateX(12px) rotate(2deg); } 60% { transform: translateX(18px) rotate(-1deg); } 80% { transform: translateX(24px) rotate(3deg); } 100% { transform: translateX(30px) rotate(0); } }
@keyframes tf3-shield { 0% { transform: rotate(0) translateX(0); } 30% { transform: rotate(20deg) translateX(10px); opacity:1; } 60% { transform: rotate(-10deg) translateX(20px); opacity:0.8; } 100% { transform: rotate(0) translateX(30px); opacity:0; } }

.scn-relief-for-blazing-house { background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 30%, #2a0a0a 60%, #0a0a0a 100%), radial-gradient(ellipse at 50% 50%, #c8553d 0%, transparent 60%); }
.scn-relief-for-blazing-house .dark-sky   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); }
.scn-relief-for-blazing-house .blazing-house { position:absolute; bottom:20%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #3a1a0a 0%, #5a2a0a 40%, #7a3a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 0 30px 10px #a04a2a; animation: rh4-house 10s ease-in-out infinite; }
.scn-relief-for-blazing-house .flame-foreground { position:absolute; bottom:30%; left:46%; width:40%; height:40%; background: repeating-linear-gradient(0deg, #d07040 0px, #c8553d 10px, #9a3a1a 20px); mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 60%); animation: rh4-flame 1.5s ease-in-out infinite alternate; }
.scn-relief-for-blazing-house .relief-fig-left  { position:absolute; bottom:18%; left:15%; width:18px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rh4-figure 6s ease-in-out infinite; }
.scn-relief-for-blazing-house .relief-fig-right { position:absolute; bottom:18%; right:15%; width:18px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rh4-figure 7s ease-in-out infinite alternate; animation-delay: 3s; }
.scn-relief-for-blazing-house .javelin   { position:absolute; bottom:35%; left:28%; width:3px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); transform: rotate(30deg); transform-origin: bottom center; border-radius: 10% 10% 0 0; animation: rh4-javelin 2s ease-in-out infinite; }
.scn-relief-for-blazing-house .ground-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%); }
@keyframes rh4-house  { 0% { transform: translateX(-50%) scale(1); } 25% { transform: translateX(-50%) scale(1.03) rotate(1deg); } 50% { transform: translateX(-50%) scale(0.98); } 75% { transform: translateX(-50%) scale(1.02) rotate(-1deg); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes rh4-flame  { 0% { transform: scaleY(0.9); opacity:0.8; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.85; } }
@keyframes rh4-figure { 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 rh4-javelin { 0% { transform: rotate(20deg); } 30% { transform: rotate(40deg); } 60% { transform: rotate(25deg); } 100% { transform: rotate(20deg); } }

/* Scene: hellenes-ascend-mound */
.scn-hellenes-ascend-mound {
  background:
    linear-gradient(180deg, #f9e7b3 0%, #f6c97a 30%, #c8913e 60%, #6b4f2a 100%),
    radial-gradient(ellipse at 50% 100%, #ebc47f 0%, transparent 80%);
}
.scn-hellenes-ascend-mound .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8d4e3 0%, #f5e3b0 100%);
  animation: ha-sky-pulse 8s ease-in-out infinite alternate;
}
.scn-hellenes-ascend-mound .sun {
  position: absolute; top: 8%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff5cc 0%, #fbc84d 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(251,200,77,0.5), 0 0 80px 20px rgba(251,200,77,0.2);
  animation: ha-sun-glow 6s ease-in-out infinite alternate;
}
.scn-hellenes-ascend-mound .mound {
  position: absolute; bottom: 20%; left: 10%; right: 20%; height: 35%;
  background: linear-gradient(135deg, #8b6f42 0%, #5c452b 50%, #3e2e1b 100%);
  border-radius: 60% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: ha-mound-shift 14s ease-in-out infinite;
}
.scn-hellenes-ascend-mound .crest {
  position: absolute; bottom: 50%; left: 18%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #a78856 0%, #7d6138 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -8px 12px rgba(0,0,0,0.3);
  animation: ha-crest-fade 10s ease-in-out infinite alternate;
}
.scn-hellenes-ascend-mound .figure-a {
  position: absolute; bottom: 33%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a2218 0%, #14100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ha-march-a 7s ease-in-out infinite;
}
.scn-hellenes-ascend-mound .figure-b {
  position: absolute; bottom: 35%; left: 38%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a2218 0%, #14100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ha-march-b 7s ease-in-out infinite 1s;
}
.scn-hellenes-ascend-mound .shadow-cast {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: ha-shadow-pulse 6s ease-in-out infinite alternate;
}
@keyframes ha-sky-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ha-sun-glow {
  0% { box-shadow: 0 0 30px 8px rgba(251,200,77,0.4), 0 0 60px 15px rgba(251,200,77,0.15); transform: scale(0.95); }
  50% { box-shadow: 0 0 50px 12px rgba(251,200,77,0.7), 0 0 100px 25px rgba(251,200,77,0.3); transform: scale(1); }
  100% { box-shadow: 0 0 35px 10px rgba(251,200,77,0.5), 0 0 70px 18px rgba(251,200,77,0.2); transform: scale(0.97); }
}
@keyframes ha-mound-shift {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(0.98); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ha-crest-fade {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ha-march-a {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes ha-march-b {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(6px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(12px) translateY(0) rotate(2deg); }
  75% { transform: translateX(18px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(24px) translateY(0) rotate(-1deg); }
}
@keyframes ha-shadow-pulse {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}

/* Scene: sun-sets-no-cyrus */
.scn-sun-sets-no-cyrus {
  background:
    linear-gradient(180deg, #2c3e50 0%, #34495e 25%, #5d6d7e 50%, #a3b1c6 75%, #d4c8a0 100%),
    radial-gradient(ellipse at 50% 100%, #d4c8a0 0%, transparent 80%);
}
.scn-sun-sets-no-cyrus .fade-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2632 0%, #3b4d61 40%, #8a9baa 100%);
  animation: ss-sky-fade 12s ease-in-out infinite alternate;
}
.scn-sun-sets-no-cyrus .setting-sun {
  position: absolute; bottom: 42%; left: 20%; width: 44px; height: 44px;
  background: radial-gradient(circle, #f7d794 0%, #e5a647 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(229,166,71,0.4), 0 0 100px 40px rgba(229,166,71,0.2);
  animation: ss-sun-dip 20s ease-in-out infinite alternate;
}
.scn-sun-sets-no-cyrus .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 0%, #2d3b4a 30%, #5a6b7c 70%, transparent 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ss-horizon-shift 15s ease-in-out infinite alternate;
}
.scn-sun-sets-no-cyrus .rider {
  position: absolute; bottom: 38%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ss-rider-gallop 2s ease-in-out infinite;
}
.scn-sun-sets-no-cyrus .rider-shadow {
  position: absolute; bottom: 34%; left: 52%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(3px);
  animation: ss-shadow-stretch 2s ease-in-out infinite;
}
.scn-sun-sets-no-cyrus .dust-plume {
  position: absolute; bottom: 35%; left: 40%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 30% 100%, rgba(200,180,150,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: ss-dust-drift 8s ease-in-out infinite alternate;
}
@keyframes ss-sky-fade {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes ss-sun-dip {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(10px) scale(0.9); opacity: 0.7; }
  100% { transform: translateY(20px) scale(0.8); opacity: 0.4; }
}
@keyframes ss-horizon-shift {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes ss-rider-gallop {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-3px) rotate(5deg); }
  50% { transform: translateX(10px) translateY(0) rotate(0deg); }
  75% { transform: translateX(15px) translateY(-2px) rotate(-5deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes ss-shadow-stretch {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}
@keyframes ss-dust-drift {
  0% { transform: translateX(-10px) scaleY(1); opacity: 0.4; }
  50% { transform: translateX(20px) scaleY(1.4); opacity: 0.7; }
  100% { transform: translateX(-5px) scaleY(0.8); opacity: 0.3; }
}

/* Scene: return-to-camp */
.scn-return-to-camp {
  background:
    linear-gradient(180deg, #0d1b2a 0%, #1b2838 40%, #2c3e50 70%, #3e4f5f 100%),
    radial-gradient(ellipse at 50% 100%, #2c3e50 0%, transparent 80%);
}
.scn-return-to-camp .dark-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #09111a 0%, #1a2632 100%);
  animation: rc-sky-twinkle 20s ease-in-out infinite;
}
.scn-return-to-camp .far-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #25333d 0%, #1a242c 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: rc-ground-swell 16s ease-in-out infinite alternate;
}
.scn-return-to-camp .tent-left {
  position: absolute; bottom: 18%; left: 25%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3b4a5a 0%, #1d2a36 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rc-tent-sway 8s ease-in-out infinite;
}
.scn-return-to-camp .tent-right {
  position: absolute; bottom: 20%; right: 20%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #3b4a5a 0%, #1d2a36 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rc-tent-sway 10s ease-in-out infinite 2s;
}
.scn-return-to-camp .soldier-a {
  position: absolute; bottom: 14%; left: 35%; width: 12px; height: 26px;
  background: linear-gradient(180deg, #141e2a 0%, #0a1018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rc-walk-a 6s ease-in-out infinite;
}
.scn-return-to-camp .soldier-b {
  position: absolute; bottom: 15%; left: 42%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #141e2a 0%, #0a1018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rc-walk-b 6s ease-in-out infinite 1.5s;
}
.scn-return-to-camp .campfire-glow {
  position: absolute; bottom: 18%; left: 50%; width: 26px; height: 26px;
  background: radial-gradient(circle, #e68a3a 0%, #b85a1a 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(230,138,58,0.3), 0 0 80px 20px rgba(230,138,58,0.1);
  animation: rc-fire-flicker 3s ease-in-out infinite alternate;
}
@keyframes rc-sky-twinkle {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes rc-ground-swell {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes rc-tent-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes rc-walk-a {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes rc-walk-b {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(1deg); }
  75% { transform: translateX(12px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes rc-fire-flicker {
  0% { box-shadow: 0 0 30px 8px rgba(230,138,58,0.2), 0 0 60px 15px rgba(230,138,58,0.1); transform: scale(0.95); }
  50% { box-shadow: 0 0 50px 12px rgba(230,138,58,0.4), 0 0 100px 25px rgba(230,138,58,0.2); transform: scale(1); }
  100% { box-shadow: 0 0 35px 10px rgba(230,138,58,0.3), 0 0 70px 18px rgba(230,138,58,0.15); transform: scale(0.98); }
}

/* Scene: wagons-plundered */
.scn-wagons-plundered {
  background:
    linear-gradient(180deg, #0a0e14 0%, #121a24 30%, #1a2533 60%, #0f141c 100%),
    radial-gradient(ellipse at 50% 100%, #1a2533 0%, transparent 80%);
}
.scn-wagons-plundered .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #060b12 0%, #0f1a24 100%);
  animation: wp-sky-dim 18s ease-in-out infinite alternate;
}
.scn-wagons-plundered .rubble-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1f26 0%, #0d1117 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: wp-ground-shift 20s ease-in-out infinite;
}
.scn-wagons-plundered .wagon-broken {
  position: absolute; bottom: 22%; left: 30%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #2e3a47 0%, #1c262f 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: wp-wagon-tilt 14s ease-in-out infinite;
}
.scn-wagons-plundered .wagon-wheel {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #3b4a5a 30%, #1c262f 60%, transparent 100%);
  border: 2px solid #1c262f;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: wp-wheel-spin 8s linear infinite;
}
.scn-wagons-plundered .scattered-plank {
  position: absolute; bottom: 16%; left: 55%; width: 40px; height: 6px;
  background: #2e3a47;
  border-radius: 2px;
  transform: rotate(35deg);
  box-shadow: 0 1px 2px rgba(0,0,0,0.3);
  animation: wp-plank-slide 12s ease-in-out infinite alternate;
}
.scn-wagons-plundered .dark-figure {
  position: absolute; bottom: 24%; left: 60%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #121a24 0%, #080c12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: wp-figure-peek 10s ease-in-out infinite;
}
@keyframes wp-sky-dim {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}
@keyframes wp-ground-shift {
  0% { transform: translateY(0); }
  50% { transform: translateY(1px); }
  100% { transform: translateY(-1px); }
}
@keyframes wp-wagon-tilt {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes wp-wheel-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes wp-plank-slide {
  0% { transform: rotate(35deg) translateX(0); }
  50% { transform: rotate(40deg) translateX(5px); }
  100% { transform: rotate(30deg) translateX(-3px); }
}
@keyframes wp-figure-peek {
  0% { transform: translateX(0) scaleY(1); opacity: 0.7; }
  50% { transform: translateX(8px) scaleY(0.9); opacity: 0.4; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.8; }
}

/* deep-snow-cold */
.scn-deep-snow-cold { background: linear-gradient(180deg, #7a8b9a 0%, #9aabb8 30%, #bcc1c9 70%, #d4d8dd 100%), radial-gradient(ellipse at 50% 0%, #9aabb8 0%, transparent 60%); }
.scn-deep-snow-cold .dsc-sky     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a9baa 0%, #bcc1c9 100%); animation: dsc-skyglare 12s ease-in-out infinite alternate; }
.scn-deep-snow-cold .dsc-ground  { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #d4d8dd 0%, #e8ebef 100%); border-radius: 30% 70% 0 0 / 60% 90% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.15); }
.scn-deep-snow-cold .dsc-hills   { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b7c8a 0%, #4a5b69 100%); border-radius: 50% 60% 0 0 / 80% 70% 0 0; animation: dsc-hills 18s ease-in-out infinite alternate; }
.scn-deep-snow-cold .dsc-rider   { position:absolute; bottom:28%; left:35%; width:16px; height:24px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: dsc-ride 3s ease-in-out infinite; }
.scn-deep-snow-cold .dsc-horse   { position:absolute; bottom:26%; left:33%; width:28px; height:16px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: center; animation: dsc-horse 2.5s ease-in-out infinite; }
.scn-deep-snow-cold .dsc-snow-1  { position:absolute; top:10%; left:0; width:4px; height:4px; background: #ffffff; border-radius:50%; box-shadow: 0 0 4px #fff; animation: dsc-fall1 6s linear infinite; }
.scn-deep-snow-cold .dsc-snow-2  { position:absolute; top:20%; left:80%; width:3px; height:3px; background: #ffffff; border-radius:50%; animation: dsc-fall2 8s linear infinite; animation-delay: -3s; }
.scn-deep-snow-cold .dsc-foxcap  { position:absolute; bottom:49%; left:35%; width:12px; height:8px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; transform: rotate(10deg); animation: dsc-cap 4s ease-in-out infinite; }
@keyframes dsc-skyglare { 0%,100% { opacity:.7 } 50% { opacity:.95 } }
@keyframes dsc-hills    { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes dsc-ride     { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) translateY(-1px) } 50% { transform: translateX(4px) rotate(0) translateY(0) } 75% { transform: translateX(2px) rotate(-.5deg) } }
@keyframes dsc-horse    { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(.95) translateY(1px) } }
@keyframes dsc-fall1    { 0% { transform: translateY(-10vh) translateX(0) } 100% { transform: translateY(110vh) translateX(20vw) } }
@keyframes dsc-fall2    { 0% { transform: translateY(-10vh) translateX(0) } 100% { transform: translateY(110vh) translateX(-15vw) } }
@keyframes dsc-cap      { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(14deg) } }

/* seuthes-threatens-hills */
.scn-seuthes-threatens-hills { background: linear-gradient(180deg, #2a2a2a 0%, #3a3a2a 30%, #4a4a3a 70%, #3a3a2a 100%), radial-gradient(ellipse at 30% 100%, #4a4a3a 0%, transparent 60%); }
.scn-seuthes-threatens-hills .sth-sky     { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a1a 0%, #3a3a2a 100%); animation: sth-sky 20s ease-in-out infinite alternate; }
.scn-seuthes-threatens-hills .sth-hills   { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: sth-hills 14s ease-in-out infinite alternate; }
.scn-seuthes-threatens-hills .sth-village { position:absolute; bottom:25%; right:15%; width:60px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:15% 15% 5% 5%; box-shadow: 0 0 10px #4a3a2a; animation: sth-village 6s ease-in-out infinite; }
.scn-seuthes-threatens-hills .sth-smoke-1 { position:absolute; bottom:35%; right:18%; width:12px; height:30px; background: linear-gradient(180deg, rgba(100,90,80,.4) 0%, transparent 100%); border-radius:50%; filter: blur(5px); animation: sth-smoke1 8s ease-in-out infinite; }
.scn-seuthes-threatens-hills .sth-smoke-2 { position:absolute; bottom:32%; right:22%; width:10px; height:25px; background: linear-gradient(180deg, rgba(90,80,70,.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: sth-smoke2 10s ease-in-out infinite reverse; animation-delay: -4s; }
.scn-seuthes-threatens-hills .sth-glowing { position:absolute; bottom:25%; right:20%; width:18px; height:18px; background: radial-gradient(circle, #b08050 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px #b08050; animation: sth-glow 3s ease-in-out infinite alternate; }
.scn-seuthes-threatens-hills .sth-figure  { position:absolute; bottom:18%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sth-figure 4s ease-in-out infinite; }
@keyframes sth-sky      { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes sth-hills    { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes sth-village  { 0%,100% { transform: scale(1) } 50% { transform: scale(.98) translateY(1px) } }
@keyframes sth-smoke1   { 0% { transform: translateY(0) scale(1) opacity:.4 } 50% { transform: translateY(-10px) scale(1.2) opacity:.2 } 100% { transform: translateY(-20px) scale(.8) opacity:0 } }
@keyframes sth-smoke2   { 0% { transform: translateY(0) scale(1) opacity:.3 } 50% { transform: translateY(-8px) scale(1.1) opacity:.15 } 100% { transform: translateY(-16px) scale(.9) opacity:0 } }
@keyframes sth-glow     { 0% { opacity:.5; box-shadow: 0 0 20px #b08050 } 100% { opacity:.9; box-shadow: 0 0 40px #d09060 } }
@keyframes sth-figure   { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } }

/* xenophon-joins-expedition */
.scn-xenophon-joins-expedition { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-xenophon-joins-expedition .xje-sky     { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%); animation: xje-sky 15s ease-in-out infinite alternate; }
.scn-xenophon-joins-expedition .xje-stars   { position:absolute; top:5%; left:10%; width:2px; height:2px; background:#fff; border-radius:50%; box-shadow: 20px 30px 0 #fff, 60px 10px 0 #fff, 40px 50px 0 #fff, 80px 25px 0 #fff, 100px 40px 0 #fff, 120px 15px 0 #fff, 140px 45px 0 #fff; animation: xje-twinkle 4s ease-in-out infinite alternate; }
.scn-xenophon-joins-expedition .xje-hills   { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; transform-origin: bottom; animation: xje-hills 20s ease-in-out infinite alternate; }
.scn-xenophon-joins-expedition .xje-march   { position:absolute; bottom:12%; left:25%; width:80px; height:40px; background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 6px, transparent 6px, transparent 14px); mask-image: linear-gradient(180deg, #000 0%, transparent 100%); animation: xje-march 8s linear infinite; }
.scn-xenophon-joins-expedition .xje-leader  { position:absolute; bottom:14%; left:20%; width:14px; height:36px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xje-lead 3s ease-in-out infinite; }
.scn-xenophon-joins-expedition .xje-dawn    { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #4a3a2a 40%, #6a4a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: xje-dawn 30s ease-in-out infinite alternate; }
.scn-xenophon-joins-expedition .xje-spear   { position:absolute; bottom:48%; left:20%; width:2px; height:16px; background: #6a5a4a; border-radius: 20%; transform: rotate(10deg); animation: xje-spear 4s ease-in-out infinite; }
@keyframes xje-sky      { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes xje-twinkle  { 0% { opacity:.5 } 100% { opacity:1 } }
@keyframes xje-hills    { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-1px) } }
@keyframes xje-march    { 0% { transform: translateX(-30px) } 100% { transform: translateX(100vw) } }
@keyframes xje-lead     { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) translateY(-1px) } 50% { transform: translateX(4px) rotate(0) } 75% { transform: translateX(2px) rotate(-.5deg) } }
@keyframes xje-dawn     { 0% { opacity:.1 } 50% { opacity:.4 } 100% { opacity:.2 } }
@keyframes xje-spear    { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(15deg) translateY(-2px) } }

/* episthenes-rescues-boy */
.scn-episthenes-rescues-boy { background: linear-gradient(180deg, #f0c8a0 0%, #e8b080 30%, #d09060 50%, #c08040 100%), radial-gradient(ellipse at 50% 100%, #f0d8b0 0%, transparent 60%); }
.scn-episthenes-rescues-boy .erb-sky       { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f0d8b0 0%, #d09060 100%); animation: erb-sky 15s ease-in-out infinite alternate; }
.scn-episthenes-rescues-boy .erb-ground    { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 60% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-episthenes-rescues-boy .erb-sun       { position:absolute; top:5%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #ffe0a0 0%, #f0c080 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px #ffd080; animation: erb-sunrise 25s ease-in-out infinite; }
.scn-episthenes-rescues-boy .erb-episthenes { position:absolute; bottom:25%; left:30%; width:16px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: erb-run 2s ease-in-out infinite; }
.scn-episthenes-rescues-boy .erb-boy       { position:absolute; bottom:20%; left:55%; width:14px; height:32px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: erb-cower 3s ease-in-out infinite; }
.scn-episthenes-rescues-boy .erb-shield    { position:absolute; bottom:28%; left:56%; width:12px; height:12px; background: radial-gradient(circle, #c08050 0%, #8a6030 100%); border-radius:50%; box-shadow: 0 0 10px #d09060; animation: erb-shield 4s ease-in-out infinite alternate; }
.scn-episthenes-rescues-boy .erb-xenophon  { position:absolute; bottom:22%; left:42%; width:18px; height:42px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: erb-stand 3s ease-in-out infinite; }
.scn-episthenes-rescues-boy .erb-rays      { position:absolute; top:0; left:50%; width:2px; height:100%; background: linear-gradient(180deg, rgba(255,220,150,.3) 0%, transparent 100%); transform: rotate(-15deg); animation: erb-rays 6s ease-in-out infinite; }
@keyframes erb-sky      { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes erb-sunrise  { 0% { transform: translateY(0) scale(1); opacity:.7 } 50% { transform: translateY(-5px) scale(1.05); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.8 } }
@keyframes erb-run      { 0%,100% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(3deg) translateY(-1px) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(4px) rotate(2deg) } }
@keyframes erb-cower    { 0%,100% { transform: scale(1) translateY(0) } 50% { transform: scale(.95) translateY(2px) } }
@keyframes erb-shield   { 0% { opacity:.6; box-shadow: 0 0 8px #d09060 } 100% { opacity:1; box-shadow: 0 0 20px #d09060 } }
@keyframes erb-stand    { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes erb-rays     { 0% { opacity:0 } 50% { opacity:.4 } 100% { opacity:0 } }

/* xenophon-march-order — tense, overcast, marching column */
.scn-xenophon-march-order {
  background:
    linear-gradient(180deg, #6b7a7a 0%, #4e5b5b 30%, #3a4242 70%, #2d3333 100%),
    radial-gradient(ellipse at 50% 100%, #3a4242 0%, transparent 80%);
}
.scn-xenophon-march-order .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #5e6b6b 40%, #484f4f 100%);
  animation: xmo-sky 16s ease-in-out infinite alternate;
}
.scn-xenophon-march-order .distant-hills {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #404a4a 0%, #2e3636 100%);
  border-radius: 50% 40% 0 0 / 60% 50% 0 0;
  opacity: 0.6;
  animation: xmo-hills 24s ease-in-out infinite alternate;
}
.scn-xenophon-march-order .march-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background:
    linear-gradient(0deg, #2a2f2f 0%, #3f4848 20%, #535e5e 40%, #4a5454 70%, #3e4747 100%);
  clip-path: polygon(0% 25%, 12% 15%, 25% 30%, 38% 10%, 50% 28%, 62% 12%, 75% 32%, 88% 18%, 100% 22%, 100% 100%, 0% 100%);
  animation: xmo-ground 14s ease-in-out infinite alternate;
}
.scn-xenophon-march-order .soldier-column {
  position: absolute; bottom: 18%; width: 14px; height: 42px;
  background: linear-gradient(180deg, #3d4141 0%, #2a2e2e 50%, #1d2020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-xenophon-march-order .soldier-fore {
  left: 38%;
  animation: xmo-march-fore 3.2s ease-in-out infinite;
}
.scn-xenophon-march-order .soldier-mid {
  left: 48%;
  animation: xmo-march-mid 3.4s ease-in-out infinite;
  animation-delay: -0.8s;
}
.scn-xenophon-march-order .soldier-back {
  left: 58%;
  animation: xmo-march-back 3.6s ease-in-out infinite;
  animation-delay: -1.6s;
}
.scn-xenophon-march-order .spear-tip {
  position: absolute; bottom: 52%; left: 54%; width: 2px; height: 16px;
  background: linear-gradient(180deg, #7a7a6a 0%, #4a4a3e 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  animation: xmo-spear 3.6s ease-in-out infinite;
  animation-delay: -1.2s;
}
.scn-xenophon-march-order .dust-drift {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 14%;
  background: radial-gradient(ellipse at 30% 50%, rgba(160,150,130,.25) 0%, transparent 70%);
  filter: blur(8px);
  animation: xmo-dust 8s ease-in-out infinite alternate;
}
@keyframes xmo-sky { 0% { opacity: 0.75; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes xmo-hills { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes xmo-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes xmo-march-fore { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes xmo-march-mid { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(7px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(14px) translateY(0) rotate(2deg); } 75% { transform: translateX(21px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(28px) translateY(0) rotate(0); } }
@keyframes xmo-march-back { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0); } }
@keyframes xmo-spear { 0% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }
@keyframes xmo-dust { 0% { transform: translateX(-10px) scaleX(1); opacity: 0.5; } 50% { transform: translateX(20px) scaleX(1.2); opacity: 0.8; } 100% { transform: translateX(-10px) scaleX(1); opacity: 0.4; } }

/* xenophon-points-out-necessity — tense, overcast, crossroads */
.scn-xenophon-points-out-necessity {
  background:
    linear-gradient(180deg, #5a5e5e 0%, #4a4e4e 40%, #3a3e3e 80%, #2e3232 100%),
    radial-gradient(ellipse at 40% 60%, #4a4e4e 0%, transparent 70%);
}
.scn-xenophon-points-out-necessity .waste-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6e7373 0%, #555959 40%, #454848 100%);
  animation: xpn-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-points-out-necessity .bleak-plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #2d3131 0%, #3a3f3f 30%, #4a4e4e 60%, #404444 100%);
  clip-path: polygon(0% 20%, 15% 12%, 30% 25%, 45% 8%, 60% 22%, 75% 10%, 100% 18%, 100% 100%, 0% 100%);
  animation: xpn-plain 20s ease-in-out infinite alternate;
}
.scn-xenophon-points-out-necessity .rock-outcrop {
  position: absolute; bottom: 20%; left: 60%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #4a4e4e 0%, #363a3a 60%, #282b2b 100%);
  border-radius: 20% 40% 10% 30% / 30% 50% 10% 40%;
  transform: skewX(-5deg);
  box-shadow: inset -3px -4px 10px rgba(0,0,0,.5), 2px 3px 6px rgba(0,0,0,.3);
  animation: xpn-rock 30s ease-in-out infinite alternate;
}
.scn-xenophon-points-out-necessity .xenophon-figure {
  position: absolute; bottom: 18%; left: 38%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a3d3d 0%, #2a2d2d 50%, #1d1f1f 100%);
  border-radius: 40% 35% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: xpn-figure 6s ease-in-out infinite;
}
.scn-xenophon-points-out-necessity .soldier-listener {
  position: absolute; bottom: 18%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #3e4141 0%, #2e3131 50%, #202222 100%);
  border-radius: 35% 35% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-xenophon-points-out-necessity .soldier-l {
  left: 28%;
  animation: xpn-listen-l 8s ease-in-out infinite;
}
.scn-xenophon-points-out-necessity .soldier-r {
  left: 52%;
  animation: xpn-listen-r 8s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-xenophon-points-out-necessity .pointing-arm {
  position: absolute; bottom: 42%; left: 40%; width: 24px; height: 4px;
  background: linear-gradient(90deg, #3a3d3d 0%, #4e5252 60%, #5e6262 100%);
  border-radius: 40% 20% 20% 40% / 50% 50% 50% 50%;
  transform-origin: 0% 50%;
  animation: xpn-point 4s ease-in-out infinite alternate;
}
.scn-xenophon-points-out-necessity .ground-shadow {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(20,22,22,.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: xpn-shadow 8s ease-in-out infinite alternate;
}
@keyframes xpn-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.65; } }
@keyframes xpn-plain { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes xpn-rock { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-2px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes xpn-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes xpn-listen-l { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(0); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes xpn-listen-r { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes xpn-point { 0% { transform: rotate(-15deg) ; } 50% { transform: rotate(-5deg) ; } 100% { transform: rotate(-20deg) ; } }
@keyframes xpn-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.6; } 50% { transform: scaleX(1.1) translateX(8px); opacity: 0.8; } 100% { transform: scaleX(1) translateX(0); opacity: 0.5; } }

/* xenophon-exhorts-to-glory — tense, overcast, speech to soldiers */
.scn-xenophon-exhorts-to-glory {
  background:
    linear-gradient(180deg, #5a5e5e 0%, #4a4e4e 45%, #3a3e3e 85%, #2e3232 100%),
    radial-gradient(ellipse at 50% 40%, #6e7272 0%, transparent 70%);
}
.scn-xenophon-exhorts-to-glory .battle-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7a7e7e 0%, #606464 40%, #4e5252 100%);
  animation: xeg-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-exhorts-to-glory .crowd-masses {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #2d3030 0%, #3a3e3e 30%, #484c4c 55%, #3e4242 100%);
  clip-path: polygon(0% 45%, 8% 35%, 16% 48%, 24% 30%, 32% 50%, 40% 28%, 48% 52%, 56% 32%, 64% 48%, 72% 28%, 80% 50%, 88% 34%, 100% 42%, 100% 100%, 0% 100%);
  animation: xeg-crowd 12s ease-in-out infinite alternate;
}
.scn-xenophon-exhorts-to-glory .speaker-mound {
  position: absolute; bottom: 14%; left: 42%; width: 16%; height: 16%;
  background: linear-gradient(180deg, #4a4e4e 0%, #363a3a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.4);
  animation: xeg-mound 16s ease-in-out infinite alternate;
}
.scn-xenophon-exhorts-to-glory .xenophon-speaker {
  position: absolute; bottom: 26%; left: 46%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a3d3d 0%, #2a2d2d 55%, #1d1f1f 100%);
  border-radius: 35% 30% 25% 25% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: xeg-speaker 5s ease-in-out infinite;
}
.scn-xenophon-exhorts-to-glory .raised-arm {
  position: absolute; bottom: 52%; left: 47%; width: 20px; height: 5px;
  background: linear-gradient(90deg, #3a3d3d 0%, #5a5e5e 80%, #6e7272 100%);
  border-radius: 40% 20% 20% 40% / 50% 50% 50% 50%;
  transform-origin: 0% 50%;
  animation: xeg-arm 3.5s ease-in-out infinite alternate;
}
.scn-xenophon-exhorts-to-glory .crowd-spear {
  position: absolute; bottom: 42%; width: 3px; height: 20px;
  background: linear-gradient(0deg, #4a4e4e 0%, #6a6e6e 80%, #8a8e8e 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  transform-origin: bottom center;
  animation: xeg-spear 7s ease-in-out infinite alternate;
}
.scn-xenophon-exhorts-to-glory .crowd-spear:nth-child(6) {
  left: 30%;
  animation-delay: -1s;
}
.scn-xenophon-exhorts-to-glory .crowd-spear:nth-child(7) {
  left: 62%;
  animation-delay: -3s;
}
.scn-xenophon-exhorts-to-glory .glory-light {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,190,160,.15) 0%, rgba(200,190,160,.05) 40%, transparent 70%);
  filter: blur(12px);
  animation: xeg-glory 6s ease-in-out infinite alternate;
}
@keyframes xeg-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes xeg-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes xeg-mound { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes xeg-speaker { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes xeg-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-35deg); } }
@keyframes xeg-spear { 0% { transform: rotate(-5deg) translateY(0); opacity: 0.7; } 50% { transform: rotate(5deg) translateY(-3px); opacity: 1; } 100% { transform: rotate(-5deg) translateY(0); opacity: 0.6; } }
@keyframes xeg-glory { 0% { opacity: 0.2; transform: scale(0.95); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(1); } }

/* burning-countryside — tense, dusk, cavalry setting fires */
.scn-burning-countryside {
  background:
    linear-gradient(180deg, #2a2020 0%, #3d2820 30%, #5a3520 60%, #7a4a2a 80%, #8a5a30 100%),
    radial-gradient(ellipse at 50% 0%, #2a2020 0%, transparent 70%);
}
.scn-burning-countryside .dusk-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1414 0%, #2a2020 30%, #4a2a1a 60%, #6a3a1a 100%);
  animation: bcs-sky 20s ease-in-out infinite alternate;
}
.scn-burning-countryside .smoke-layer {
  position: absolute; border-radius: 50%;
  background: linear-gradient(180deg, rgba(60,40,30,.4) 0%, rgba(40,25,20,.2) 60%, transparent 100%);
  filter: blur(10px);
  animation: bcs-smoke 30s ease-in-out infinite alternate;
}
.scn-burning-countryside .smoke-a {
  top: 5%; left: 10%; width: 60%; height: 40%;
  animation-duration: 35s;
}
.scn-burning-countryside .smoke-b {
  top: 12%; right: 5%; width: 45%; height: 35%;
  animation-duration: 40s;
  animation-delay: -10s;
}
.scn-burning-countryside .burning-field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background:
    linear-gradient(0deg, #1a0e0a 0%, #2a1810 20%, #4a2a18 40%, #6a3a20 55%, #8a4a28 70%, #6a3a20 85%, #3a2010 100%);
  clip-path: polygon(0% 30%, 10% 18%, 20% 35%, 30% 12%, 40% 28%, 50% 8%, 60% 32%, 70% 14%, 80% 38%, 90% 16%, 100% 26%, 100% 100%, 0% 100%);
  animation: bcs-field 10s ease-in-out infinite alternate;
}
.scn-burning-countryside .cavalry-silhouette {
  position: absolute; bottom: 18%; left: 42%; width: 40px; height: 36px;
  background: linear-gradient(180deg, #1a1212 0%, #0e0a0a 100%);
  border-radius: 30% 40% 20% 20% / 40% 50% 20% 20%;
  transform-origin: bottom center;
  animation: bcs-cavalry 4s ease-in-out infinite;
}
.scn-burning-countryside .flame-patch {
  position: absolute; bottom: 12%;
  width: 24px; height: 36px;
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: bcs-flame 2.5s ease-in-out infinite alternate;
}
.scn-burning-countryside .flame-1 {
  left: 20%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 40%, #6a2a10 80%);
  box-shadow: 0 0 20px 8px rgba(200,85,61,.3), 0 0 40px 16px rgba(160,70,26,.15);
  animation-duration: 2.8s;
}
.scn-burning-countryside .flame-2 {
  left: 60%;
  background: linear-gradient(180deg, #d06040 0%, #b05030 40%, #7a3020 80%);
  box-shadow: 0 0 24px 10px rgba(208,96,64,.3), 0 0 48px 20px rgba(176,80,48,.12);
  animation-duration: 3.2s;
  animation-delay: -1.2s;
}
.scn-burning-countryside .ember-drift {
  position: absolute; top: 20%; left: 5%; width: 90%; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,120,60,.12) 0%, transparent 70%);
  filter: blur(6px);
  animation: bcs-ember 12s ease-in-out infinite alternate;
}
@keyframes bcs-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes bcs-smoke { 0% { transform: translateX(-15px) translateY(0) scaleX(1); opacity: 0.4; } 50% { transform: translateX(20px) translateY(-10px) scaleX(1.15); opacity: 0.7; } 100% { transform: translateX(-15px) translateY(0) scaleX(1); opacity: 0.3; } }
@keyframes bcs-field { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes bcs-cavalry { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes bcs-flame { 0% { transform: scaleY(0.8) translateY(0); opacity: 0.7; } 50% { transform: scaleY(1.2) translateY(-4px); opacity: 1; } 100% { transform: scaleY(0.85) translateY(0); opacity: 0.6; } }
@keyframes bcs-ember { 0% { transform: translateY(0) scaleX(1); opacity: 0.3; } 50% { transform: translateY(-8px) scaleX(1.1); opacity: 0.7; } 100% { transform: translateY(0) scaleX(1); opacity: 0.2; } }

.scn-cheirisophus-menon-sent { background: linear-gradient(180deg, #6a9ec0 0%, #d8a65c 40%, #c07d3a 100%), radial-gradient(ellipse at 50% 0%, #f9d47a 0%, transparent 60%); }
.scn-cheirisophus-menon-sent .ch-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7bb3d4 0%, #eac680 100%); animation: ch-sky 16s ease-in-out infinite alternate; }
.scn-cheirisophus-menon-sent .ch-sun { position:absolute; top:8%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #fff5cc 0%, #f5c842 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(245,200,66,.5); animation: ch-sun 4s ease-in-out infinite alternate; }
.scn-cheirisophus-menon-sent .ch-mountains { position:absolute; bottom:40%; left:0; right:0; height:18%; background: linear-gradient(180deg, #5a6b5a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: ch-mountains 20s ease-in-out infinite; }
.scn-cheirisophus-menon-sent .ch-road { position:absolute; bottom:25%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #b8956a 0%, #8a6b40 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: ch-road 12s ease-in-out infinite; }
.scn-cheirisophus-menon-sent .ch-menon { position:absolute; bottom:30%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ch-walk-menon 3s ease-in-out infinite; }
.scn-cheirisophus-menon-sent .ch-cheirisophus { position:absolute; bottom:30%; left:42%; width:22px; height:46px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ch-walk-cheir 3.2s ease-in-out infinite 0.5s; }
.scn-cheirisophus-menon-sent .ch-messenger { position:absolute; bottom:30%; left:50%; width:18px; height:38px; background: linear-gradient(180deg, #a0461a 0%, #702a0a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ch-run 2s ease-in-out infinite 1s; }
@keyframes ch-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ch-sun { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 60px 20px rgba(245,200,66,.4) } 50% { transform: scale(1.05) translateY(-2px); box-shadow: 0 0 100px 30px rgba(245,200,66,.6) } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 60px 20px rgba(245,200,66,.4) } }
@keyframes ch-mountains { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ch-road { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes ch-walk-menon { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ch-walk-cheir { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(6px) rotate(2deg) } 75% { transform: translateX(9px) rotate(0) } 100% { transform: translateX(12px) rotate(-1deg) } }
@keyframes ch-run { 0% { transform: translateX(0) rotate(-3deg) scaleX(0.95) } 25% { transform: translateX(10px) rotate(2deg) scaleX(1.02) } 50% { transform: translateX(20px) rotate(-1deg) scaleX(0.98) } 75% { transform: translateX(30px) rotate(3deg) scaleX(1.01) } 100% { transform: translateX(40px) rotate(0) scaleX(1) } }

.scn-soldiers-forage { background: linear-gradient(180deg, #8fbfd0 0%, #d4c9a8 40%, #b3976e 100%), radial-gradient(ellipse at 50% 100%, #b3976e 0%, transparent 50%); }
.scn-soldiers-forage .so-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #aad0e0 0%, #e8d8b0 100%); animation: so-sky 20s ease-in-out infinite alternate; }
.scn-soldiers-forage .so-hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.2); animation: so-hills 25s ease-in-out infinite; }
.scn-soldiers-forage .so-fire { position:absolute; bottom:28%; left:45%; width:30px; height:40px; background: radial-gradient(circle at 50% 100%, #ffa540 0%, #e06020 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,165,64,.4); animation: so-fire 3s ease-in-out infinite alternate; }
.scn-soldiers-forage .so-tent { position:absolute; bottom:30%; left:30%; width:60px; height:50px; background: linear-gradient(180deg, #c8b090 0%, #a08860 100%); clip-path: polygon(50% 0, 100% 100%, 0 100%); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: so-tent 8s ease-in-out infinite; }
.scn-soldiers-forage .so-soldier { position:absolute; bottom:28%; left:55%; width:18px; height:36px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: so-soldier-move 6s ease-in-out infinite; }
.scn-soldiers-forage .so-ox { position:absolute; bottom:25%; left:60%; width:40px; height:24px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); animation: so-ox-breathe 5s ease-in-out infinite; }
.scn-soldiers-forage .so-tree { position:absolute; bottom:30%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; box-shadow: 0 0 10px 5px rgba(0,0,0,.2); animation: so-tree-sway 7s ease-in-out infinite; }
@keyframes so-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes so-hills { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes so-fire { 0% { transform: scale(1) rotate(-5deg); opacity:.8 } 50% { transform: scale(1.1) rotate(5deg); opacity:1 } 100% { transform: scale(0.95) rotate(0); opacity:.85 } }
@keyframes so-tent { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes so-soldier-move { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes so-ox-breathe { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes so-tree-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

.scn-heralds-from-king { background: linear-gradient(180deg, #aac9dc 0%, #dbb88a 45%, #c0885a 100%), radial-gradient(ellipse at 50% 0%, #f2d6a0 0%, transparent 50%); }
.scn-heralds-from-king .hk-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7faec4 0%, #dbb88a 100%); animation: hk-sky 14s ease-in-out infinite alternate; }
.scn-heralds-from-king .hk-ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b09575 0%, #7a5a3a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.2); animation: hk-ground 18s ease-in-out infinite; }
.scn-heralds-from-king .hk-herald1 { position:absolute; bottom:25%; left:25%; width:22px; height:48px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: hk-approach 4s ease-in-out infinite; }
.scn-heralds-from-king .hk-herald2 { position:absolute; bottom:25%; left:38%; width:22px; height:48px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: hk-approach 4.3s ease-in-out infinite 0.3s; }
.scn-heralds-from-king .hk-herald3 { position:absolute; bottom:25%; left:51%; width:20px; height:46px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: hk-approach 3.8s ease-in-out infinite 0.7s; }
.scn-heralds-from-king .hk-flag { position:absolute; bottom:40%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #a0461a 0%, #702a0a 100%); border-radius: 2px; box-shadow: 0 0 6px 2px rgba(160,70,26,.5); animation: hk-flag-wave 2s ease-in-out infinite; }
@keyframes hk-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hk-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hk-approach { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(8px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes hk-flag-wave { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }

.scn-clearchus-answers-herald { background: linear-gradient(180deg, #7a9eb5 0%, #c09a6a 30%, #8a6a4a 100%), radial-gradient(ellipse at 50% 0%, #e8c890 0%, transparent 60%); }
.scn-clearchus-answers-herald .ca-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #8bb3c8 0%, #d4b88a 100%); animation: ca-sky 12s ease-in-out infinite alternate; }
.scn-clearchus-answers-herald .ca-tentwall { position:absolute; bottom:20%; left:10%; width:80%; height:50%; background: linear-gradient(180deg, #b8a088 0%, #8a7058 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation: ca-tentwall 20s ease-in-out infinite; }
.scn-clearchus-answers-herald .ca-clearchus { position:absolute; bottom:35%; left:30%; width:28px; height:52px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ca-clearchus-speak 3s ease-in-out infinite; }
.scn-clearchus-answers-herald .ca-general1 { position:absolute; bottom:35%; left:45%; width:22px; height:46px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ca-nod 4s ease-in-out infinite 0.5s; }
.scn-clearchus-answers-herald .ca-general2 { position:absolute; bottom:35%; left:60%; width:20px; height:44px; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ca-nod 4.5s ease-in-out infinite 1s; }
.scn-clearchus-answers-herald .ca-table { position:absolute; bottom:28%; left:35%; width:60px; height:12px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ca-table 6s ease-in-out infinite; }
@keyframes ca-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ca-tentwall { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes ca-clearchus-speak { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes ca-nod { 0% { transform: rotate(0) } 30% { transform: rotate(-2deg) } 70% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes ca-table { 0%,100% { opacity:.9 } 50% { opacity:1 } }

.scn-seuthes-tells-his-story {
  background:
    radial-gradient(ellipse 60% 80% at 50% 100%, #8b3a1a 0%, transparent 60%),
    radial-gradient(ellipse 100% 40% at 50% 0%, #1a0e08 0%, #2a1408 50%, #0d0804 100%);
}
.scn-seuthes-tells-his-story .bg-fire {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse 70% 50% at 50% 75%, rgba(180,80,20,.15) 0%, transparent 70%);
  animation: sths-fire 4s ease-in-out infinite alternate;
}
.scn-seuthes-tells-his-story .fire-core {
  position: absolute; bottom: 24%; left: 50%; width: 20px; height: 40px; 
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 80% at 50% 100%, #ffa040 0%, #cc6020 50%, #8a3010 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 0 60px 30px rgba(200,100,30,.5), 0 0 120px 60px rgba(200,80,10,.2);
  animation: sths-flame 1.5s ease-in-out infinite;
}
.scn-seuthes-tells-his-story .figure-seated {
  position: absolute; bottom: 18%; left: 28%; width: 40px; height: 60px;
  background: radial-gradient(ellipse 60% 70% at 30% 40%, #1a0e0a 0%, #0a0503 100%);
  border-radius: 45% 40% 35% 40% / 55% 50% 45% 40%;
  box-shadow: 8px 0 15px rgba(0,0,0,.6);
  transform: rotate(-4deg);
  animation: sths-rock 8s ease-in-out infinite;
}
.scn-seuthes-tells-his-story .figure-arm {
  position: absolute; bottom: 30%; left: 20%; width: 14px; height: 24px;
  background: linear-gradient(135deg, #1a0e0a 0%, #0a0503 100%);
  border-radius: 30% 40% 20% 40% / 50% 60% 20% 30%;
  transform: rotate(20deg);
  transform-origin: 70% 90%;
  animation: sths-gesture 6s ease-in-out infinite;
}
.scn-seuthes-tells-his-story .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(10,5,3,.5) 0%, #050201 100%);
  border-radius: 0 0 0 0;
}
.scn-seuthes-tells-his-story .ember {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffcc60 0%, #cc8020 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,100,20,.6);
  animation: sths-ember 3s ease-in-out infinite;
}
.scn-seuthes-tells-his-story .ember-a { bottom: 30%; left: 44%; animation-delay: 0s; }
.scn-seuthes-tells-his-story .ember-b { bottom: 28%; left: 55%; animation-delay: 0.7s; width: 3px; height: 3px; }
.scn-seuthes-tells-his-story .ember-c { bottom: 32%; left: 48%; animation-delay: 1.4s; width: 2px; height: 2px; }
.scn-seuthes-tells-his-story .smoke-wisp {
  position: absolute; bottom: 55%; left: 48%; width: 30px; height: 60px;
  background: radial-gradient(ellipse 50% 100% at 50% 0%, rgba(60,40,20,.12) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sths-smoke 12s ease-out infinite;
}

@keyframes sths-fire {
  0% { opacity: .6; } 50% { opacity: .95; } 100% { opacity: .7; }
}
@keyframes sths-flame {
  0% { transform: translateX(-50%) scaleY(.9); } 50% { transform: translateX(-50%) scaleY(1.1) translateY(-3px); } 100% { transform: translateX(-50%) scaleY(.85); }
}
@keyframes sths-rock {
  0% { transform: rotate(-4deg); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes sths-gesture {
  0% { transform: rotate(20deg); } 45% { transform: rotate(35deg); } 65% { transform: rotate(28deg); } 100% { transform: rotate(20deg); }
}
@keyframes sths-ember {
  0% { transform: translate(0, 0) scale(1); opacity: .8; } 40% { transform: translate(5px, -15px) scale(.6); opacity: .5; } 70% { transform: translate(2px, -28px) scale(.3); opacity: .2; } 100% { transform: translate(-1px, -35px) scale(0); opacity: 0; }
}
@keyframes sths-smoke {
  0% { transform: translateY(0) scaleX(1); opacity: .4; } 50% { transform: translateY(-20px) scaleX(1.5); opacity: .15; } 100% { transform: translateY(-40px) scaleX(2); opacity: 0; }
}

.scn-seuthes-proposes-alliance {
  background:
    radial-gradient(ellipse 70% 60% at 50% 100%, #6a3010 0%, transparent 65%),
    radial-gradient(ellipse 100% 60% at 50% 0%, #1a0e08 0%, #0e0704 50%, #080402 100%);
}
.scn-seuthes-proposes-alliance .bg-tent {
  position: absolute; inset: 0;
  background: linear-gradient(170deg, #2a1a0e 0%, #1a0e08 40%, #0d0603 100%);
  clip-path: polygon(15% 0, 85% 0, 95% 100%, 5% 100%);
  animation: spa-pulse 8s ease-in-out infinite alternate;
}
.scn-seuthes-proposes-alliance .fire-pit {
  position: absolute; bottom: 18%; left: 50%; width: 36px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #3a1a0a 0%, #5a2a12 50%, #2a0e05 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-seuthes-proposes-alliance .flame-core {
  position: absolute; bottom: 20%; left: 50%; width: 16px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 80% at 50% 100%, #ffb050 0%, #d06020 50%, #6a1808 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 15px rgba(200,80,10,.5), 0 0 60px 30px rgba(180,60,5,.2);
  animation: spa-flame 2s ease-in-out infinite;
}
.scn-seuthes-proposes-alliance .figure-left {
  position: absolute; bottom: 12%; left: 18%; width: 38px; height: 65px;
  background: linear-gradient(90deg, #1a0e0a 0%, #0e0704 100%);
  border-radius: 40% 35% 30% 40% / 50% 40% 45% 50%;
  box-shadow: 6px 0 12px rgba(0,0,0,.5);
  transform: rotate(3deg);
  animation: spa-figleft 6s ease-in-out infinite;
}
.scn-seuthes-proposes-alliance .figure-right {
  position: absolute; bottom: 12%; right: 18%; width: 38px; height: 65px;
  background: linear-gradient(270deg, #1a0e0a 0%, #0e0704 100%);
  border-radius: 35% 40% 40% 30% / 40% 50% 50% 45%;
  box-shadow: -6px 0 12px rgba(0,0,0,.5);
  transform: rotate(-3deg);
  animation: spa-figright 6s ease-in-out infinite 0.5s;
}
.scn-seuthes-proposes-alliance .spear {
  position: absolute; bottom: 20%; left: 32%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1808 100%);
  border-radius: 10%;
  transform: rotate(12deg);
  transform-origin: 50% 90%;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: spa-spear 4s ease-in-out infinite;
}
.scn-seuthes-proposes-alliance .glow-ring {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 100% at 50% 100%, rgba(200,100,30,.12) 0%, transparent 100%);
  border-radius: 50%;
  animation: spa-glow 3s ease-in-out infinite alternate;
}
.scn-seuthes-proposes-alliance .spark {
  position: absolute; width: 3px; height: 3px;
  background: radial-gradient(circle, #ffcc60 0%, #d08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,100,20,.5);
}
.scn-seuthes-proposes-alliance .spark-a { bottom: 26%; left: 46%; animation: spa-spark 2.5s ease-in-out infinite; }
.scn-seuthes-proposes-alliance .spark-b { bottom: 24%; left: 54%; animation: spa-spark 3.2s ease-in-out infinite 0.8s; }

@keyframes spa-pulse {
  0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .75; }
}
@keyframes spa-flame {
  0% { transform: translateX(-50%) scaleY(.9); } 50% { transform: translateX(-50%) scaleY(1.2) translateY(-4px); } 100% { transform: translateX(-50%) scaleY(.85) translateY(0); }
}
@keyframes spa-figleft {
  0% { transform: rotate(3deg); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(3deg); }
}
@keyframes spa-figright {
  0% { transform: rotate(-3deg); } 50% { transform: rotate(-1deg) translateX(-3px); } 100% { transform: rotate(-3deg); }
}
@keyframes spa-spear {
  0% { transform: rotate(12deg); } 50% { transform: rotate(14deg) translateY(-2px); } 100% { transform: rotate(12deg); }
}
@keyframes spa-glow {
  0% { opacity: .6; transform: translateX(-50%) scaleX(.9); } 100% { opacity: 1; transform: translateX(-50%) scaleX(1.1); }
}
@keyframes spa-spark {
  0% { transform: translate(0,0) scale(1); opacity: .9; } 30% { transform: translate(4px,-12px) scale(.7); opacity: .6; } 60% { transform: translate(1px,-24px) scale(.4); opacity: .3; } 100% { transform: translate(-2px,-36px) scale(0); opacity: 0; }
}

.scn-seuthes-promises-land-and-family {
  background:
    radial-gradient(ellipse 80% 50% at 50% 85%, #c06020 0%, transparent 60%),
    linear-gradient(180deg, #1a0a05 0%, #2a1508 30%, #4a2810 60%, #6a3818 100%);
}
.scn-seuthes-promises-land-and-family .bg-horizon {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #4a2810 0%, #5a3018 40%, #7a4820 80%, #8a5830 100%);
  clip-path: polygon(0 60%, 10% 48%, 25% 55%, 40% 42%, 55% 50%, 70% 38%, 85% 46%, 100% 35%, 100% 0, 0 0);
  animation: spl-horizon 20s ease-in-out infinite alternate;
}
.scn-seuthes-promises-land-and-family .land-ridge {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0c05 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.4);
}
.scn-seuthes-promises-land-and-family .fire-warmth {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 60% at 50% 100%, #ffa840 0%, #cc7020 40%, #8a3a10 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(200,100,20,.25), 0 0 160px 80px rgba(180,80,10,.12);
  animation: spl-firepulse 4s ease-in-out infinite alternate;
}
.scn-seuthes-promises-land-and-family .figure-embrace {
  position: absolute; bottom: 22%; left: 38%; width: 44px; height: 58px;
  background: radial-gradient(ellipse 50% 70% at 50% 30%, #1a0e08 0%, #0a0502 100%);
  border-radius: 50% 45% 40% 45% / 55% 50% 45% 50%;
  box-shadow: 4px 0 10px rgba(0,0,0,.4);
  transform: rotate(-2deg);
  animation: spl-embrace 8s ease-in-out infinite;
}
.scn-seuthes-promises-land-and-family .figure-child {
  position: absolute; bottom: 26%; left: 34%; width: 22px; height: 30px;
  background: radial-gradient(ellipse 50% 60% at 50% 30%, #1a0e08 0%, #0a0502 100%);
  border-radius: 45% 50% 35% 40% / 50% 55% 40% 45%;
  transform: rotate(8deg);
  animation: spl-child 6s ease-in-out infinite 0.5s;
}
.scn-seuthes-promises-land-and-family .distant-hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(60,30,12,.4) 0%, rgba(90,50,20,.2) 100%);
  border-radius: 60% 50% 0 0 / 80% 60% 0 0;
  filter: blur(3px);
  animation: spl-hills 25s ease-in-out infinite alternate;
}
.scn-seuthes-promises-land-and-family .smoke-ribbon {
  position: absolute; bottom: 55%; left: 46%; width: 40px; height: 80px;
  background: radial-gradient(ellipse 50% 100% at 50% 0%, rgba(80,50,20,.08) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: spl-smoke 15s ease-out infinite;
}
.scn-seuthes-promises-land-and-family .light-ray {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 100px;
  background: linear-gradient(180deg, rgba(200,140,60,.06) 0%, rgba(200,100,30,.02) 50%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-12deg);
  animation: spl-ray 10s ease-in-out infinite alternate;
}

@keyframes spl-horizon {
  0% { opacity: .7; transform: scaleY(1); } 50% { opacity: .9; transform: scaleY(1.02); } 100% { opacity: .75; transform: scaleY(.98); }
}
@keyframes spl-firepulse {
  0% { opacity: .7; transform: translateX(-50%) scale(.95); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: .8; transform: translateX(-50%) scale(.98); }
}
@keyframes spl-embrace {
  0% { transform: rotate(-2deg); } 40% { transform: rotate(0deg) translateY(-1px); } 70% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(-2deg); }
}
@keyframes spl-child {
  0% { transform: rotate(8deg); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(8deg); }
}
@keyframes spl-hills {
  0% { opacity: .5; transform: translateY(0); } 100% { opacity: .8; transform: translateY(-4px); }
}
@keyframes spl-smoke {
  0% { transform: translateY(0) scaleX(1); opacity: .3; } 50% { transform: translateY(-25px) scaleX(1.4); opacity: .12; } 100% { transform: translateY(-50px) scaleX(2); opacity: 0; }
}
@keyframes spl-ray {
  0% { opacity: .2; transform: rotate(-12deg); } 50% { opacity: .5; transform: rotate(-8deg); } 100% { opacity: .25; transform: rotate(-15deg); }
}

.scn-pledges-exchanged {
  background:
    radial-gradient(ellipse 60% 50% at 50% 100%, #8a3a1a 0%, transparent 60%),
    radial-gradient(ellipse 100% 70% at 50% 0%, #2a1408 0%, #1a0a05 40%, #0d0402 100%);
}
.scn-pledges-exchanged .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(170deg, #3a1a0a 0%, #1a0a05 40%, #0d0402 100%);
  clip-path: polygon(10% 5%, 90% 5%, 95% 95%, 5% 95%);
  animation: pe-pulse 10s ease-in-out infinite alternate;
}
.scn-pledges-exchanged .altar-stone {
  position: absolute; bottom: 12%; left: 50%; width: 70px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3018 0%, #3a2212 50%, #2a180a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5), inset 0 2px 4px rgba(120,80,40,.2);
}
.scn-pledges-exchanged .hands-clasped {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 60% at 50% 50%, #2a1408 0%, #1a0a05 70%);
  border-radius: 50% 50% 40% 40% / 50% 50% 45% 45%;
  box-shadow: 0 0 20px 6px rgba(200,100,20,.15);
  animation: pe-clasp 5s ease-in-out infinite;
}
.scn-pledges-exchanged .figure-witness-a {
  position: absolute; bottom: 10%; left: 22%; width: 34px; height: 60px;
  background: linear-gradient(90deg, #1a0e08 0%, #0e0502 100%);
  border-radius: 40% 35% 30% 40% / 45% 40% 50% 50%;
  box-shadow: 4px 0 8px rgba(0,0,0,.3);
  transform: rotate(2deg);
  animation: pe-witA 7s ease-in-out infinite;
}
.scn-pledges-exchanged .figure-witness-b {
  position: absolute; bottom: 10%; right: 22%; width: 34px; height: 60px;
  background: linear-gradient(270deg, #1a0e08 0%, #0e0502 100%);
  border-radius: 35% 40% 40% 30% / 40% 45% 50% 50%;
  box-shadow: -4px 0 8px rgba(0,0,0,.3);
  transform: rotate(-2deg);
  animation: pe-witB 7s ease-in-out infinite 0.8s;
}
.scn-pledges-exchanged .torch-flame {
  position: absolute; bottom: 34%; left: 18%; width: 10px; height: 22px;
  background: radial-gradient(ellipse 50% 80% at 50% 100%, #ffb860 0%, #d07020 50%, #8a3010 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(200,100,20,.4);
  animation: pe-flame 2.5s ease-in-out infinite;
}
.scn-pledges-exchanged .torch-glow {
  position: absolute; bottom: 28%; left: 18%; width: 30px; height: 40px;
  transform: translate(-50%, 10%);
  background: radial-gradient(ellipse 50% 60% at 50% 100%, rgba(200,120,30,.12) 0%, transparent 100%);
  border-radius: 50%;
  animation: pe-torchglow 4s ease-in-out infinite alternate;
}
.scn-pledges-exchanged .scroll {
  position: absolute; bottom: 26%; left: 38%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #b09060 0%, #8a7040 100%);
  border-radius: 20%;
  transform: rotate(8deg);
  animation: pe-scroll 8s ease-in-out infinite;
}
.scn-pledges-exchanged .draped-cloth {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 14px;
  background: linear-gradient(135deg, #6a3a1a 0%, #5a2a12 50%, #4a1a08 100%);
  border-radius: 40% 60% 30% 50% / 80% 70% 60% 70%;
  filter: blur(1px);
  animation: pe-drape 12s ease-in-out infinite alternate;
}

@keyframes pe-pulse {
  0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .75; }
}
@keyframes pe-clasp {
  0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.04) translateY(-1px); } 100% { transform: translateX(-50%) scale(.98); }
}
@keyframes pe-witA {
  0% { transform: rotate(2deg); } 50% { transform: rotate(0deg) translateX(2px); } 100% { transform: rotate(2deg); }
}
@keyframes pe-witB {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg) translateX(-2px); } 100% { transform: rotate(-2deg); }
}
@keyframes pe-flame {
  0% { transform: scaleY(.85); opacity: .8; } 40% { transform: scaleY(1.15) translateY(-3px); opacity: 1; } 70% { transform: scaleY(.9); opacity: .9; } 100% { transform: scaleY(.85); opacity: .8; }
}
@keyframes pe-torchglow {
  0% { opacity: .4; transform: translate(-50%, 10%) scale(.9); } 100% { opacity: .8; transform: translate(-50%, 8%) scale(1.1); }
}
@keyframes pe-scroll {
  0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(8deg) translateY(0); }
}
@keyframes pe-drape {
  0% { opacity: .8; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.02) translateY(-1px); } 100% { opacity: .85; transform: scaleX(.98); }
}

/* xenophon-organises-columns */
.scn-xenophon-organises-columns {
  background:
    linear-gradient(180deg, #87ceeb 0%, #fdf5e6 40%, #f0c27a 100%),
    radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 60%);
}
.scn-xenophon-organises-columns .sun-sky {
  position: absolute; inset: 0 0 55% 0;
  background: radial-gradient(ellipse at 80% 0%, #fffae6 0%, #87ceeb 70%);
  animation: xoc-sky 16s ease-in-out infinite alternate;
}
.scn-xenophon-organises-columns .hill-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%);
  border-radius: 0 80% 0 0 / 0 60% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.2);
  animation: xoc-hillbg 24s ease-in-out infinite;
}
.scn-xenophon-organises-columns .hill-fg {
  position: absolute; bottom: 18%; left: -10%; right: -10%; height: 22%;
  background: linear-gradient(180deg, #6a8a6a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: xoc-hillfg 20s ease-in-out infinite alternate;
}
.scn-xenophon-organises-columns .column-left {
  position: absolute; bottom: 20%; left: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4020 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: xoc-col 6s ease-in-out infinite;
}
.scn-xenophon-organises-columns .column-right {
  position: absolute; bottom: 20%; right: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4020 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: xoc-col 6s ease-in-out infinite reverse;
}
.scn-xenophon-organises-columns .figure-xenophon {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 44px;
  margin-left: -10px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xoc-fig 4s ease-in-out infinite alternate;
}
.scn-xenophon-organises-columns .standard {
  position: absolute; bottom: 48%; left: 50%; width: 4px; height: 50px;
  margin-left: -2px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: xoc-flag 8s ease-in-out infinite;
}
.scn-xenophon-organises-columns .dust-cloud {
  position: absolute; bottom: 15%; left: 30%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(210,180,140,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: xoc-dust 20s linear infinite;
}
@keyframes xoc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes xoc-hillbg {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes xoc-hillfg {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-6px) scaleY(0.97); }
  100% { transform: translateX(6px) scaleY(1.03); }
}
@keyframes xoc-col {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes xoc-fig {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-4px) translateY(0) rotate(-1deg); }
}
@keyframes xoc-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes xoc-dust {
  0% { transform: translateX(-30px) scale(1); }
  50% { transform: translateX(30vw) scale(1.5); }
  100% { transform: translateX(70vw) scale(0.8); }
}

/* advance-to-the-gully */
.scn-advance-to-the-gully {
  background:
    linear-gradient(180deg, #b0d4e8 0%, #f9e4c0 50%, #d2a67a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe6a0 0%, transparent 60%);
}
.scn-advance-to-the-gully .sky-glow {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(ellipse at 40% 0%, #ffedc0 0%, #b0d4e8 80%);
  animation: ag-sky 18s ease-in-out infinite alternate;
}
.scn-advance-to-the-gully .cliff-left {
  position: absolute; bottom: 0; left: 0; width: 30%; height: 80%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 0 40% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: ag-cliff 20s ease-in-out infinite;
}
.scn-advance-to-the-gully .cliff-right {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 80%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 40% 0 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: ag-cliff 20s ease-in-out infinite reverse;
}
.scn-advance-to-the-gully .gully-floor {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ag-floor 12s ease-in-out infinite alternate;
}
.scn-advance-to-the-gully .soldier-row-1 {
  position: absolute; bottom: 12%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: ag-march 6s ease-in-out infinite;
}
.scn-advance-to-the-gully .soldier-row-2 {
  position: absolute; bottom: 10%; left: 48%; width: 36px; height: 46px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: -2px 2px 4px rgba(0,0,0,0.4);
  animation: ag-march 6s ease-in-out infinite 1s;
}
.scn-advance-to-the-gully .spear-point {
  position: absolute; bottom: 55%; left: 40%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ag-spear 4s ease-in-out infinite alternate;
}
@keyframes ag-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ag-cliff {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes ag-floor {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03) translateX(-2px); }
  100% { transform: scaleX(0.97) translateX(2px); }
}
@keyframes ag-march {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes ag-spear {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-3px); }
  100% { transform: rotate(12deg) translateY(0); }
}

/* debate-at-gully */
.scn-debate-at-gully {
  background:
    linear-gradient(180deg, #9fc5e8 0%, #e8d5a0 50%, #b09060 100%),
    radial-gradient(ellipse at 50% 80%, #ffe8b0 0%, transparent 70%);
}
.scn-debate-at-gully .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0c4e8 0%, #f5e8c0 100%);
  animation: dbg-sky 20s ease-in-out infinite alternate;
}
.scn-debate-at-gully .ground-circle {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: dbg-ground 15s ease-in-out infinite;
}
.scn-debate-at-gully .figure-sophaenetus {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbg-fig1 5s ease-in-out infinite alternate;
}
.scn-debate-at-gully .figure-xenophon-debate {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbg-fig2 4s ease-in-out infinite alternate;
}
.scn-debate-at-gully .figure-officer {
  position: absolute; bottom: 16%; left: 45%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbg-fig3 6s ease-in-out infinite alternate;
}
.scn-debate-at-gully .rock-ring {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 15%;
  background: 
    radial-gradient(ellipse at 20% 50%, #6a5a3a 10px, transparent 10px),
    radial-gradient(ellipse at 40% 50%, #6a5a3a 14px, transparent 14px),
    radial-gradient(ellipse at 60% 50%, #6a5a3a 12px, transparent 12px),
    radial-gradient(ellipse at 80% 50%, #6a5a3a 10px, transparent 10px);
  background-size: 40px 20px;
  background-repeat: no-repeat;
  background-position: 10% 0%, 30% 0%, 50% 0%, 70% 0%;
  animation: dbg-rock 18s ease-in-out infinite;
}
.scn-debate-at-gully .shadow-arc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
  animation: dbg-shadow 12s ease-in-out infinite alternate;
}
@keyframes dbg-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes dbg-ground {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.98) translateY(-2px); }
  100% { transform: scaleY(1.02) translateY(0); }
}
@keyframes dbg-fig1 {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(-4px) rotate(3deg) scaleY(0.95); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dbg-fig2 {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(3px) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes dbg-fig3 {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(4deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes dbg-rock {
  0% { background-position: 10% 0%, 30% 0%, 50% 0%, 70% 0%; }
  50% { background-position: 12% -2px, 28% -1px, 52% -3px, 68% -2px; }
  100% { background-position: 8% 0%, 32% 0%, 48% 0%, 72% 0%; }
}
@keyframes dbg-shadow {
  0% { opacity: 0.1; }
  50% { opacity: 0.3; }
  100% { opacity: 0.15; }
}

/* xenophon-argues-for-attack */
.scn-xenophon-argues-for-attack {
  background:
    linear-gradient(180deg, #7fb5d0 0%, #f2d8a0 50%, #c89050 100%),
    radial-gradient(ellipse at 30% 0%, #ffe080 0%, transparent 50%);
}
.scn-xenophon-argues-for-attack .horizon-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #90c0d8 0%, #ffe0a0 100%);
  animation: xaa-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-argues-for-attack .raised-ground {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
  animation: xaa-ground 14s ease-in-out infinite;
}
.scn-xenophon-argues-for-attack .orator-xenophon {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 56px;
  margin-left: -12px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xaa-orator 5s ease-in-out infinite alternate;
}
/* Orator has one arm raised – simulate with a pseudo-element? But we cannot use pseudo for keyframe animation. Instead add a separate div for arm. But we already have 6 divs, can add one more. Let's add .arm-raised. But we have 7 already, we can combine. Actually current list has 7: sky, ground, orator, audience-left, audience-right, spear, sunburst. That's 7, within 5-9. We can add arm as an extra to make 8. We'll add .arm-raised. Let's adjust JS entry accordingly. But we already wrote JS above with 7 items. Need to add arm-raised to that scene. Let's adjust: Instead of sunburst maybe add arm. But sunburst is nice for lighting. We'll keep 8: add arm after orator. I'll edit JS in final output. Let's note: final JS must have arm-raised div. Let's rewrite JS for this scene now.

I'll adjust the JS map entry for xenophon-argues-for-attack to include arm-raised. We'll remove sunburst? No, keep sunburst for atmosphere. So total 8 divs. Then CSS accordingly.

We'll add:
.scn-xenophon-argues-for-attack .arm-raised {
  position: absolute; bottom: 58%; left: 52%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: xaa-arm 3s ease-in-out infinite alternate;
}

And keyframes.

Also need to adjust JS accordingly. I'll write final JS below.

Now continue CSS.
*/
.scn-xenophon-argues-for-attack .soldier-audience-left {
  position: absolute; bottom: 18%; left: 10%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: xaa-sold-l 7s ease-in-out infinite alternate;
}
.scn-xenophon-argues-for-attack .soldier-audience-right {
  position: absolute; bottom: 18%; right: 10%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: -2px 2px 4px rgba(0,0,0,0.4);
  animation: xaa-sold-r 7s ease-in-out infinite alternate 2s;
}
.scn-xenophon-argues-for-attack .spear-angled {
  position: absolute; bottom: 45%; left: 38%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%);
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: xaa-spear 6s ease-in-out infinite alternate;
}
.scn-xenophon-argues-for-attack .sunburst {
  position: absolute; top: 5%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe680 0%, #ffe680 20%, transparent 60%);
  filter: blur(10px);
  animation: xaa-sun 20s ease-in-out infinite alternate;
}
@keyframes xaa-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes xaa-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1.02); }
}
@keyframes xaa-orator {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(3deg) scaleY(0.95); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes xaa-arm {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-5px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes xaa-sold-l {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(2px) rotate(-1deg); }
}
@keyframes xaa-sold-r {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes xaa-spear {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-4px); }
  100% { transform: rotate(-25deg) translateY(0); }
}
@keyframes xaa-sun {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.9); }
}

.scn-retreat-plan { background: linear-gradient(180deg, #2c1e4a 0%, #6b4a3a 40%, #c47a50 70%, #f0c870 100%), radial-gradient(ellipse at 50% 100%, #d49550 0%, transparent 60%); }
.scn-retreat-plan .sky-rp { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #1a1a3a 0%, #3a2a3e 40%, #8a5a3a 70%, #d0a060 100%); animation: rp-sky 8s ease-in-out infinite alternate; }
.scn-retreat-plan .sun-rp { position:absolute; top:10%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #f0a030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(240,160,48,.3); animation: rp-sun 10s ease-in-out infinite; }
.scn-retreat-plan .hills-rp { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.5); animation: rp-hills 15s ease-in-out infinite alternate; }
.scn-retreat-plan .road-rp { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 30%, #4a3a2a 70%, #3a2a1a 100%); clip-path: polygon(35% 0%, 65% 0%, 55% 100%, 45% 100%); animation: rp-road 20s linear infinite; }
.scn-retreat-plan .figure-rp { position:absolute; bottom:22%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 60%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-retreat-plan .figure-1-rp { left:30%; animation: rp-figure1 3s ease-in-out infinite; }
.scn-retreat-plan .figure-2-rp { left:50%; animation: rp-figure2 3.5s ease-in-out infinite 0.5s; }
.scn-retreat-plan .spear-rp { position:absolute; bottom:32%; left:40%; width:2px; height:50px; background: linear-gradient(180deg, #8a7010 0%, #5a4010 100%); transform: rotate(15deg); transform-origin: bottom center; border-radius: 20%; box-shadow: 0 0 2px 1px rgba(200,160,20,.4); animation: rp-spear 2s ease-in-out infinite; }
@keyframes rp-sky { 0% { opacity:.7; background-position:0 0; } 50% { opacity:.9; background-position:20px 10px; } 100% { opacity:.6; background-position:-10px -5px; } }
@keyframes rp-sun { 0%,100% { transform: scale(.95) translateY(0); opacity:.8; } 50% { transform: scale(1.05) translateY(-5px); opacity:1; } }
@keyframes rp-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(2px) scale(.99); } }
@keyframes rp-road { 0% { background-position:0 0; } 100% { background-position:100% 0; } }
@keyframes rp-figure1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(15px) translateY(-3px) rotate(3deg); } 60% { transform: translateX(30px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(45px) translateY(0) rotate(2deg); } }
@keyframes rp-figure2 { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 30% { transform: translateX(18px) translateY(-4px) rotate(-3deg); } 60% { transform: translateX(36px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(54px) translateY(0) rotate(-1deg); } }
@keyframes rp-spear { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } }

.scn-gongylus-joins { background: linear-gradient(180deg, #1e1a3a 0%, #4a3a4a 40%, #8a5a3a 70%, #d49a50 100%), radial-gradient(ellipse at 30% 100%, #b47a40 0%, transparent 70%); }
.scn-gongylus-joins .sky-gj { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1a3a 0%, #3a2a3e 40%, #7a4a3a 70%, #b08040 100%); animation: gj-sky 10s ease-in-out infinite alternate; }
.scn-gongylus-joins .ground-gj { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-gongylus-joins .tent-gj { position:absolute; bottom:28%; left:25%; width:120px; height:80px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.5); transform: skewX(-5deg); animation: gj-tent 12s ease-in-out infinite alternate; }
.scn-gongylus-joins .door-gj { position:absolute; bottom:28%; left:32%; width:30px; height:50px; background: #1a1a2a; border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.8); animation: gj-door 4s ease-in-out infinite; }
.scn-gongylus-joins .gongylus-fig-gj { position:absolute; bottom:30%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 60%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gj-gongylus 5s ease-in-out infinite; }
.scn-gongylus-joins .soldier-gj { position:absolute; bottom:30%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 60%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-gongylus-joins .soldier-a-gj { left:20%; animation: gj-soldier-a 6s ease-in-out infinite; }
.scn-gongylus-joins .soldier-b-gj { left:55%; animation: gj-soldier-b 6.5s ease-in-out infinite 1s; }
.scn-gongylus-joins .banner-gj { position:absolute; bottom:42%; left:45%; width:2px; height:40px; background: #4a3010; transform: rotate(-5deg); transform-origin: bottom; }
.scn-gongylus-joins .banner-gj::after { content:''; position:absolute; top:0; left:-8px; width:20px; height:12px; background: linear-gradient(135deg, #8a5030 0%, #6a3020 100%); border-radius: 0 40% 20% 0; animation: gj-banner 3s ease-in-out infinite; }
@keyframes gj-sky { 0% { background-position:0 0; opacity:.8; } 50% { background-position:30px -10px; opacity:1; } 100% { background-position:-20px 10px; opacity:.7; } }
@keyframes gj-tent { 0%,100% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-3px); } }
@keyframes gj-door { 0%,100% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.05); opacity:1; } }
@keyframes gj-gongylus { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(10px) translateY(-4px) rotate(3deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(30px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(40px) translateY(0) rotate(0); } }
@keyframes gj-soldier-a { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes gj-soldier-b { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes gj-banner { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }

.scn-hard-pressed { background: linear-gradient(180deg, #12121e 0%, #1e1a2a 40%, #2a1e2e 70%, #3a2a3a 100%), radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, transparent 80%); }
.scn-hard-pressed .sky-hp { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 30%, #2a2a3a 60%, #1e1e2e 100%); animation: hp-sky 12s ease-in-out infinite alternate; }
.scn-hard-pressed .river-hp { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 30%, #1a2a3a 70%, #0a1a2a 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: hp-river 8s linear infinite; }
.scn-hard-pressed .bank-hp { position:absolute; bottom:15%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-hard-pressed .soldier-hp { position:absolute; bottom:20%; width:16px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 60%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-hard-pressed .soldier-left-hp { left:30%; animation: hp-soldier-left 3s ease-in-out infinite; }
.scn-hard-pressed .soldier-right-hp { left:60%; animation: hp-soldier-right 3.5s ease-in-out infinite 0.5s; }
.scn-hard-pressed .arrow-hp { position:absolute; width:2px; height:12px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 0 0 50% 50%; transform-origin: top center; }
.scn-hard-pressed .arrow-1-hp { top:20%; left:40%; animation: hp-arrow1 1.5s linear infinite; }
.scn-hard-pressed .arrow-2-hp { top:30%; left:55%; animation: hp-arrow2 2s linear infinite 0.5s; }
@keyframes hp-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.5; } }
@keyframes hp-river { 0% { background-position:0 0; } 100% { background-position:100% 0; } }
@keyframes hp-soldier-left { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 20% { transform: translateX(5px) translateY(-3px) rotate(3deg); } 40% { transform: translateX(10px) translateY(0) rotate(-1deg); } 60% { transform: translateX(15px) translateY(-4px) rotate(2deg); } 80% { transform: translateX(20px) translateY(0) rotate(-3deg); } 100% { transform: translateX(25px) translateY(0) rotate(0); } }
@keyframes hp-soldier-right { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 20% { transform: translateX(-5px) translateY(-2px) rotate(-2deg); } 40% { transform: translateX(-10px) translateY(0) rotate(1deg); } 60% { transform: translateX(-15px) translateY(-3px) rotate(-1deg); } 80% { transform: translateX(-20px) translateY(0) rotate(2deg); } 100% { transform: translateX(-25px) translateY(0) rotate(0); } }
@keyframes hp-arrow1 { 0% { transform: translateY(0) rotate(-10deg); opacity:1; } 80% { opacity:1; } 100% { transform: translateY(80vh) rotate(10deg); opacity:0; } }
@keyframes hp-arrow2 { 0% { transform: translateY(0) rotate(15deg); opacity:1; } 80% { opacity:1; } 100% { transform: translateY(80vh) rotate(-5deg); opacity:0; } }

.scn-safe-return { background: linear-gradient(180deg, #2a1e3a 0%, #4a3a4a 30%, #8a6a4a 60%, #d4a060 100%), radial-gradient(ellipse at 50% 100%, #b08040 0%, transparent 70%); }
.scn-safe-return .sky-sr { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #1a1a3a 0%, #3a2a3e 30%, #7a4a3a 60%, #c08040 100%); animation: sr-sky 10s ease-in-out infinite alternate; }
.scn-safe-return .hills-sr { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: sr-hills 18s ease-in-out infinite alternate; }
.scn-safe-return .path-sr { position:absolute; bottom:15%; left:30%; right:30%; height:20%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 30%, #4a3a2a 70%, #3a2a1a 100%); clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%); animation: sr-path 20s linear infinite; }
.scn-safe-return .figure-sr { position:absolute; bottom:22%; left:40%; width:18px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 60%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-figure 8s ease-in-out infinite; }
.scn-safe-return .sheep-sr { position:absolute; bottom:20%; width:20px; height:14px; background: radial-gradient(ellipse at 50% 50%, #e8d8c0 0%, #c8b8a0 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-safe-return .sheep-1-sr { left:50%; animation: sr-sheep1 12s ease-in-out infinite; }
.scn-safe-return .sheep-2-sr { left:55%; animation: sr-sheep2 14s ease-in-out infinite 2s; }
.scn-safe-return .village-sr { position:absolute; bottom:30%; right:15%; width:60px; height:40px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: sr-village 20s ease-in-out infinite alternate; }
@keyframes sr-sky { 0% { opacity:.8; background-position:0 0; } 50% { opacity:1; background-position:20px 5px; } 100% { opacity:.7; background-position:-10px -5px; } }
@keyframes sr-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sr-path { 0% { background-position:0 0; } 100% { background-position:100% 0; } }
@keyframes sr-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(20px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(40px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(60px) translateY(0) rotate(1deg); } }
@keyframes sr-sheep1 { 0%,100% { transform: translateX(0); } 50% { transform: translateX(15px); } }
@keyframes sr-sheep2 { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-10px); } }
@keyframes sr-village { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

/* Scene 1: xenophon-recounts-athenian-defeat */
.scn-xenophon-recounts-athenian-defeat {
  background: linear-gradient(180deg, #ffe6b0 0%, #f0c87a 30%, #b87c4a 60%, #5a3a2a 100%),
              radial-gradient(ellipse at 70% 20%, #ffe280 0%, transparent 50%);
}
.scn-xenophon-recounts-athenian-defeat .xr-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fce4c8 0%, #e0b878 50%, #c09050 100%);
  animation: xr-sky 12s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-athenian-defeat .xr-sun {
  position: absolute; top: 18%; left: 72%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5d0 0%, #ffd580 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,213,128,0.5), 0 0 120px 40px rgba(255,213,128,0.2);
  animation: xr-sun 20s ease-in-out infinite;
}
.scn-xenophon-recounts-athenian-defeat .xr-city-bg {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 0%, 10% 0%, 10% 60%, 18% 60%, 18% 20%, 28% 20%, 28% 70%, 35% 70%, 35% 10%, 45% 10%, 45% 50%, 55% 50%, 55% 0%, 65% 0%, 65% 40%, 75% 40%, 75% 20%, 85% 20%, 85% 60%, 95% 60%, 95% 0%, 100% 0%, 100% 100%, 0% 100%);
  opacity: 0.7;
  animation: xr-city-bg 8s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-athenian-defeat .xr-city-fg {
  position: absolute; bottom: 20%; left: 8%; right: 8%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 70%);
  clip-path: polygon(0% 0%, 8% 0%, 8% 70%, 15% 70%, 15% 10%, 25% 10%, 25% 50%, 32% 50%, 32% 0%, 40% 0%, 40% 60%, 50% 60%, 50% 20%, 60% 20%, 60% 70%, 70% 70%, 70% 0%, 80% 0%, 80% 40%, 88% 40%, 88% 10%, 100% 10%, 100% 100%, 0% 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: xr-city-fg 10s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-athenian-defeat .xr-harbor {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  animation: xr-harbor 15s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-athenian-defeat .xr-ship {
  position: absolute; bottom: 14%; left: 20%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 10% 20%, 20% 0%, 80% 0%, 90% 20%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: xr-ship 25s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-athenian-defeat .xr-treasure {
  position: absolute; bottom: 8%; left: 70%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(192,128,64,0.4);
  animation: xr-treasure 4s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-athenian-defeat .xr-cloud-a {
  position: absolute; top: 8%; left: 10%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,240,200,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: xr-cloud-drift 40s linear infinite;
}
.scn-xenophon-recounts-athenian-defeat .xr-cloud-b {
  position: absolute; top: 12%; right: 15%; width: 80px; height: 25px;
  background: radial-gradient(ellipse, rgba(255,240,200,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: xr-cloud-drift 50s linear infinite reverse;
}

@keyframes xr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes xr-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(10px, -5px) scale(1.05); } 100% { transform: translate(0, 0) scale(0.95); } }
@keyframes xr-city-bg { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes xr-city-fg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes xr-harbor { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: 0% 0%; } }
@keyframes xr-ship { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(30px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes xr-treasure { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 8px 2px rgba(192,128,64,0.4); } 50% { transform: translateY(-4px) scale(1.1); box-shadow: 0 0 14px 4px rgba(192,128,64,0.7); } 100% { transform: translateY(0) scale(0.95); box-shadow: 0 0 8px 2px rgba(192,128,64,0.3); } }
@keyframes xr-cloud-drift { 0% { transform: translateX(-100px); } 100% { transform: translateX(calc(100vw + 100px)); } }

/* Scene 2: xenophon-warns-of-future */
.scn-xenophon-warns-of-future {
  background: linear-gradient(180deg, #d4b878 0%, #b89858 30%, #8a7040 60%, #4a3a20 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a30 0%, transparent 70%);
}
.scn-xenophon-warns-of-future .xw-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ead8a0 0%, #c8ac70 100%);
  animation: xw-sky 10s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-future .xw-horizon {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a20 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: xw-horizon 14s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-future .xw-map {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 0%, 20% 0%, 20% 30%, 35% 30%, 35% 10%, 50% 10%, 50% 25%, 65% 25%, 65% 5%, 80% 5%, 80% 35%, 100% 35%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: xw-map 8s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-future .xw-army-left {
  position: absolute; bottom: 30%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xw-march 5s ease-in-out infinite;
}
.scn-xenophon-warns-of-future .xw-army-right {
  position: absolute; bottom: 30%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xw-march 5s ease-in-out infinite 2.5s;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.5));
}
.scn-xenophon-warns-of-future .xw-spear-1 {
  position: absolute; bottom: 40%; left: 30%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: xw-spear 6s ease-in-out infinite;
}
.scn-xenophon-warns-of-future .xw-spear-2 {
  position: absolute; bottom: 40%; right: 25%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(15deg);
  animation: xw-spear 6s ease-in-out infinite 3s;
}
.scn-xenophon-warns-of-future .xw-dust {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 100%, rgba(180,160,120,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: xw-dust 10s ease-in-out infinite alternate;
}
@keyframes xw-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xw-horizon { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(0.95); } }
@keyframes xw-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes xw-march { 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(0) translateY(0) rotate(0deg); } }
@keyframes xw-spear { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes xw-dust { 0% { opacity: 0.4; transform: translateX(0); } 50% { opacity: 0.8; transform: translateX(20px); } 100% { opacity: 0.4; transform: translateX(-20px); } }

/* Scene 3: xenophon-pleads-for-peace */
.scn-xenophon-pleads-for-peace {
  background: linear-gradient(180deg, #f0e6c0 0%, #d4c098 30%, #a8885a 60%, #5a4a2a 100%),
              radial-gradient(ellipse at 50% 20%, #ffe8a0 0%, transparent 50%);
}
.scn-xenophon-pleads-for-peace .xp-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fce8c0 0%, #e0c890 100%);
  animation: xp-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-pleads-for-peace .xp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a7040 0%, #5a4a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  animation: xp-ground 10s ease-in-out infinite alternate;
}
.scn-xenophon-pleads-for-peace .xp-figure-left {
  position: absolute; bottom: 20%; left: 28%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xp-bow 8s ease-in-out infinite;
}
.scn-xenophon-pleads-for-peace .xp-figure-right {
  position: absolute; bottom: 20%; right: 28%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xp-bow 8s ease-in-out infinite 4s;
}
.scn-xenophon-pleads-for-peace .xp-olive {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 50% 50% / 30% 30% 70% 70%;
  transform: translateX(-50%);
  box-shadow: 0 0 10px 4px rgba(74,106,58,0.3);
  animation: xp-olive 12s ease-in-out infinite alternate;
}
.scn-xenophon-pleads-for-peace .xp-shield {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a20 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: xp-shield 5s ease-in-out infinite alternate;
}
.scn-xenophon-pleads-for-peace .xp-sunburst {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,220,160,0.4) 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: xp-sunburst 20s ease-in-out infinite;
}
@keyframes xp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes xp-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(0.97); } }
@keyframes xp-bow { 0% { transform: translateY(0) rotate(5deg); } 25% { transform: translateY(-10px) rotate(-10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-5px) rotate(8deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes xp-olive { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } 100% { transform: translateX(-50%) scale(0.9); } }
@keyframes xp-shield { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(10deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes xp-sunburst { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.8); } 50% { opacity: 0.6; transform: translateX(-50%) scale(1.2); } 100% { opacity: 0.3; transform: translateX(-50%) scale(0.8); } }

/* Scene 4: xenophon-counsels-obedience */
.scn-xenophon-counsels-obedience {
  background: linear-gradient(180deg, #e8d8b0 0%, #d0bc90 30%, #a89060 60%, #7a6a40 100%),
              radial-gradient(ellipse at 50% 0%, #f4e0a0 0%, transparent 60%);
}
.scn-xenophon-counsels-obedience .xc-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c898 100%);
  animation: xc-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-counsels-obedience .xc-gate {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 70% 100%, 70% 60%, 30% 60%, 30% 100%, 0% 100%);
  animation: xc-gate 12s ease-in-out infinite alternate;
}
.scn-xenophon-counsels-obedience .xc-figure {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: xc-enter 15s ease-in-out infinite alternate;
}
.scn-xenophon-counsels-obedience .xc-hand {
  position: absolute; bottom: 30%; left: 48%; width: 16px; height: 12px;
  background: radial-gradient(ellipse, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform: rotate(20deg);
  animation: xc-gesture 6s ease-in-out infinite;
}
.scn-xenophon-counsels-obedience .xc-path {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #a09060 0%, #7a6a40 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: xc-path 20s ease-in-out infinite alternate;
}
.scn-xenophon-counsels-obedience .xc-cloud {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,240,200,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: xc-cloud 45s linear infinite;
}
@keyframes xc-sky { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xc-gate { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes xc-enter { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-8px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes xc-gesture { 0% { transform: rotate(20deg) scale(1); opacity: 0.6; } 50% { transform: rotate(0deg) scale(1.2); opacity: 1; } 100% { transform: rotate(20deg) scale(0.9); opacity: 0.7; } }
@keyframes xc-path { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes xc-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(calc(100vw + 200px)); } }

.scn-narrow-passage-trench {
  background: linear-gradient(180deg, #5b8db5 0%, #9fc5e8 40%, #e1c699 70%, #c2a378 100%), radial-gradient(ellipse at 50% 0%, #ffd598 0%, transparent 60%);
}
.scn-narrow-passage-trench .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(0deg, #b3d4f0 0%, #fde68a 70%);
  animation: npt-sky 20s ease-in-out infinite alternate;
}
.scn-narrow-passage-trench .sun {
  position: absolute; top: 12%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe259 0%, #ffa751 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ffb347;
  animation: npt-sun 6s ease-in-out infinite alternate;
}
.scn-narrow-passage-trench .river {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a7bd5 0%, #2b5ea7 50%, #1d3b6e 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: npt-river 12s linear infinite;
}
.scn-narrow-passage-trench .trench {
  position: absolute; bottom: 30%; left: 20%; right: 50%; height: 20%;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3520 100%);
  border-radius: 0 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-narrow-passage-trench .passage {
  position: absolute; bottom: 28%; left: 45%; right: 15%; height: 18%;
  background: linear-gradient(0deg, #c8a46a 0%, #dbb88c 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-narrow-passage-trench .soldier-left {
  position: absolute; bottom: 26%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: npt-march 8s ease-in-out infinite;
}
.scn-narrow-passage-trench .soldier-right {
  position: absolute; bottom: 26%; left: 52%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: npt-march 8s ease-in-out infinite 4s;
}
.scn-narrow-passage-trench .dust {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 10%;
  background: radial-gradient(ellipse at 30% 50%, rgba(210,180,140,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: npt-dust 15s ease-in-out infinite alternate;
}
@keyframes npt-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; background: linear-gradient(0deg, #b3d4f0 0%, #fde68a 70%); }
  100% { opacity: 0.7; }
}
@keyframes npt-sun {
  0% { transform: scale(1); box-shadow: 0 0 60px 20px #ffb347; }
  50% { transform: scale(1.05); box-shadow: 0 0 90px 35px #ffcc5c; }
  100% { transform: scale(0.95); box-shadow: 0 0 70px 25px #ffb347; }
}
@keyframes npt-river {
  0% { background-position: 0 0; }
  100% { background-position: 100% 0; }
}
@keyframes npt-march {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(6px) rotate(1deg); }
  50% { transform: translateX(12px) rotate(-1deg); }
  75% { transform: translateX(18px) rotate(2deg); }
  100% { transform: translateX(24px) rotate(0deg); }
}
@keyframes npt-dust {
  0% { transform: translateX(0) scaleY(1); opacity: 0.4; }
  50% { transform: translateX(-10px) scaleY(1.2); opacity: 0.6; }
  100% { transform: translateX(10px) scaleY(0.8); opacity: 0.3; }
}

.scn-silanus-prophecy-reward {
  background: linear-gradient(180deg, #2e1b0e 0%, #4a2e1a 40%, #6b4528 70%, #1a0f07 100%), radial-gradient(ellipse at 30% 60%, #d4893a 0%, transparent 70%);
}
.scn-silanus-prophecy-reward .tent-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #8b6914 0%, #5c4510 50%, #3d2e0a 100%);
  border-bottom: 4px solid #4a3a12;
  animation: spr-wall 10s ease-in-out infinite alternate;
}
.scn-silanus-prophecy-reward .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b4f2a 0%, #3d2b14 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-silanus-prophecy-reward .table {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #5c3e1a 0%, #8b6924 50%, #5c3e1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 8px rgba(0,0,0,0.5);
  animation: spr-table 8s ease-in-out infinite;
}
.scn-silanus-prophecy-reward .candle {
  position: absolute; bottom: 35%; left: 58%; width: 8px; height: 20px;
  background: linear-gradient(0deg, #d4a04a 0%, #f0cd7a 40%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px #f5c76a, 0 0 40px 15px rgba(245,199,106,0.5);
  animation: spr-candle 3s ease-in-out infinite alternate;
}
.scn-silanus-prophecy-reward .coins {
  position: absolute; bottom: 27%; left: 42%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, #f7d16a 0%, #d4a03a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: spr-coins 5s ease-in-out infinite;
}
.scn-silanus-prophecy-reward .figure-cyrus {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #201510 0%, #0f0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spr-seated 6s ease-in-out infinite;
}
.scn-silanus-prophecy-reward .figure-silanus {
  position: absolute; bottom: 22%; left: 52%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: spr-standing 7s ease-in-out infinite;
}
.scn-silanus-prophecy-reward .drape {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a2a1a 0%, transparent 100%);
  filter: blur(2px);
  animation: spr-drape 15s ease-in-out infinite alternate;
}
@keyframes spr-wall {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; background: linear-gradient(135deg, #a0771a 0%, #6b4f12 50%, #4a3a0e 100%); }
}
@keyframes spr-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes spr-candle {
  0% { opacity: 0.8; box-shadow: 0 0 15px 5px #f5c76a; }
  50% { opacity: 1; box-shadow: 0 0 30px 12px #ffd98a; }
  100% { opacity: 0.9; box-shadow: 0 0 20px 8px #f5c76a; }
}
@keyframes spr-coins {
  0%,100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.1) translateY(-1px); box-shadow: 0 6px 10px rgba(0,0,0,0.5); }
}
@keyframes spr-seated {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes spr-standing {
  0%,100% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-3px) rotate(2deg); }
  66% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes spr-drape {
  0% { transform: scaleY(0.95); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.98); }
}

.scn-cyrus-less-cautious {
  background: linear-gradient(180deg, #e6c975 0%, #f9e8b0 40%, #f5deb3 70%, #d4b896 100%), radial-gradient(ellipse at 50% 0%, #fff5d4 0%, transparent 60%);
}
.scn-cyrus-less-cautious .sky-bright {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(0deg, #f9e8b0 0%, #fff8dc 50%, #e6c975 100%);
  animation: clc-sky 15s ease-in-out infinite alternate;
}
.scn-cyrus-less-cautious .sun-glare {
  position: absolute; top: 5%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffffff 0%, #ffe259 30%, #ffa751 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px #ffb347, 0 0 200px 80px rgba(255,179,71,0.3);
  animation: clc-sun 8s ease-in-out infinite alternate;
}
.scn-cyrus-less-cautious .horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 12%;
  background: linear-gradient(0deg, #8b6914 0%, #b8943a 30%, transparent 100%);
  border-radius: 40% 60% 0 0;
}
.scn-cyrus-less-cautious .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8a46a 0%, #a8854e 50%, #8b6f3a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-cyrus-less-cautious .rider {
  position: absolute; bottom: 28%; left: 60%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: clc-rider 4s ease-in-out infinite;
}
.scn-cyrus-less-cautious .soldiers {
  position: absolute; bottom: 26%; left: 10%; right: 10%; height: 14px;
  background: repeating-linear-gradient(90deg, #1e1e2e 0px 8px, transparent 8px 16px);
  background-size: 16px 100%;
  filter: blur(0.5px);
  animation: clc-march 20s linear infinite;
}
.scn-cyrus-less-cautious .dust-cloud {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,180,150,0.7) 0%, transparent 70%);
  filter: blur(10px);
  animation: clc-dust 25s ease-in-out infinite alternate;
}
@keyframes clc-sky {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes clc-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.1); box-shadow: 0 0 120px 50px #ffcc5c; }
  100% { transform: scale(0.95); opacity: 0.85; }
}
@keyframes clc-rider {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(10px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(20px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(30px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(40px) translateY(0) rotate(0deg); }
}
@keyframes clc-march {
  0% { background-position: 0 0; }
  100% { background-position: -32px 0; }
}
@keyframes clc-dust {
  0% { transform: translateX(-20px) scaleY(0.8); opacity: 0.4; }
  50% { transform: translateX(0) scaleY(1.3); opacity: 0.7; }
  100% { transform: translateX(20px) scaleY(0.9); opacity: 0.3; }
}

.scn-pategyas-announces-king {
  background: linear-gradient(180deg, #d4a85a 0%, #f5d78a 40%, #e8c46a 70%, #c8a44a 100%), radial-gradient(ellipse at 70% 10%, #fff0b0 0%, transparent 60%);
}
.scn-pategyas-announces-king .sky-tense {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(0deg, #e8c46a 0%, #fce4a0 50%, #fff8d6 100%);
  animation: pak-sky 10s ease-in-out infinite alternate;
}
.scn-pategyas-announces-king .sun-burst {
  position: absolute; top: 8%; right: 15%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffffff 0%, #ffe259 30%, #f5b342 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px #ffb347, 0 0 150px 60px rgba(255,179,71,0.4);
  animation: pak-sun 5s ease-in-out infinite alternate;
}
.scn-pategyas-announces-king .ground-fast {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #c8a46a 0%, #a8854e 50%, #8b6f3a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-pategyas-announces-king .horse-gallop {
  position: absolute; bottom: 22%; left: 20%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pak-horse 2s ease-in-out infinite;
}
.scn-pategyas-announces-king .rider-shout {
  position: absolute; bottom: 29%; left: 28%; width: 12px; height: 22px;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pak-rider 2.5s ease-in-out infinite;
}
.scn-pategyas-announces-king .dust-trail {
  position: absolute; bottom: 18%; left: 5%; right: 40%; height: 6%;
  background: radial-gradient(ellipse at 20% 50%, rgba(210,190,160,0.8) 0%, transparent 70%);
  filter: blur(12px);
  animation: pak-dust 3s linear infinite;
}
.scn-pategyas-announces-king .banner {
  position: absolute; top: 20%; left: 60%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #6b4f2a 0%, #4a3520 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: pak-banner 6s ease-in-out infinite;
}
@keyframes pak-sky {
  0%,100% { opacity: 0.85; }
  50% { opacity: 1; }
}
@keyframes pak-sun {
  0% { transform: scale(0.9) rotate(-5deg); box-shadow: 0 0 80px 30px #ffb347; }
  50% { transform: scale(1.1) rotate(5deg); box-shadow: 0 0 120px 50px #ffcc5c; }
  100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 90px 35px #ffb347; }
}
@keyframes pak-horse {
  0% { transform: translateX(0) translateY(0) rotate(-3deg) scaleX(1); }
  25% { transform: translateX(15px) translateY(-4px) rotate(2deg) scaleX(1.05); }
  50% { transform: translateX(30px) translateY(0) rotate(-2deg) scaleX(0.95); }
  75% { transform: translateX(45px) translateY(-2px) rotate(3deg) scaleX(1.02); }
  100% { transform: translateX(60px) translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes pak-rider {
  0%,100% { transform: translateY(0) rotate(-4deg); }
  25% { transform: translateY(-6px) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  75% { transform: translateY(-4px) rotate(4deg); }
}
@keyframes pak-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(-10px) scale(1.5); opacity: 0.8; }
  100% { transform: translateX(-20px) scale(2); opacity: 0; }
}
@keyframes pak-banner {
  0%,100% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
}

/* ===== scene: xenophon-replies-to-medosades ===== */
.scn-xenophon-replies-to-medosades {
  background: linear-gradient(180deg, #f7d9b0 0%, #e6b080 40%, #c68a5a 100%), radial-gradient(ellipse at 50% 80%, #fce4c8 0%, transparent 70%);
}
.scn-xenophon-replies-to-medosades .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe6cc 0%, #f7c6a0 100%); animation: xrm-sky 10s ease-in-out infinite alternate; }
.scn-xenophon-replies-to-medosades .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: xrm-ground 12s ease-in-out infinite; }
.scn-xenophon-replies-to-medosades .tent-left { position:absolute; bottom:30%; left:15%; width:80px; height:60px; background: linear-gradient(135deg, #b08050 0%, #8a6a3a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: xrm-tent 4s ease-in-out infinite alternate; }
.scn-xenophon-replies-to-medosades .tent-right { position:absolute; bottom:30%; right:20%; width:70px; height:50px; background: linear-gradient(135deg, #a07040 0%, #785a30 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: xrm-tent 5s ease-in-out infinite alternate reverse; }
.scn-xenophon-replies-to-medosades .figure-x { position:absolute; bottom:28%; left:45%; width:16px; height:32px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xrm-figx 3s ease-in-out infinite; }
.scn-xenophon-replies-to-medosades .figure-m { position:absolute; bottom:28%; left:55%; width:14px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xrm-figm 3.5s ease-in-out infinite; }
.scn-xenophon-replies-to-medosades .sun-glow { position:absolute; top:15%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #ffe8a0 0%, #f0c060 50%, transparent 70%); border-radius:50%; filter: blur(4px); animation: xrm-sun 8s ease-in-out infinite alternate; }
@keyframes xrm-sky { 0% { opacity:.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:.85; transform:scaleY(.98); } }
@keyframes xrm-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(1px); } }
@keyframes xrm-tent { 0% { transform:translate(0,0) rotate(0deg); } 50% { transform:translate(-2px,-1px) rotate(-1deg); } 100% { transform:translate(1px,0) rotate(1deg); } }
@keyframes xrm-figx { 0% { transform:translate(0,0) rotate(-2deg) scaleX(1); } 25% { transform:translate(3px,-1px) rotate(0deg) scaleX(1.05); } 50% { transform:translate(-2px,0) rotate(1deg) scaleX(.95); } 75% { transform:translate(1px,1px) rotate(-1deg) scaleX(1.02); } 100% { transform:translate(0,0) rotate(0deg) scaleX(1); } }
@keyframes xrm-figm { 0% { transform:translate(0,0) rotate(0deg); } 25% { transform:translate(-2px,1px) rotate(2deg); } 50% { transform:translate(3px,0) rotate(-1deg); } 75% { transform:translate(-1px,-1px) rotate(0deg); } 100% { transform:translate(0,0) rotate(1deg); } }
@keyframes xrm-sun { 0% { opacity:.6; transform:scale(.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(.95); } }

/* ===== scene: xenophon-recalls-past-freedom ===== */
.scn-xenophon-recalls-past-freedom {
  background: linear-gradient(180deg, #f5d4b0 0%, #ddb080 40%, #b8864a 100%), radial-gradient(ellipse at 30% 70%, #f0c890 0%, transparent 60%);
}
.scn-xenophon-recalls-past-freedom .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe3c8 0%, #f5c8a0 100%); animation: xrf-sky 18s ease-in-out infinite alternate; }
.scn-xenophon-recalls-past-freedom .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20% 80% 0 0 / 70% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: xrf-ground 14s ease-in-out infinite; }
.scn-xenophon-recalls-past-freedom .rider-a { position:absolute; bottom:32%; left:10%; width:30px; height:40px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: xrf-rider 2.5s ease-in-out infinite; }
.scn-xenophon-recalls-past-freedom .rider-b { position:absolute; bottom:30%; left:30%; width:28px; height:38px; background: linear-gradient(180deg, #3a2212 0%, #22120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: xrf-rider 3s ease-in-out infinite reverse; }
.scn-xenophon-recalls-past-freedom .rider-c { position:absolute; bottom:28%; left:55%; width:26px; height:36px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: xrf-rider 3.5s ease-in-out infinite; animation-delay: .5s; }
.scn-xenophon-recalls-past-freedom .dust-cloud { position:absolute; bottom:25%; left:5%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(180,140,80,.5) 0%, transparent 80%); filter: blur(6px); animation: xrf-dust 6s ease-in-out infinite; }
.scn-xenophon-recalls-past-freedom .spear { position:absolute; bottom:35%; left:48%; width:2px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 100%); transform-origin: bottom center; animation: xrf-spear 4s ease-in-out infinite; }
@keyframes xrf-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes xrf-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(2px); } }
@keyframes xrf-rider { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(12px) translateY(-4px) rotate(3deg) scaleX(1.02); } 50% { transform:translateX(24px) translateY(0) rotate(-2deg) scaleX(.98); } 75% { transform:translateX(36px) translateY(-3px) rotate(4deg) scaleX(1.01); } 100% { transform:translateX(48px) translateY(0) rotate(0deg); } }
@keyframes xrf-dust { 0% { transform:translateX(0) scale(1); opacity:.3; } 50% { transform:translateX(30px) scale(1.2); opacity:.6; } 100% { transform:translateX(60px) scale(1); opacity:.2; } }
@keyframes xrf-spear { 0% { transform:translate(0,0) rotate(-10deg); } 50% { transform:translate(2px,-1px) rotate(5deg); } 100% { transform:translate(-1px,0) rotate(-8deg); } }

/* ===== scene: xenophon-chides-ingratitude ===== */
.scn-xenophon-chides-ingratitude {
  background: linear-gradient(180deg, #e8c8a0 0%, #c89060 40%, #a06838 100%), radial-gradient(ellipse at 40% 90%, #f0d8b0 0%, transparent 60%);
}
.scn-xenophon-chides-ingratitude .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #f7dcc0 0%, #e8b890 100%); animation: xci-sky 8s ease-in-out infinite alternate; }
.scn-xenophon-chides-ingratitude .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a4a32 0%, #2a1a0e 100%); border-radius: 50% 50% 0 0 / 60% 40% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,.5); animation: xci-ground 10s ease-in-out infinite; }
.scn-xenophon-chides-ingratitude .figure-x { position:absolute; bottom:30%; left:42%; width:18px; height:36px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xci-figx 3s ease-in-out infinite; }
.scn-xenophon-chides-ingratitude .figure-m { position:absolute; bottom:28%; left:55%; width:16px; height:32px; background: linear-gradient(180deg, #3a2212 0%, #22120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xci-figm 3.5s ease-in-out infinite; }
.scn-xenophon-chides-ingratitude .tent { position:absolute; bottom:35%; left:20%; width:70px; height:55px; background: linear-gradient(135deg, #a07040 0%, #785a30 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: xci-tent 6s ease-in-out infinite alternate; }
.scn-xenophon-chides-ingratitude .shield { position:absolute; bottom:32%; left:48%; width:10px; height:20px; background: radial-gradient(ellipse, #c87040 0%, #88482a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,112,64,.4); animation: xci-shield 4s ease-in-out infinite alternate; }
.scn-xenophon-chides-ingratitude .shadow { position:absolute; bottom:25%; left:40%; width:60px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); filter: blur(3px); animation: xci-shadow 5s ease-in-out infinite; }
@keyframes xci-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes xci-ground { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(1px); } }
@keyframes xci-figx { 0% { transform:translate(0,0) rotate(-3deg) scaleX(1); } 20% { transform:translate(5px,-1px) rotate(0deg) scaleX(1.03); } 40% { transform:translate(0,0) rotate(2deg) scaleX(.98); } 60% { transform:translate(-3px,1px) rotate(-2deg) scaleX(1.02); } 80% { transform:translate(4px,0) rotate(1deg) scaleX(.97); } 100% { transform:translate(0,0) rotate(0deg) scaleX(1); } }
@keyframes xci-figm { 0% { transform:translate(0,0) rotate(0deg); } 25% { transform:translate(-4px,1px) rotate(4deg); } 50% { transform:translate(2px,0) rotate(-3deg); } 75% { transform:translate(-2px,-1px) rotate(2deg); } 100% { transform:translate(0,0) rotate(-1deg); } }
@keyframes xci-tent { 0% { transform:rotate(0deg) scaleX(1); } 50% { transform:rotate(-2deg) scaleX(1.04); } 100% { transform:rotate(1deg) scaleX(.98); } }
@keyframes xci-shield { 0% { opacity:.6; transform:scale(.8); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(.9); } }
@keyframes xci-shadow { 0% { transform:scaleX(1); opacity:.4; } 50% { transform:scaleX(1.5); opacity:.7; } 100% { transform:scaleX(1); opacity:.3; } }

/* ===== scene: xenophon-declines-command ===== */
.scn-xenophon-declines-command {
  background: linear-gradient(180deg, #f5e0c8 0%, #d4b890 40%, #a8845a 100%), radial-gradient(ellipse at 70% 30%, #fce8d0 0%, transparent 60%);
}
.scn-xenophon-declines-command .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #fcead8 0%, #e8c8a8 100%); animation: xdc-sky 20s ease-in-out infinite alternate; }
.scn-xenophon-declines-command .mountains { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: xdc-mountains 25s ease-in-out infinite; }
.scn-xenophon-declines-command .sun { position:absolute; top:20%; left:55%; width:30px; height:30px; background: radial-gradient(circle, #ffe8b0 0%, #f0c070 50%, transparent 70%); border-radius:50%; filter: blur(2px); animation: xdc-sun 30s ease-in-out infinite; }
.scn-xenophon-declines-command .path { position:absolute; bottom:25%; left:40%; width:20%; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); transform: scaleY(.6); animation: xdc-path 12s ease-in-out infinite; }
.scn-xenophon-declines-command .figure { position:absolute; bottom:28%; left:48%; width:12px; height:28px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xdc-figure 6s ease-in-out infinite; }
.scn-xenophon-declines-command .grass { position:absolute; bottom:20%; left:0; right:0; height:5%; background: linear-gradient(180deg, #6a7a3a 0%, #4a5a2a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: xdc-grass 8s ease-in-out infinite alternate; }
@keyframes xdc-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes xdc-mountains { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(2px); } }
@keyframes xdc-sun { 0% { transform:translate(0,0) scale(1); } 50% { transform:translate(2px,-2px) scale(1.05); } 100% { transform:translate(-1px,1px) scale(.98); } }
@keyframes xdc-path { 0% { transform:scaleY(.6) rotate(0deg); } 50% { transform:scaleY(.65) rotate(-1deg); } 100% { transform:scaleY(.6) rotate(1deg); } }
@keyframes xdc-figure { 0% { transform:translate(0,0) rotate(0deg); } 25% { transform:translate(2px,-1px) rotate(1deg); } 50% { transform:translate(0,0) rotate(-1deg); } 75% { transform:translate(-2px,1px) rotate(0deg); } 100% { transform:translate(0,0) rotate(0deg); } }
@keyframes xdc-grass { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.1); } 100% { transform:scaleY(.95); } }

/* aristarchus-forbids-crossing – tense + sunlit */
.scn-aristarchus-forbids-crossing {
    background:
        linear-gradient(180deg, #3b6e8f 0%, #9ab8d4 25%, #f2d59e 50%, #d9b673 80%, #7a5e3a 100%),
        radial-gradient(ellipse at 80% 30%, #fff7e0 0%, transparent 60%);
}
.scn-aristarchus-forbids-crossing .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5b8eb0 0%, transparent 90%); animation: ar-sky 16s ease-in-out infinite alternate; }
.scn-aristarchus-forbids-crossing .sun    { position:absolute; top:15%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #fff2c0 0%, #f0c060 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffe080, 0 0 100px 40px rgba(255,224,128,0.3); animation: ar-sun 6s ease-in-out infinite alternate; }
.scn-aristarchus-forbids-crossing .water  { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a6a7a 0%, #1a4a5a 50%, #0a2a3a 100%); animation: ar-water 8s ease-in-out infinite alternate; }
.scn-aristarchus-forbids-crossing .ship   { position:absolute; bottom:20%; width:90px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-aristarchus-forbids-crossing .ship-1 { left:15%; animation: ar-sway 9s ease-in-out infinite; }
.scn-aristarchus-forbids-crossing .ship-2 { right:20%; width:70px; height:30px; animation: ar-sway 11s ease-in-out infinite 2s; }
.scn-aristarchus-forbids-crossing .figure-foe { position:absolute; bottom:22%; left:22%; width:16px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-foe 3s ease-in-out infinite; }
.scn-aristarchus-forbids-crossing .figure-xeo { position:absolute; bottom:18%; right:30%; width:14px; height:24px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-xeo 4s ease-in-out infinite; }
.scn-aristarchus-forbids-crossing .barrier{ position:absolute; bottom:30%; left:45%; width:40px; height:6px; background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #c8553d 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ar-bar 2s ease-in-out infinite; }
.scn-aristarchus-forbids-crossing .cloud  { position:absolute; top:25%; left:-80px; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 100%); filter: blur(6px); border-radius:50%; animation: ar-cloud 40s linear infinite; }
@keyframes ar-sky   { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes ar-sun   { 0% { box-shadow: 0 0 40px 10px #f0c060; transform: scale(0.95); } 50% { box-shadow: 0 0 70px 20px #fff0a0; transform: scale(1.05); } 100% { box-shadow: 0 0 50px 12px #f0c060; transform: scale(0.98); } }
@keyframes ar-water { 0% { background-position: 0 0; background-size: 100% 100%; } 50% { background-position: 0 -4px; background-size: 100% 110%; } 100% { background-position: 0 2px; background-size: 100% 105%; } }
@keyframes ar-sway  { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ar-foe   { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes ar-xeo   { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ar-bar   { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.2) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes ar-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* xenophon-suspicious – tense + dim-interior */
.scn-xenophon-suspicious {
    background:
        linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 30%, #1e1e2a 60%, #14141a 100%),
        radial-gradient(ellipse at 50% 70%, #3a2a3a 0%, transparent 60%);
}
.scn-xenophon-suspicious .bg-chamber { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #12121a 100%); animation: xs-bg 12s ease-in-out infinite alternate; }
.scn-xenophon-suspicious .wall-left  { position:absolute; left:0; top:0; bottom:25%; width:20%; background: linear-gradient(90deg, #0a0a12 0%, #1a1a2a 100%); box-shadow: 1px 0 6px rgba(0,0,0,0.5); }
.scn-xenophon-suspicious .wall-right { position:absolute; right:0; top:0; bottom:25%; width:25%; background: linear-gradient(270deg, #0a0a12 0%, #1a1a2a 100%); box-shadow: -1px 0 6px rgba(0,0,0,0.5); }
.scn-xenophon-suspicious .floor      { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-xenophon-suspicious .doorway    { position:absolute; left:40%; right:40%; bottom:25%; height:45%; background: #0a0a10; border-radius: 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: xs-door 10s ease-in-out infinite alternate; }
.scn-xenophon-suspicious .figure-xen { position:absolute; bottom:20%; left:15%; width:18px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xs-xen 4s ease-in-out infinite; }
.scn-xenophon-suspicious .lamp       { position:absolute; top:20%; right:30%; width:10px; height:14px; background: radial-gradient(circle, #d08c3a 0%, #7a4a1a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 5px #d08c3a, 0 0 60px 15px rgba(208,140,58,0.4); animation: xs-lamp 3s ease-in-out infinite alternate; }
.scn-xenophon-suspicious .shadow-ambush{ position:absolute; bottom:20%; right:20%; width:14px; height:26px; background: linear-gradient(180deg, #0a0a12 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.7; animation: xs-shadow 5s ease-in-out infinite; }
@keyframes xs-bg    { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes xs-door  { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.8); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } }
@keyframes xs-xen   { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes xs-lamp  { 0% { box-shadow: 0 0 20px 3px #d08c3a; opacity:0.8; } 50% { box-shadow: 0 0 40px 10px #e8a050; opacity:1; } 100% { box-shadow: 0 0 20px 3px #d08c3a; opacity:0.85; } }
@keyframes xs-shadow{ 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-3px) scaleY(0.95); } 100% { transform: translateX(2px) scaleY(1); } }

/* xenophon-decides-seuthes – tense + dim-interior */
.scn-xenophon-decides-seuthes {
    background:
        linear-gradient(180deg, #2a1a1a 0%, #1a1a2a 40%, #0a0a1a 100%),
        radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 70%);
}
.scn-xenophon-decides-seuthes .bg-warroom { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); animation: xds-bg 14s ease-in-out infinite alternate; }
.scn-xenophon-decides-seuthes .table      { position:absolute; bottom:15%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); animation: xds-table 7s ease-in-out infinite; }
.scn-xenophon-decides-seuthes .map        { position:absolute; bottom:20%; left:30%; right:30%; height:8%; background: linear-gradient(135deg, #7a5a3a 25%, #5a3a1a 50%, #7a5a3a 75%); border-radius: 4px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: xds-map 9s ease-in-out infinite alternate; }
.scn-xenophon-decides-seuthes .dim-lamp   { position:absolute; top:20%; left:45%; width:12px; height:16px; background: radial-gradient(circle, #d08c3a 0%, #7a4a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 8px #d08c3a, 0 0 80px 20px rgba(208,140,58,0.3); animation: xds-lamp 4s ease-in-out infinite alternate; }
.scn-xenophon-decides-seuthes .figure-x   { position:absolute; bottom:20%; left:25%; width:16px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xds-figx 5s ease-in-out infinite; }
.scn-xenophon-decides-seuthes .figure-s   { position:absolute; bottom:20%; right:25%; width:18px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xds-figs 6s ease-in-out infinite; }
.scn-xenophon-decides-seuthes .shadow     { position:absolute; bottom:0; left:40%; right:40%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); animation: xds-shadow 10s ease-in-out infinite alternate; }
@keyframes xds-bg    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes xds-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes xds-map   { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes xds-lamp  { 0% { box-shadow: 0 0 30px 5px #d08c3a; opacity:0.7; } 50% { box-shadow: 0 0 50px 12px #e8a050; opacity:1; } 100% { box-shadow: 0 0 30px 5px #d08c3a; opacity:0.8; } }
@keyframes xds-figx  { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes xds-figs  { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes xds-shadow{ 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* victims-favourable-for-seuthes – tense + dim-interior */
.scn-victims-favourable-for-seuthes {
    background:
        linear-gradient(180deg, #1e1a2a 0%, #2a1a1a 40%, #0e0e1a 100%),
        radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 65%);
}
.scn-victims-favourable-for-seuthes .bg-gathering { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); animation: vf-bg 15s ease-in-out infinite alternate; }
.scn-victims-favourable-for-seuthes .center-table { position:absolute; bottom:12%; left:25%; right:25%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -6px 14px rgba(0,0,0,0.5); animation: vf-table 8s ease-in-out infinite; }
.scn-victims-favourable-for-seuthes .scroll      { position:absolute; bottom:18%; left:38%; right:38%; height:6%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 2px; transform: rotate(-1deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: vf-scroll 6s ease-in-out infinite alternate; }
.scn-victims-favourable-for-seuthes .figure      { position:absolute; bottom:15%; width:15px; height:26px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-victims-favourable-for-seuthes .f1 { left:18%; animation: vf-fig1 4s ease-in-out infinite; }
.scn-victims-favourable-for-seuthes .f2 { left:45%; animation: vf-fig2 5s ease-in-out infinite 1s; }
.scn-victims-favourable-for-seuthes .f3 { right:15%; animation: vf-fig3 6s ease-in-out infinite 2s; }
.scn-victims-favourable-for-seuthes .single-lamp { position:absolute; top:18%; right:20%; width:12px; height:18px; background: radial-gradient(circle, #c87030 0%, #7a3a1a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 8px #c87030, 0 0 80px 20px rgba(200,112,48,0.3); animation: vf-lamp 3s ease-in-out infinite alternate; }
.scn-victims-favourable-for-seuthes .shadow-tension{ position:absolute; bottom:0; left:30%; right:30%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: vf-shadow 12s ease-in-out infinite alternate; }
@keyframes vf-bg    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes vf-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.97); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes vf-scroll{ 0% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes vf-fig1  { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(-2deg); } }
@keyframes vf-fig2  { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes vf-fig3  { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes vf-lamp  { 0% { box-shadow: 0 0 30px 5px #c87030; opacity:0.7; } 50% { box-shadow: 0 0 50px 12px #e08040; opacity:1; } 100% { box-shadow: 0 0 30px 5px #c87030; opacity:0.8; } }
@keyframes vf-shadow{ 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* ===== Scene: xenophon-rhetorical-questions ===== */
.scn-xenophon-rhetorical-questions {
  background: linear-gradient(180deg, #f4e8c1 0%, #dace9e 40%, #b8a87a 100%),
              radial-gradient(ellipse at 30% 20%, #fdf5e6 0%, transparent 60%);
}
.scn-xenophon-rhetorical-questions .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c6d7e8 0%, #a7b9d0 100%);
  animation: xrq-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-rhetorical-questions .sun {
  position: absolute; top: 8%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffea9a 0%, #f9d66c 50%, #e6b84c 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,234,154,0.6);
  animation: xrq-sun 12s ease-in-out infinite alternate;
}
.scn-xenophon-rhetorical-questions .rays {
  position: absolute; top: 8%; left: 30%; width: 200px; height: 200px;
  background: conic-gradient(from 0deg, transparent 0deg, rgba(255,234,154,0.15) 10deg, transparent 20deg, rgba(255,234,154,0.1) 30deg, transparent 40deg);
  transform: translate(-50%, -50%);
  animation: xrq-rays 30s linear infinite;
}
.scn-xenophon-rhetorical-questions .platform {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #b2956a 0%, #8c7a54 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-xenophon-rhetorical-questions .figure-orator {
  position: absolute; bottom: 32%; left: 50%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #4a3c2e 0%, #2d2219 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: xrq-orator 8s ease-in-out infinite alternate;
}
.scn-xenophon-rhetorical-questions .column-left {
  position: absolute; bottom: 28%; left: 18%; width: 14px; height: 60px;
  background: linear-gradient(180deg, #d6c4a0 0%, #b8a688 100%);
  border-radius: 4px;
  box-shadow: 0 0 6px rgba(0,0,0,0.15);
}
.scn-xenophon-rhetorical-questions .column-right {
  position: absolute; bottom: 28%; right: 18%; width: 14px; height: 60px;
  background: linear-gradient(180deg, #d6c4a0 0%, #b8a688 100%);
  border-radius: 4px;
  box-shadow: 0 0 6px rgba(0,0,0,0.15);
  animation: xrq-column-right 10s ease-in-out infinite;
}
.scn-xenophon-rhetorical-questions .shadow {
  position: absolute; bottom: 28%; left: 38%; right: 38%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.15) 0%, transparent 70%);
  transform-origin: top center;
  animation: xrq-shadow 8s ease-in-out infinite alternate;
}
@keyframes xrq-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes xrq-sun { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 40px 20px rgba(255,234,154,0.6); } 50% { transform: scale(1.05) translate(2px, -2px); box-shadow: 0 0 50px 25px rgba(255,234,154,0.7); } 100% { transform: scale(0.98) translate(-1px, 1px); box-shadow: 0 0 35px 18px rgba(255,234,154,0.5); } }
@keyframes xrq-rays { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes xrq-orator { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes xrq-column-right { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes xrq-shadow { 0% { transform: scaleX(1); opacity: 0.8; } 50% { transform: scaleX(1.05); opacity: 1; } 100% { transform: scaleX(0.95); opacity: 0.7; } }

/* ===== Scene: xenophon-wind-argument ===== */
.scn-xenophon-wind-argument {
  background: linear-gradient(180deg, #b8d4e3 0%, #8fb3c7 30%, #6f9bb3 100%),
              radial-gradient(ellipse at 50% 70%, #d4e9f2 0%, transparent 60%);
}
.scn-xenophon-wind-argument .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c2dbe6 0%, #a0c2d4 100%);
  animation: xwa-sky 25s ease-in-out infinite alternate;
}
.scn-xenophon-wind-argument .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2f6a7a 0%, #1a4b5a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-xenophon-wind-argument .ship-hull {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2d1f12 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: xwa-hull 6s ease-in-out infinite;
}
.scn-xenophon-wind-argument .sail-fore {
  position: absolute; bottom: 45%; left: 44%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #e6dcc8 0%, #c4b89e 100%);
  border-radius: 40% 20% 10% 10%;
  transform-origin: bottom center;
  animation: xwa-sail-fore 8s ease-in-out infinite alternate;
}
.scn-xenophon-wind-argument .sail-aft {
  position: absolute; bottom: 40%; left: 54%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #e6dcc8 0%, #c4b89e 100%);
  border-radius: 20% 40% 10% 10%;
  transform-origin: bottom center;
  animation: xwa-sail-aft 8s ease-in-out infinite alternate;
}
.scn-xenophon-wind-argument .wave-1 {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.2) 0%, transparent 70%);
  animation: xwa-wave1 4s ease-in-out infinite;
}
.scn-xenophon-wind-argument .wave-2 {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 16px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.15) 0%, transparent 70%);
  animation: xwa-wave2 5s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-xenophon-wind-argument .spray {
  position: absolute; bottom: 32%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: xwa-spray 7s ease-in-out infinite;
}
@keyframes xwa-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xwa-hull { 0% { transform: translateX(-50%) rotate(-2deg) translateY(0); } 25% { transform: translateX(-50%) rotate(1deg) translateY(-3px); } 50% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 75% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-2deg) translateY(0); } }
@keyframes xwa-sail-fore { 0% { transform: rotate(-5deg) scaleX(0.9); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-3deg) scaleX(0.95); } }
@keyframes xwa-sail-aft { 0% { transform: rotate(3deg) scaleX(0.9); } 50% { transform: rotate(-5deg) scaleX(1.1); } 100% { transform: rotate(2deg) scaleX(0.95); } }
@keyframes xwa-wave1 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-6px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes xwa-wave2 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-8px) scaleX(1.03); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes xwa-spray { 0% { transform: translate(0,0) scale(1); opacity: 0; } 30% { opacity: 1; } 100% { transform: translate(-10px, -20px) scale(0.5); opacity: 0; } }

/* ===== Scene: xenophon-absurdity-of-trick ===== */
.scn-xenophon-absurdity-of-trick {
  background: linear-gradient(180deg, #e6d5b8 0%, #cdb692 30%, #a68b6a 100%),
              radial-gradient(ellipse at 40% 20%, #f5e6cc 0%, transparent 60%);
}
.scn-xenophon-absurdity-of-trick .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a9c6da 0%, #8aadc6 100%);
  animation: xab-sky 30s ease-in-out infinite alternate;
}
.scn-xenophon-absurdity-of-trick .sea {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3b7a8a 0%, #1f5a6a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
.scn-xenophon-absurdity-of-trick .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c4a87a 0%, #9a8258 100%);
  border-radius: 60% 40% 0 0 / 100% 100% 0 0;
}
.scn-xenophon-absurdity-of-trick .boat {
  position: absolute; bottom: 22%; left: 15%; width: 70px; height: 24px;
  background: linear-gradient(180deg, #4a3828 0%, #2d1f12 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: xab-boat 8s ease-in-out infinite;
}
.scn-xenophon-absurdity-of-trick .trickster {
  position: absolute; bottom: 10%; left: 50%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #3b2a1c 0%, #221510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: xab-trickster 6s ease-in-out infinite alternate;
}
.scn-xenophon-absurdity-of-trick .victim {
  position: absolute; bottom: 10%; left: 35%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #5a4533 0%, #3a2a1c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: xab-victim 6s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-xenophon-absurdity-of-trick .cape {
  position: absolute; bottom: 10%; left: 36%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #8c5e3e 0%, #5e3a22 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: top center;
  animation: xab-cape 7s ease-in-out infinite alternate;
}
.scn-xenophon-absurdity-of-trick .footprints {
  position: absolute; bottom: 2%; left: 40%; right: 10%; height: 6px;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.08) 0px, transparent 8px, rgba(0,0,0,0.08) 8px, transparent 16px);
  border-radius: 50%;
  opacity: 0.6;
  animation: xab-footprints 20s linear infinite;
}
@keyframes xab-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xab-boat { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes xab-trickster { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 50% { transform: translateX(-50%) translateY(-6px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes xab-victim { 0% { transform: translateX(-50%) translateY(0) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes xab-cape { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.2); } 100% { transform: rotate(-5deg) scaleX(0.9); } }
@keyframes xab-footprints { 0% { background-position: 0 0; opacity: 0.6; } 50% { opacity: 0.3; } 100% { background-position: -100px 0; opacity: 0.6; } }

/* ===== Scene: xenophon-accuses-jealousy ===== */
.scn-xenophon-accuses-jealousy {
  background: linear-gradient(180deg, #e6dcc8 0%, #cdbea0 30%, #a6977a 100%),
              radial-gradient(ellipse at 50% 0%, #f5ecd6 0%, transparent 60%);
}
.scn-xenophon-accuses-jealousy .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0c8d8 0%, #8eaec2 100%);
  animation: xaj-sky 22s ease-in-out infinite alternate;
}
.scn-xenophon-accuses-jealousy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b39a7a 0%, #8c785a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-xenophon-accuses-jealousy .podium {
  position: absolute; bottom: 32%; left: 50%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #d4c4a2 0%, #b8a688 100%);
  border-radius: 10% 10% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.scn-xenophon-accuses-jealousy .figure-honored {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #3b2a1c 0%, #221510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: xaj-honored 10s ease-in-out infinite alternate;
}
.scn-xenophon-accuses-jealousy .laurel-wreath {
  position: absolute; bottom: 58%; left: 50%; width: 22px; height: 10px;
  background: linear-gradient(90deg, #8ca85a 0%, #6b8a3a 50%, #8ca85a 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
  animation: xaj-wreath 8s ease-in-out infinite;
}
.scn-xenophon-accuses-jealousy .accuser-left {
  position: absolute; bottom: 36%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2d2219 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: xaj-accuser-left 7s ease-in-out infinite alternate;
}
.scn-xenophon-accuses-jealousy .accuser-right {
  position: absolute; bottom: 36%; right: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2d2219 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(50%);
  animation: xaj-accuser-right 7s ease-in-out infinite alternate;
  animation-delay: 0.8s;
}
.scn-xenophon-accuses-jealousy .glow {
  position: absolute; top: 20%; left: 45%; right: 45%; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,235,180,0.3) 0%, transparent 70%);
  animation: xaj-glow 12s ease-in-out infinite alternate;
}
@keyframes xaj-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes xaj-honored { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-5px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); } }
@keyframes xaj-wreath { 0% { transform: translateX(-50%) rotate(-5deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(5deg) scaleX(1.1); } 100% { transform: translateX(-50%) rotate(-3deg) scaleX(1); } }
@keyframes xaj-accuser-left { 0% { transform: translateX(-50%) translateY(0) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes xaj-accuser-right { 0% { transform: translateX(50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(50%) translateY(-3px) rotate(3deg); } 100% { transform: translateX(50%) translateY(0) rotate(-1deg); } }
@keyframes xaj-glow { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.2); } 100% { opacity: 0.6; transform: scaleY(0.9); } }

/* description-of-calpe-haven – calm sunlit beach */ 
.scn-description-of-calpe-haven { 
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 70%); 
} 
.scn-description-of-calpe-haven .sky { 
  position: absolute; inset: 0 0 55% 0; 
  background: linear-gradient(180deg, #87CEEB 0%, #c1d9f0 100%); 
  animation: cal-sky 12s ease-in-out infinite alternate; 
} 
.scn-description-of-calpe-haven .sea { 
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%; 
  background: linear-gradient(180deg, #4682b4 0%, #2e6b8a 100%); 
  border-radius: 0 0 40% 40%; 
  animation: cal-sea 8s ease-in-out infinite alternate; 
} 
.scn-description-of-calpe-haven .sand { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%; 
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); 
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); 
  animation: cal-sand 6s ease-in-out infinite alternate; 
} 
.scn-description-of-calpe-haven .mountains { 
  position: absolute; bottom: 50%; left: 5%; right: 5%; height: 20%; 
  background: linear-gradient(180deg, #6b8e23 0%, #3b5323 100%); 
  border-radius: 60% 40% 0 0 / 80% 70% 0 0; 
  filter: blur(1px); 
  animation: cal-mountains 20s ease-in-out infinite alternate; 
} 
.scn-description-of-calpe-haven .tent-left { 
  position: absolute; bottom: 22%; left: 20%; width: 70px; height: 50px; 
  background: linear-gradient(135deg, #f5deb3 0%, #cda576 100%); 
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%); 
  box-shadow: -5px 0 10px rgba(0,0,0,0.3); 
  animation: cal-tent 4s ease-in-out infinite alternate; 
} 
.scn-description-of-calpe-haven .tent-right { 
  position: absolute; bottom: 22%; right: 25%; width: 60px; height: 45px; 
  background: linear-gradient(135deg, #f5deb3 0%, #cda576 100%); 
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%); 
  box-shadow: 5px 0 10px rgba(0,0,0,0.3); 
  animation: cal-tent 5s ease-in-out infinite alternate-reverse; 
} 
.scn-description-of-calpe-haven .birds { 
  position: absolute; top: 10%; left: 30%; width: 12px; height: 6px; 
  background: #333; 
  border-radius: 50%; 
  box-shadow: 10px -2px 0 #333, 20px -1px 0 #333; 
  animation: cal-birds 15s linear infinite; 
} 
@keyframes cal-sky { 
  0% { opacity: 0.8; } 
  50% { opacity: 1; transform: translateY(-2px); } 
  100% { opacity: 0.9; } 
} 
@keyframes cal-sea { 
  0% { transform: translateY(0); } 
  50% { transform: translateY(-4px) scaleY(1.02); } 
  100% { transform: translateY(0); } 
} 
@keyframes cal-sand { 
  0% { opacity: 0.9; } 
  50% { opacity: 1; } 
  100% { opacity: 0.85; } 
} 
@keyframes cal-mountains { 
  0% { transform: translateY(0) scale(1); } 
  50% { transform: translateY(-3px) scale(1.02); } 
  100% { transform: translateY(0) scale(1); } 
} 
@keyframes cal-tent { 
  0% { transform: translateY(0) rotate(-1deg); } 
  50% { transform: translateY(-2px) rotate(1deg); } 
  100% { transform: translateY(0) rotate(0); } 
} 
@keyframes cal-birds { 
  0% { transform: translateX(0); } 
  50% { transform: translateX(30px) translateY(-5px); } 
  100% { transform: translateX(60px) translateY(0); } 
} 

/* soldiers-desire-to-return – calm sunlit longing horizon */ 
.scn-soldiers-desire-to-return { 
  background: linear-gradient(180deg, #b0c4de 0%, #f0e68c 60%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 70%); 
} 
.scn-soldiers-desire-to-return .sky { 
  position: absolute; inset: 0 0 45% 0; 
  background: linear-gradient(180deg, #87CEEB 0%, #b0c4de 100%); 
  animation: sol-sky 15s ease-in-out infinite alternate; 
} 
.scn-soldiers-desire-to-return .horizon-ground { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; 
  background: linear-gradient(180deg, #7c9f60 0%, #5a7a40 100%); 
  border-radius: 50% 30% 0 0 / 100% 70% 0 0; 
  animation: sol-ground 10s ease-in-out infinite alternate; 
} 
.scn-soldiers-desire-to-return .road { 
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 25%; 
  background: linear-gradient(180deg, #c2b280 0%, #8b7355 100%); 
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); 
  opacity: 0.6; 
  animation: sol-road 12s ease-in-out infinite alternate; 
} 
.scn-soldiers-desire-to-return .figure { 
  position: absolute; bottom: 8%; left: 35%; width: 20px; height: 40px; 
  background: linear-gradient(180deg, #5a3e2b 0%, #3e2723 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: sol-figure 4s ease-in-out infinite; 
} 
.scn-soldiers-desire-to-return .ship { 
  position: absolute; bottom: 30%; right: 15%; width: 80px; height: 30px; 
  background: linear-gradient(90deg, #5a3e2b 0%, #3e2723 100%); 
  clip-path: polygon(0% 50%, 100% 50%, 90% 100%, 10% 100%); 
  animation: sol-ship 20s ease-in-out infinite; 
} 
.scn-soldiers-desire-to-return .cloud-a { 
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px; 
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); 
  border-radius: 50%; filter: blur(4px); 
  animation: sol-cloud-a 40s linear infinite; 
} 
.scn-soldiers-desire-to-return .cloud-b { 
  position: absolute; top: 8%; right: 5%; width: 70px; height: 14px; 
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%); 
  border-radius: 50%; filter: blur(3px); 
  animation: sol-cloud-b 30s linear infinite reverse; 
} 
@keyframes sol-sky { 
  0% { opacity: 0.85; } 
  50% { opacity: 1; transform: translateY(-1px); } 
  100% { opacity: 0.9; } 
} 
@keyframes sol-ground { 
  0% { transform: translateY(0); } 
  50% { transform: translateY(-2px) scaleY(1.01); } 
  100% { transform: translateY(0); } 
} 
@keyframes sol-road { 
  0% { opacity: 0.5; } 
  50% { opacity: 0.7; } 
  100% { opacity: 0.6; } 
} 
@keyframes sol-figure { 
  0% { transform: translateX(0) translateY(0) rotate(-2deg); } 
  25% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 
  75% { transform: translateX(15px) translateY(-1px) rotate(2deg); } 
  100% { transform: translateX(20px) translateY(0) rotate(0); } 
} 
@keyframes sol-ship { 
  0% { transform: translateX(0) rotate(-2deg); } 
  50% { transform: translateX(-5px) rotate(1deg); } 
  100% { transform: translateX(0) rotate(0); } 
} 
@keyframes sol-cloud-a { 
  0% { transform: translateX(0); } 
  50% { transform: translateX(30px); } 
  100% { transform: translateX(80px); } 
} 
@keyframes sol-cloud-b { 
  0% { transform: translateX(0); } 
  50% { transform: translateX(-20px); } 
  100% { transform: translateX(-60px); } 
} 

/* burying-the-dead – dark mood sunlit burial */ 
.scn-burying-the-dead { 
  background: linear-gradient(180deg, #c2b280 0%, #6b5b4f 60%), radial-gradient(ellipse at 50% 100%, #6b5b4f 0%, transparent 70%); 
} 
.scn-burying-the-dead .sky-overcast { 
  position: absolute; inset: 0 0 50% 0; 
  background: linear-gradient(180deg, #c2b280 0%, #a09070 100%); 
  animation: bur-sky 14s ease-in-out infinite alternate; 
} 
.scn-burying-the-dead .ground { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3e2e1e 100%); 
  border-radius: 30% 20% 0 0 / 60% 40% 0 0; 
  animation: bur-ground 10s ease-in-out infinite alternate; 
} 
.scn-burying-the-dead .grave-mound { 
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 20px; 
  background: radial-gradient(ellipse at 50% 0, #7a6a5a 0%, #4a3a2a 100%); 
  border-radius: 50% 50% 40% 40%; 
  box-shadow: 0 5px 10px rgba(0,0,0,0.5); 
  animation: bur-grave 20s ease-in-out infinite alternate; 
} 
.scn-burying-the-dead .figure-left { 
  position: absolute; bottom: 12%; left: 30%; width: 18px; height: 42px; 
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: bur-figure-l 6s ease-in-out infinite; 
} 
.scn-burying-the-dead .figure-right { 
  position: absolute; bottom: 10%; right: 35%; width: 18px; height: 40px; 
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: bur-figure-r 7s ease-in-out infinite; 
} 
.scn-burying-the-dead .cross { 
  position: absolute; bottom: 20%; left: 49%; width: 4px; height: 30px; 
  background: #5a3e2b; 
  box-shadow: 2px 0 0 #5a3e2b, 0 2px 0 #5a3e2b; 
  animation: bur-cross 8s ease-in-out infinite alternate; 
} 
.scn-burying-the-dead .cloud-drape { 
  position: absolute; top: 8%; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, rgba(180,160,120,0.3) 0%, transparent 100%); 
  filter: blur(8px); 
  animation: bur-drape 25s linear infinite; 
} 
@keyframes bur-sky { 
  0% { opacity: 0.7; } 
  50% { opacity: 0.85; } 
  100% { opacity: 0.75; } 
} 
@keyframes bur-ground { 
  0% { transform: translateY(0); } 
  50% { transform: translateY(-1px) scaleY(1.005); } 
  100% { transform: translateY(0); } 
} 
@keyframes bur-grave { 
  0% { transform: translateY(0) scale(1); } 
  50% { transform: translateY(-2px) scale(1.03); } 
  100% { transform: translateY(0) scale(1); } 
} 
@keyframes bur-figure-l { 
  0% { transform: translateY(0) rotate(0); } 
  50% { transform: translateY(-3px) rotate(-3deg) scale(0.98); } 
  100% { transform: translateY(0) rotate(0); } 
} 
@keyframes bur-figure-r { 
  0% { transform: translateY(0) rotate(0); } 
  50% { transform: translateY(-2px) rotate(2deg) scale(0.97); } 
  100% { transform: translateY(0) rotate(0); } 
} 
@keyframes bur-cross { 
  0% { transform: translateY(0); } 
  50% { transform: translateY(-4px); } 
  100% { transform: translateY(0); } 
} 
@keyframes bur-drape { 
  0% { transform: translateX(0); } 
  50% { transform: translateX(-20px); } 
  100% { transform: translateX(40px); } 
} 

/* army-reunites-again – calm sunlit campfire supper */ 
.scn-army-reunites-again { 
  background: linear-gradient(180deg, #f4a460 0%, #b8860b 60%), radial-gradient(ellipse at 50% 100%, #b8860b 0%, transparent 70%); 
} 
.scn-army-reunites-again .sky-evening { 
  position: absolute; inset: 0 0 60% 0; 
  background: linear-gradient(180deg, #f4a460 0%, #d2691e 100%); 
  animation: reun-sky 18s ease-in-out infinite alternate; 
} 
.scn-army-reunites-again .ground { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3e2e1e 100%); 
  border-radius: 20% 10% 0 0 / 40% 30% 0 0; 
  animation: reun-ground 12s ease-in-out infinite alternate; 
} 
.scn-army-reunites-again .fire { 
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 40px; 
  background: radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #ff6600 50%, transparent 100%); 
  border-radius: 50% 50% 20% 20%; 
  box-shadow: 0 0 30px 10px #ff8c00, 0 0 60px 20px rgba(255,140,0,0.4); 
  animation: reun-fire 2s ease-in-out infinite alternate; 
} 
.scn-army-reunites-again .tent { 
  position: absolute; bottom: 15%; left: 20%; width: 70px; height: 50px; 
  background: linear-gradient(135deg, #8b7355 0%, #5a4a3a 100%); 
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%); 
  opacity: 0.8; 
  animation: reun-tent 5s ease-in-out infinite alternate; 
} 
.scn-army-reunites-again .figure-a { 
  position: absolute; bottom: 10%; left: 35%; width: 16px; height: 36px; 
  background: linear-gradient(180deg, #3e2723 0%, #2a1a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: reun-figure-a 4s ease-in-out infinite; 
} 
.scn-army-reunites-again .figure-b { 
  position: absolute; bottom: 12%; left: 50%; width: 16px; height: 34px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: reun-figure-b 4.5s ease-in-out infinite; 
} 
.scn-army-reunites-again .figure-c { 
  position: absolute; bottom: 11%; right: 30%; width: 16px; height: 38px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: reun-figure-c 5s ease-in-out infinite; 
} 
@keyframes reun-sky { 
  0% { opacity: 0.8; } 
  50% { opacity: 1; transform: translateY(-1px); } 
  100% { opacity: 0.9; } 
} 
@keyframes reun-ground { 
  0% { transform: translateY(0); } 
  50% { transform: translateY(-1px) scaleY(1.01); } 
  100% { transform: translateY(0); } 
} 
@keyframes reun-fire { 
  0% { transform: scale(1); opacity: 0.8; } 
  50% { transform: scale(1.1) rotate(2deg); opacity: 1; } 
  100% { transform: scale(0.95); opacity: 0.85; } 
} 
@keyframes reun-tent { 
  0% { transform: translateY(0) rotate(-2deg); } 
  50% { transform: translateY(-3px) rotate(1deg); } 
  100% { transform: translateY(0) rotate(0); } 
} 
@keyframes reun-figure-a { 
  0% { transform: translateY(0) rotate(0); } 
  50% { transform: translateY(-1px) rotate(3deg) scale(0.99); } 
  100% { transform: translateY(0) rotate(0); } 
} 
@keyframes reun-figure-b { 
  0% { transform: translateY(0) rotate(0); } 
  50% { transform: translateY(-2px) rotate(-2deg) scale(0.97); } 
  100% { transform: translateY(0) rotate(0); } 
} 
@keyframes reun-figure-c { 
  0% { transform: translateY(0) rotate(0); } 
  50% { transform: translateY(-1px) rotate(4deg) scale(0.98); } 
  100% { transform: translateY(0) rotate(0); } 
}

/* ---- scene: xenophon-justifies-return ---- */
.scn-xenophon-justifies-return {
  background:
    linear-gradient(180deg, #1a2a4a 0%, #2a4a6a 30%, #6a7a5a 60%, #c8a060 80%, #e8c080 100%),
    radial-gradient(ellipse at 50% 100%, #e8c080 0%, transparent 60%);
}
.scn-xenophon-justifies-return .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #2a4a6a 30%, transparent 100%);
  animation: xjr-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-justifies-return .sea {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #3a5a6a 0%, #1a2a3a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: xjr-sea 6s ease-in-out infinite alternate;
}
.scn-xenophon-justifies-return .rock {
  position:absolute; bottom:40%; left:30%; width:60px; height:40px;
  background: linear-gradient(160deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  box-shadow: 0 -8px 20px rgba(232,192,128,.3);
  animation: xjr-rock 12s ease-in-out infinite;
}
.scn-xenophon-justifies-return .figure {
  position:absolute; bottom:38%; left:33%; width:14px; height:36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xjr-figure 4s ease-in-out infinite;
}
.scn-xenophon-justifies-return .ship-1 {
  position:absolute; bottom:45%; right:20%; width:80px; height:20px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  animation: xjr-ship 20s linear infinite;
}
.scn-xenophon-justifies-return .ship-2 {
  position:absolute; bottom:42%; right:50%; width:60px; height:15px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  animation: xjr-ship 25s linear infinite reverse;
}
.scn-xenophon-justifies-return .cloud-1 {
  position:absolute; top:12%; left:10%; width:90px; height:20px;
  background: linear-gradient(180deg, rgba(232,192,128,.5) 0%, rgba(232,192,128,.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: xjr-cloud 30s linear infinite;
}
.scn-xenophon-justifies-return .cloud-2 {
  position:absolute; top:20%; right:8%; width:70px; height:16px;
  background: linear-gradient(180deg, rgba(232,192,128,.4) 0%, rgba(232,192,128,.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: xjr-cloud 40s linear infinite reverse;
}

@keyframes xjr-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes xjr-sea    { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes xjr-rock   { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes xjr-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes xjr-ship   { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes xjr-cloud  { 0% { transform: translateX(-30px) scale(1) } 50% { transform: translateX(50vw) scale(1.1) } 100% { transform: translateX(120vw) scale(1) } }

/* ---- scene: xenophon-recounts-aristarchus ---- */
.scn-xenophon-recounts-aristarchus {
  background:
    linear-gradient(180deg, #1a2a4a 0%, #3a4a5a 30%, #6a7a6a 60%, #8a8a6a 80%, #b0a080 100%),
    radial-gradient(ellipse at 50% 0%, #b0a080 0%, transparent 70%);
}
.scn-xenophon-recounts-aristarchus .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #3a4a5a 40%, transparent 100%);
  animation: xra-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-aristarchus .sea {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #3a5a6a 0%, #1a2a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: xra-sea 8s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-aristarchus .wall {
  position:absolute; bottom:40%; left:0; width:30%; height:30%;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 0 10% 10% 0 / 0 20% 20% 0;
  animation: xra-wall 6s ease-in-out infinite;
}
.scn-xenophon-recounts-aristarchus .warship-1 {
  position:absolute; bottom:48%; left:35%; width:120px; height:35px;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 40% 40% 10% / 30% 50% 50% 30%;
  animation: xra-warship 14s ease-in-out infinite;
}
.scn-xenophon-recounts-aristarchus .warship-2 {
  position:absolute; bottom:44%; left:60%; width:100px; height:30px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 40% 40% 10% / 30% 50% 50% 30%;
  animation: xra-warship 16s ease-in-out infinite reverse;
}
.scn-xenophon-recounts-aristarchus .sail-1 {
  position:absolute; bottom:55%; left:40%; width:30px; height:40px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  animation: xra-sail 5s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-aristarchus .sail-2 {
  position:absolute; bottom:53%; left:65%; width:25px; height:35px;
  background: linear-gradient(180deg, #a09070 0%, #7a6a4a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  animation: xra-sail 6s ease-in-out infinite alternate reverse;
}
.scn-xenophon-recounts-aristarchus .figure.shore {
  position:absolute; bottom:36%; left:8%; width:12px; height:30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xra-fig 3s ease-in-out infinite;
}
.scn-xenophon-recounts-aristarchus .oar {
  position:absolute; bottom:50%; left:42%; width:4px; height:30px;
  background: #6a5a4a;
  border-radius: 20% 20% 40% 40% / 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: xra-oar 1.5s ease-in-out infinite;
}

@keyframes xra-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes xra-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-2px) } }
@keyframes xra-wall   { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes xra-warship { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes xra-sail   { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }
@keyframes xra-fig    { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(5deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes xra-oar    { 0% { transform: rotate(-30deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(-30deg) } }

/* ---- scene: xenophon-asks-what-wrong ---- */
.scn-xenophon-asks-what-wrong {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #4a5a4a 60%, #6a6a5a 80%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 100%, #8a7a5a 0%, transparent 70%);
}
.scn-xenophon-asks-what-wrong .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, transparent 100%);
  animation: xaw-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-asks-what-wrong .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: xaw-ground 10s ease-in-out infinite alternate;
}
.scn-xenophon-asks-what-wrong .campfire {
  position:absolute; bottom:30%; left:50%; width:20px; height:20px;
  background: radial-gradient(circle, #e8a040 0%, #c07020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(232,160,64,.4);
  animation: xaw-fire 2s ease-in-out infinite alternate;
}
.scn-xenophon-asks-what-wrong .tent-left {
  position:absolute; bottom:40%; left:15%; width:60px; height:50px;
  background: linear-gradient(160deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  animation: xaw-tent 8s ease-in-out infinite;
}
.scn-xenophon-asks-what-wrong .tent-right {
  position:absolute; bottom:38%; right:10%; width:50px; height:45px;
  background: linear-gradient(200deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  animation: xaw-tent 9s ease-in-out infinite reverse;
}
.scn-xenophon-asks-what-wrong .speaker {
  position:absolute; bottom:32%; left:42%; width:16px; height:38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xaw-speaker 3s ease-in-out infinite;
}
.scn-xenophon-asks-what-wrong .soldier-1 {
  position:absolute; bottom:28%; left:30%; width:14px; height:32px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xaw-soldier 5s ease-in-out infinite;
}
.scn-xenophon-asks-what-wrong .soldier-2 {
  position:absolute; bottom:30%; left:55%; width:14px; height:30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xaw-soldier 5.5s ease-in-out infinite reverse;
}
.scn-xenophon-asks-what-wrong .spear {
  position:absolute; bottom:45%; left:48%; width:3px; height:40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
  animation: xaw-spear 4s ease-in-out infinite;
}

@keyframes xaw-sky     { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes xaw-ground  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes xaw-fire    { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:.7 } }
@keyframes xaw-tent    { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes xaw-speaker { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes xaw-soldier { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(0) } 75% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes xaw-spear   { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

/* ---- scene: xenophon-denies-getting-pay ---- */
.scn-xenophon-denies-getting-pay {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 60%, #4a3a2a 80%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%);
}
.scn-xenophon-denies-getting-pay .backdrop {
  position:absolute; inset:0;
  background: linear-gradient(160deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 80% 100%, 60% 85%, 40% 100%, 20% 85%, 0 100%);
  animation: xdp-back 20s ease-in-out infinite alternate;
}
.scn-xenophon-denies-getting-pay .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 30% 0 0;
  animation: xdp-ground 10s ease-in-out infinite alternate;
}
.scn-xenophon-denies-getting-pay .table {
  position:absolute; bottom:15%; left:50%; width:80px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: xdp-table 6s ease-in-out infinite;
}
.scn-xenophon-denies-getting-pay .chest {
  position:absolute; bottom:10%; left:30%; width:40px; height:25px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: xdp-chest 8s ease-in-out infinite;
}
.scn-xenophon-denies-getting-pay .xenophon {
  position:absolute; bottom:20%; left:35%; width:16px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xdp-xen 3s ease-in-out infinite;
}
.scn-xenophon-denies-getting-pay .seuthes {
  position:absolute; bottom:18%; left:55%; width:18px; height:38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xdp-seut 4s ease-in-out infinite;
}
.scn-xenophon-denies-getting-pay .lantern {
  position:absolute; bottom:55%; left:60%; width:8px; height:12px;
  background: radial-gradient(circle, #c8a060 0%, #a08040 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,160,96,.5);
  animation: xdp-lamp 2s ease-in-out infinite alternate;
}
.scn-xenophon-denies-getting-pay .scroll {
  position:absolute; bottom:16%; left:50%; width:20px; height:6px;
  background: linear-gradient(90deg, #c0a070 0%, #a08050 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  transform: translateX(-50%);
  animation: xdp-scroll 7s ease-in-out infinite;
}

@keyframes xdp-back  { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes xdp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes xdp-table { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes xdp-chest { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes xdp-xen  { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes xdp-seut { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes xdp-lamp { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:.7 } }
@keyframes xdp-scroll { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }

.scn-clearchus-commander-skills {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #3a2215 40%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 60%);
}

.scn-clearchus-commander-skills .tent-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%);
  filter: blur(2px);
  animation: ccs-tent 20s ease-in-out infinite alternate;
}

.scn-clearchus-commander-skills .table {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 120px;
  height: 20px;
  transform: translateX(-50%) perspective(200px) rotateX(25deg);
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
}

.scn-clearchus-commander-skills .map {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 80px;
  height: 50px;
  transform: translateX(-50%) skewX(-2deg);
  background: linear-gradient(135deg, #b09060 0%, #8a7040 100%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ccs-map 12s ease-in-out infinite;
}

.scn-clearchus-commander-skills .figure-ccs {
  position: absolute;
  bottom: 24%;
  left: 42%;
  width: 22px;
  height: 60px;
  background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ccs-figure 6s ease-in-out infinite;
}

.scn-clearchus-commander-skills .lantern-ccs {
  position: absolute;
  bottom: 34%;
  left: 58%;
  width: 8px;
  height: 12px;
  background: radial-gradient(circle, #e0a050 0%, #b07030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3);
  animation: ccs-lantern 3s ease-in-out infinite alternate;
}

.scn-clearchus-commander-skills .sword {
  position: absolute;
  bottom: 32%;
  left: 36%;
  width: 4px;
  height: 50px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 50%, #706050 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: ccs-sword 8s ease-in-out infinite;
}

.scn-clearchus-commander-skills .shadow-ccs {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 30px;
  height: 10px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: ccs-shadow 6s ease-in-out infinite;
}

@keyframes ccs-tent {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: .8; transform: scale(1); }
}

@keyframes ccs-map {
  0% { transform: translateX(-50%) skewX(-2deg) rotate(0); }
  33% { transform: translateX(-50%) skewX(-1deg) rotate(2deg); }
  66% { transform: translateX(-50%) skewX(-3deg) rotate(-1deg); }
  100% { transform: translateX(-50%) skewX(-2deg) rotate(0); }
}

@keyframes ccs-figure {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}

@keyframes ccs-lantern {
  0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,.3); opacity: .8; }
  50% { box-shadow: 0 0 25px 8px #e0a050, 0 0 50px 16px rgba(224,160,80,.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,.4); opacity: .9; }
}

@keyframes ccs-sword {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(22deg); }
  100% { transform: rotate(18deg); }
}

@keyframes ccs-shadow {
  0% { width: 30px; opacity: .4; }
  50% { width: 35px; opacity: .6; }
  100% { width: 28px; opacity: .3; }
}

/* clearchus-stern-discipline */
.scn-clearchus-stern-discipline {
  background: 
    linear-gradient(180deg, #1a0e06 0%, #2a1a0e 50%, #0e0602 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a0e 0%, transparent 70%);
}

.scn-clearchus-stern-discipline .wall-csd {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1a0e 0%, #3a2a1a 30%, #1a0e06 100%);
  clip-path: polygon(0% 0, 100% 0, 100% 100%, 0% 100%);
  animation: csd-wall 15s ease-in-out infinite alternate;
}

.scn-clearchus-stern-discipline .floor-csd {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
}

.scn-clearchus-stern-discipline .figure-csd {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 26px;
  height: 70px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0602 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: csd-figure-main 5s ease-in-out infinite;
}

.scn-clearchus-stern-discipline .whip {
  position: absolute;
  bottom: 40%;
  left: 48%;
  width: 3px;
  height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 2px;
  transform-origin: top center;
  transform: rotate(30deg);
  animation: csd-whip 2s ease-in-out infinite;
}

.scn-clearchus-stern-discipline .candle {
  position: absolute;
  bottom: 35%;
  left: 35%;
  width: 6px;
  height: 18px;
  background: linear-gradient(180deg, #e0a050 0%, #8a6020 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.3);
  animation: csd-candle 4s ease-in-out infinite alternate;
}

.scn-clearchus-stern-discipline .figure-cower {
  position: absolute;
  bottom: 24%;
  left: 55%;
  width: 18px;
  height: 30px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csd-cower 3s ease-in-out infinite;
}

.scn-clearchus-stern-discipline .shadow-csd {
  position: absolute;
  bottom: 22%;
  left: 42%;
  width: 40px;
  height: 14px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: csd-shadow 5s ease-in-out infinite;
}

@keyframes csd-wall {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}

@keyframes csd-figure-main {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-2px) rotate(0); }
}

@keyframes csd-whip {
  0% { transform: rotate(30deg); }
  25% { transform: rotate(50deg); }
  50% { transform: rotate(20deg); }
  75% { transform: rotate(45deg); }
  100% { transform: rotate(30deg); }
}

@keyframes csd-candle {
  0% { box-shadow: 0 0 12px 3px #c08040, 0 0 24px 6px rgba(192,128,64,.2); opacity: .8; }
  50% { box-shadow: 0 0 20px 6px #e0a050, 0 0 40px 12px rgba(224,160,80,.4); opacity: 1; }
  100% { box-shadow: 0 0 14px 4px #c08040, 0 0 28px 7px rgba(192,128,64,.3); opacity: .9; }
}

@keyframes csd-cower {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(-2px) scaleY(0.95); }
  50% { transform: translateX(2px) scaleY(1); }
  75% { transform: translateX(-1px) scaleY(0.98); }
  100% { transform: translateX(0) scaleY(1); }
}

@keyframes csd-shadow {
  0% { width: 40px; opacity: .4; }
  50% { width: 50px; opacity: .6; }
  100% { width: 38px; opacity: .3; }
}

/* clearchus-in-danger */
.scn-clearchus-in-danger {
  background: 
    linear-gradient(180deg, #0e0602 0%, #1a0e06 40%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2215 0%, transparent 50%);
}

.scn-clearchus-in-danger .bg-cid {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, #0e0602 70%);
  animation: cid-bg 10s ease-in-out infinite alternate;
}

.scn-clearchus-in-danger .figure-cid {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 80px;
  height: 100px;
  transform: translateX(-50%);
  background: 
    linear-gradient(135deg, #1a0e06 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.6);
  animation: cid-figure 4s ease-in-out infinite;
}

.scn-clearchus-in-danger .light-source {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 12px;
  height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e06030 0%, #c04020 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e06030, 0 0 60px 20px rgba(224,96,48,.4);
  animation: cid-light 2s ease-in-out infinite alternate;
}

.scn-clearchus-in-danger .spear {
  position: absolute;
  bottom: 35%;
  left: 46%;
  width: 4px;
  height: 70px;
  background: linear-gradient(180deg, #a09070 0%, #706050 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: cid-spear 8s ease-in-out infinite;
}

.scn-clearchus-in-danger .glow-overlay {
  position: absolute;
  bottom: 15%;
  left: 45%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, rgba(224,96,48,.2) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: cid-glow 3s ease-in-out infinite alternate;
}

.scn-clearchus-in-danger .wall-shadow {
  position: absolute;
  bottom: 20%;
  left: 52%;
  width: 50px;
  height: 80px;
  background: rgba(0,0,0,.5);
  filter: blur(6px);
  transform: skewX(-10deg);
  animation: cid-wallshadow 4s ease-in-out infinite;
}

@keyframes cid-bg {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}

@keyframes cid-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  25% { transform: translateX(-50%) translateY(-5px) rotate(3deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-50%) translateY(-3px) rotate(4deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}

@keyframes cid-light {
  0% { box-shadow: 0 0 20px 6px #e06030, 0 0 40px 12px rgba(224,96,48,.3); opacity: .7; }
  50% { box-shadow: 0 0 40px 14px #ff8040, 0 0 80px 24px rgba(255,128,64,.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #e06030, 0 0 50px 16px rgba(224,96,48,.4); opacity: .8; }
}

@keyframes cid-spear {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-12deg) translateY(0); }
}

@keyframes cid-glow {
  0% { transform: scale(0.95); opacity: .5; }
  50% { transform: scale(1.1); opacity: .8; }
  100% { transform: scale(1); opacity: .6; }
}

@keyframes cid-wallshadow {
  0% { transform: skewX(-10deg) scaleX(1); opacity: .4; }
  50% { transform: skewX(-10deg) scaleX(1.1); opacity: .6; }
  100% { transform: skewX(-10deg) scaleX(0.9); opacity: .3; }
}

/* clearchus-followers */
.scn-clearchus-followers {
  background: 
    linear-gradient(180deg, #1a120a 0%, #2a1a0e 30%, #3a2215 60%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 100%, #3a2215 0%, transparent 60%);
}

.scn-clearchus-followers .bg-hall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a120a 50%, #0e0a06 100%);
  clip-path: polygon(0% 0, 100% 0, 100% 100%, 0% 100%);
  animation: cfl-hall 20s ease-in-out infinite alternate;
}

.scn-clearchus-followers .floor-cfl {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}

.scn-clearchus-followers .leader {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 28px;
  height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cfl-leader 7s ease-in-out infinite;
}

.scn-clearchus-followers .follower1 {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: cfl-follower 9s ease-in-out infinite;
}

.scn-clearchus-followers .follower2 {
  position: absolute;
  bottom: 28%;
  left: 32%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #3a2215 0%, #2a1a0e 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: cfl-follower 11s ease-in-out infinite;
}

.scn-clearchus-followers .follower3 {
  position: absolute;
  bottom: 26%;
  left: 26%;
  width: 18px;
  height: 45px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: cfl-follower 13s ease-in-out infinite;
}

.scn-clearchus-followers .lantern-line {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #e0a050 0%, #b07030 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3);
  animation: cfl-lantern 4s ease-in-out infinite alternate;
}

@keyframes cfl-hall {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.01); }
  100% { opacity: .7; transform: scale(1); }
}

@keyframes cfl-leader {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}

@keyframes cfl-follower {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

@keyframes cfl-lantern {
  0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,.3); opacity: .8; }
  50% { box-shadow: 0 0 25px 8px #e0a050, 0 0 50px 16px rgba(224,160,80,.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,.4); opacity: .9; }
}

/* laconians-demand-pay (tense dawn) */
.scn-laconians-demand-pay {
  background:
    linear-gradient(180deg, #b8a89a 0%, #e8c8a0 25%, #f0d4b0 50%, #c89060 75%, #7a5a3a 100%);
  position: relative;
  overflow: hidden;
}
.scn-laconians-demand-pay .dawn-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a09080 0%, #f0d4b0 50%, #e8b080 100%);
  animation: lp-sky 20s ease-in-out infinite alternate;
}
.scn-laconians-demand-pay .sun-glow {
  position: absolute; bottom: 58%; left: 30%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffdcaa 0%, #f0b060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: lp-sun 8s ease-in-out infinite alternate;
}
.scn-laconians-demand-pay .tent-left {
  position: absolute; bottom: 20%; left: 10%; width: 140px; height: 100px;
  background: linear-gradient(160deg, #6a4a2a 0%, #4a2a1a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 10px 0 15px rgba(0,0,0,0.4);
  animation: lp-tent 6s ease-in-out infinite alternate;
}
.scn-laconians-demand-pay .tent-right {
  position: absolute; bottom: 20%; right: 10%; width: 120px; height: 90px;
  background: linear-gradient(200deg, #5a3a2a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: -10px 0 15px rgba(0,0,0,0.4);
  animation: lp-tent 6s ease-in-out infinite alternate-reverse;
}
.scn-laconians-demand-pay .figure-laconian {
  position: absolute; bottom: 15%; left: 35%; width: 30px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp-fig1 4s ease-in-out infinite;
}
.scn-laconians-demand-pay .figure-greek {
  position: absolute; bottom: 15%; right: 35%; width: 28px; height: 68px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp-fig2 4.5s ease-in-out infinite;
}
.scn-laconians-demand-pay .spear {
  position: absolute; bottom: 30%; left: 38%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: lp-spear 3s ease-in-out infinite alternate;
}
.scn-laconians-demand-pay .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: lp-ground 12s ease-in-out infinite alternate;
}
@keyframes lp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lp-sun { 0% { transform: scale(0.9); filter: blur(25px); } 50% { transform: scale(1.1); filter: blur(15px); } 100% { transform: scale(0.95); filter: blur(22px); } }
@keyframes lp-tent { 0% { transform: skewX(-2deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(-1deg); } }
@keyframes lp-fig1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-5deg); } 75% { transform: translateX(2px) rotate(5deg); } }
@keyframes lp-fig2 { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 70% { transform: translateX(-2px) rotate(-4deg); } }
@keyframes lp-spear { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(14deg); } }
@keyframes lp-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* xenophon-offers-ballot (calm dawn) */
.scn-xenophon-offers-ballot {
  background:
    linear-gradient(180deg, #c0b8a8 0%, #e0d0c0 30%, #f0e0d0 60%, #d0b8a0 80%, #a09080 100%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-offers-ballot .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0a8a0 0%, #f0e0d0 40%, #f8ecd8 100%);
  animation: ob-sky 25s ease-in-out infinite alternate;
}
.scn-xenophon-offers-ballot .horizon {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #b09880 0%, #d0b8a0 100%);
  border-radius: 40% 60% 0 0 / 100% 100% 0 0;
}
.scn-xenophon-offers-ballot .table {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 8% 8% 4% 4%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-xenophon-offers-ballot .ballot-box {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4);
  animation: ob-box 6s ease-in-out infinite alternate;
}
.scn-xenophon-offers-ballot .hand-xenophon {
  position: absolute; bottom: 36%; left: 44%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ob-hand1 4s ease-in-out infinite;
}
.scn-xenophon-offers-ballot .hand-voter {
  position: absolute; bottom: 36%; right: 44%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ob-hand2 4.5s ease-in-out infinite;
}
.scn-xenophon-offers-ballot .banner {
  position: absolute; top: 10%; left: 30%; width: 80px; height: 4px;
  background: linear-gradient(90deg, #8a6040 0%, #c0a080 50%, #8a6040 100%);
  border-radius: 2px;
  animation: ob-banner 15s linear infinite;
}
.scn-xenophon-offers-ballot .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.15) 0%, transparent 70%);
  filter: blur(40px);
  animation: ob-fog 30s ease-in-out infinite alternate;
}
@keyframes ob-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ob-box { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ob-hand1 { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-10deg); } 75% { transform: rotate(5deg); } }
@keyframes ob-hand2 { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(8deg); } 70% { transform: rotate(-6deg); } }
@keyframes ob-banner { 0% { transform: translateX(-20px); } 50% { transform: translateX(20px); } 100% { transform: translateX(-20px); } }
@keyframes ob-fog { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }

/* xenophon-goes-to-seuthes (calm dawn) */
.scn-xenophon-goes-to-seuthes {
  background:
    linear-gradient(180deg, #a89880 0%, #d0b8a0 30%, #e8d0b8 55%, #c8a880 80%, #9a7a5a 100%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-goes-to-seuthes .dawn-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0a090 0%, #e8d0b8 40%, #edd8c0 100%);
  animation: gs-sky 30s ease-in-out infinite alternate;
}
.scn-xenophon-goes-to-seuthes .distant-tents {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 15%;
  background: 
    linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  clip-path: polygon(0% 100%, 10% 20%, 20% 100%, 30% 10%, 40% 100%, 55% 30%, 70% 100%, 80% 15%, 100% 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: gs-tents 20s ease-in-out infinite alternate;
}
.scn-xenophon-goes-to-seuthes .path {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #b09880 0%, #8a7050 100%);
  border-radius: 50% / 30% 30% 70% 70%;
  transform: skewX(-10deg);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: gs-path 15s ease-in-out infinite alternate;
}
.scn-xenophon-goes-to-seuthes .figure-xenophon {
  position: absolute; bottom: 30%; left: 10%; width: 22px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gs-walk 6s ease-in-out infinite;
}
.scn-xenophon-goes-to-seuthes .staff {
  position: absolute; bottom: 35%; left: 13%; width: 4px; height: 45px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3020 100%);
  transform: rotate(-15deg);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: gs-staff 6s ease-in-out infinite;
}
.scn-xenophon-goes-to-seuthes .campfire {
  position: absolute; bottom: 38%; right: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffcc66 0%, #e09040 50%, transparent 70%);
  filter: blur(6px);
  animation: gs-fire 4s ease-in-out infinite alternate;
}
.scn-xenophon-goes-to-seuthes .cloud-drift {
  position: absolute; top: 12%; left: -20%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: gs-cloud 40s linear infinite;
}
@keyframes gs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gs-tents { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gs-path { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-8deg) translateY(-2px); } 100% { transform: skewX(-10deg) translateY(1px); } }
@keyframes gs-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(15px) rotate(-3deg); } 50% { transform: translateX(30px) rotate(0deg); } 75% { transform: translateX(45px) rotate(3deg); } 100% { transform: translateX(60px) rotate(0deg); } }
@keyframes gs-staff { 0%,100% { transform: rotate(-15deg); } 25% { transform: rotate(-10deg); } 75% { transform: rotate(-20deg); } }
@keyframes gs-fire { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.9; } }
@keyframes gs-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(130vw); } }

/* xenophon-speech-to-seuthes-1 (tense dawn) */
.scn-xenophon-speech-to-seuthes-1 {
  background:
    linear-gradient(135deg, #4a3a2a 0%, #8a6040 25%, #c8a070 50%, #a08050 75%, #6a4a2a 100%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-speech-to-seuthes-1 .dawn-light {
  position: absolute; inset: 0;
  background:
    linear-gradient(135deg, rgba(255,200,120,0.4) 0%, transparent 40%, rgba(0,0,0,0.2) 80%);
  animation: ss-light 12s ease-in-out infinite alternate;
}
.scn-xenophon-speech-to-seuthes-1 .throne {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 50% 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  transform: skewX(-5deg);
  animation: ss-throne 8s ease-in-out infinite alternate;
}
.scn-xenophon-speech-to-seuthes-1 .king-seuthes {
  position: absolute; bottom: 25%; left: 22%; width: 30px; height: 55px;
  background: radial-gradient(ellipse at 50% 30%, #4a3020 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-king 6s ease-in-out infinite;
}
.scn-xenophon-speech-to-seuthes-1 .figure-orator {
  position: absolute; bottom: 10%; right: 15%; width: 24px; height: 65px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-orator 5s ease-in-out infinite;
}
.scn-xenophon-speech-to-seuthes-1 .gesturing-arm {
  position: absolute; bottom: 30%; right: 22%; width: 6px; height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: ss-arm 3.5s ease-in-out infinite;
}
.scn-xenophon-speech-to-seuthes-1 .pillar {
  position: absolute; top: 5%; right: 40%; width: 20px; height: 55%;
  background: linear-gradient(180deg, #b09880 0%, #8a7050 50%, #6a5030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 10px rgba(0,0,0,0.5);
}
.scn-xenophon-speech-to-seuthes-1 .shadow-streak {
  position: absolute; top: 15%; left: 10%; width: 40%; height: 8px;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: rotate(20deg);
  filter: blur(3px);
  animation: ss-shadow 10s ease-in-out infinite alternate;
}
@keyframes ss-light { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ss-throne { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-3px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes ss-king { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 75% { transform: rotate(4deg); } }
@keyframes ss-orator { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(-5deg); } 75% { transform: translateX(3px) rotate(3deg); } }
@keyframes ss-arm { 0% { transform: rotate(30deg); } 30% { transform: rotate(45deg); } 60% { transform: rotate(20deg); } 100% { transform: rotate(30deg); } }
@keyframes ss-shadow { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(15deg) translateX(10px); } 100% { transform: rotate(20deg) translateX(0); } }

.scn-proxenus-character { background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 60%, #1a0a06 100%), radial-gradient(ellipse at 50% 100%, #6a3a1a 0%, transparent 70%); }
.scn-proxenus-character .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); }
.scn-proxenus-character .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #1a0a06 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-proxenus-character .desk { position:absolute; bottom:28%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-proxenus-character .candle { position:absolute; bottom:35%; left:55%; width:6px; height:18px; background: linear-gradient(180deg, #f0c080 0%, #b08040 100%); border-radius: 3px 3px 0 0; box-shadow: 0 0 20px 6px #f0a040, 0 0 40px 12px rgba(240,160,64,.3); animation: pc-candle 2s ease-in-out infinite alternate; }
.scn-proxenus-character .book { position:absolute; bottom:30%; left:32%; width:22%; height:6%; background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: pc-book 8s ease-in-out infinite; }
.scn-proxenus-character .figure { position:absolute; bottom:25%; left:30%; width:14%; height:40%; background: radial-gradient(ellipse 60% 70% at 50% 60%, #1a0a06 0%, #0a0503 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pc-figure 6s ease-in-out infinite; }
.scn-proxenus-character .window { position:absolute; top:10%; right:8%; width:20%; height:30%; background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,140,180,.15); }
.scn-proxenus-character .moonlight { position:absolute; top:10%; right:8%; width:20%; height:30%; background: linear-gradient(135deg, rgba(180,200,220,.15) 0%, transparent 100%); filter: blur(8px); animation: pc-moonlight 20s ease-in-out infinite alternate; }
@keyframes pc-candle { 0% { opacity:0.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.05,1.02); } 100% { opacity:0.85; transform: scale(0.95); } }
@keyframes pc-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pc-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pc-moonlight { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-proxenus-honourable-ambition { background: linear-gradient(180deg, #1a1a0e 0%, #3a2a1a 40%, #1a0a06 100%), radial-gradient(ellipse at 50% 0%, #5a3a1a 0%, transparent 60%); }
.scn-proxenus-honourable-ambition .tent-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0e 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-proxenus-honourable-ambition .tent-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a04 100%); border-radius: 40% 40% 0 0; }
.scn-proxenus-honourable-ambition .table { position:absolute; bottom:18%; left:20%; width:60%; height:6%; background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-proxenus-honourable-ambition .map { position:absolute; bottom:20%; left:25%; width:50%; height:10%; background: linear-gradient(135deg, #7a6a3a 0%, #5a4a2a 100%); border-radius: 2px; transform: perspective(300px) rotateX(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ph-map 12s ease-in-out infinite; }
.scn-proxenus-honourable-ambition .candle-l { position:absolute; bottom:25%; left:35%; width:4px; height:14px; background: linear-gradient(180deg, #f0c060 0%, #b08030 100%); border-radius: 2px; box-shadow: 0 0 16px 4px #f0a030, 0 0 32px 8px rgba(240,160,48,.3); animation: ph-candle 2s ease-in-out infinite alternate; }
.scn-proxenus-honourable-ambition .figure { position:absolute; bottom:12%; left:40%; width:20%; height:50%; background: radial-gradient(ellipse 50% 80% at 50% 60%, #1a0a06 0%, #0a0503 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ph-figure 8s ease-in-out infinite; }
.scn-proxenus-honourable-ambition .shadow { position:absolute; bottom:10%; left:38%; width:24%; height:8%; background: radial-gradient(ellipse, #0a0503 0%, transparent 100%); filter: blur(6px); animation: ph-shadow 8s ease-in-out infinite; }
.scn-proxenus-honourable-ambition .lantern { position:absolute; top:5%; right:10%; width:6px; height:10px; background: radial-gradient(circle, #f0c060 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(240,192,96,.4); animation: ph-lantern 4s ease-in-out infinite alternate; }
@keyframes ph-map { 0% { transform: perspective(300px) rotateX(10deg) translateY(0); } 50% { transform: perspective(300px) rotateX(8deg) translateY(-2px); } 100% { transform: perspective(300px) rotateX(10deg) translateY(0); } }
@keyframes ph-candle { 0% { opacity:0.85; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.9; transform: scaleY(0.95); } }
@keyframes ph-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ph-shadow { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.1); opacity:0.8; } 100% { transform: scale(1); opacity:0.6; } }
@keyframes ph-lantern { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(2px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }

.scn-proxenus-weakness { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 70%); }
.scn-proxenus-weakness .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-proxenus-weakness .pillar { position:absolute; top:0; left:10%; width:6%; height:100%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,.3); }
.scn-proxenus-weakness .step { position:absolute; bottom:0; left:10%; width:80%; height:5%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,.4); }
.scn-proxenus-weakness .scroll { position:absolute; bottom:20%; left:15%; width:40%; height:10%; background: linear-gradient(135deg, #b0a080 0%, #908060 100%); border-radius: 40% 0 0 40% / 50% 0 0 50%; transform: rotate(5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: pw-scroll 10s ease-in-out infinite; }
.scn-proxenus-weakness .hand { position:absolute; bottom:18%; left:45%; width:8%; height:15%; background: radial-gradient(ellipse 50% 80% at 50% 20%, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 90%; animation: pw-hand 4s ease-in-out infinite; }
.scn-proxenus-weakness .light-ray { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(135deg, rgba(200,200,220,.1) 0%, transparent 100%); filter: blur(10px); animation: pw-light 15s ease-in-out infinite alternate; }
.scn-proxenus-weakness .dust { position:absolute; top:20%; left:20%; width:60%; height:60%; background: radial-gradient(circle at 30% 40%, rgba(255,255,255,.08) 0%, transparent 50%); filter: blur(4px); animation: pw-dust 25s linear infinite; }
@keyframes pw-scroll { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pw-hand { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes pw-light { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes pw-dust { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(10px,-5px) scale(1.1); } 100% { transform: translate(0,0) scale(1); } }

.scn-menon-character-wealth { background: linear-gradient(180deg, #0a0a06 0%, #1a1a0e 30%, #0a0a06 100%), radial-gradient(ellipse at 30% 70%, #3a2a0a 0%, transparent 60%); }
.scn-menon-character-wealth .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a06 0%, #1a1a0e 100%); }
.scn-menon-character-wealth .vault-wall { position:absolute; inset:10% 5% 5% 5%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border: 4px solid #3a2a1a; border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-menon-character-wealth .chest { position:absolute; bottom:15%; left:25%; width:50%; height:30%; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: mc-chest 12s ease-in-out infinite; }
.scn-menon-character-wealth .coins { position:absolute; bottom:12%; left:20%; width:60%; height:8%; background: radial-gradient(circle, #d4a040 0%, #b08030 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: mc-coins 6s ease-in-out infinite; }
.scn-menon-character-wealth .figure { position:absolute; bottom:5%; left:35%; width:30%; height:60%; background: radial-gradient(ellipse 70% 80% at 50% 60%, #0a0503 0%, #1a0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: mc-figure 8s ease-in-out infinite; }
.scn-menon-character-wealth .hand-grab { position:absolute; bottom:20%; left:45%; width:6%; height:12%; background: radial-gradient(ellipse 50% 70% at 50% 30%, #4a2a1a 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: mc-hand 3s ease-in-out infinite; }
.scn-menon-character-wealth .glint { position:absolute; top:30%; left:40%; width:4px; height:4px; background: radial-gradient(circle, #ffd060 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 12px 6px rgba(255,208,96,.5); animation: mc-glint 2s ease-in-out infinite; }
.scn-menon-character-wealth .shadow-fig { position:absolute; bottom:0; left:30%; width:40%; height:40%; background: radial-gradient(ellipse, #0a0503 0%, transparent 100%); filter: blur(10px); animation: mc-shadow 8s ease-in-out infinite; }
@keyframes mc-chest { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mc-coins { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes mc-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mc-hand { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes mc-glint { 0% { opacity:0; } 50% { opacity:1; transform: scale(2); } 100% { opacity:0; transform: scale(1); } }
@keyframes mc-shadow { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.1); opacity:0.7; } 100% { transform: scale(1); opacity:0.5; } }

/* Scene 1: kings-sons-introduction - calm, dim interior */
.scn-kings-sons-introduction {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1f1410 50%, #0d0907 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-kings-sons-introduction .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.7);
  animation: kis-wall 20s ease-in-out infinite alternate;
}
.scn-kings-sons-introduction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1f1410 0%, #0d0907 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-kings-sons-introduction .bed {
  position: absolute; bottom: 20%; left: 28%; width: 45%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1410 100%);
  border-radius: 6% 6% 10% 10% / 12% 12% 8% 8%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.8);
  animation: kis-bed 25s ease-in-out infinite alternate;
}
.scn-kings-sons-introduction .blanket {
  position: absolute; bottom: 24%; left: 30%; width: 38%; height: 28%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: kis-blanket 30s ease-in-out infinite alternate;
}
.scn-kings-sons-introduction .pillow {
  position: absolute; bottom: 50%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 60% 60%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: kis-pillow 20s ease-in-out infinite alternate;
}
.scn-kings-sons-introduction .lamp {
  position: absolute; bottom: 55%; right: 72%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5), 0 0 40px 15px rgba(200,150,80,0.2);
  animation: kis-lamp 6s ease-in-out infinite alternate;
}
.scn-kings-sons-introduction .son-left {
  position: absolute; bottom: 24%; left: 62%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kis-son-left 8s ease-in-out infinite alternate;
}
.scn-kings-sons-introduction .son-right {
  position: absolute; bottom: 22%; left: 28%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1f1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kis-son-right 9s ease-in-out infinite alternate;
}
.scn-kings-sons-introduction .shadow-drape {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, transparent 100%);
  animation: kis-drape 12s ease-in-out infinite alternate;
}
@keyframes kis-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes kis-bed {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.005); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes kis-blanket {
  0% { transform: translate(0,0) rotate(-1deg); }
  50% { transform: translate(1px,-2px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(-1deg); }
}
@keyframes kis-pillow {
  0% { transform: translate(0,0) scale(1); }
  50% { transform: translate(-1px,-1px) scale(1.02); }
  100% { transform: translate(0,0) scale(1); }
}
@keyframes kis-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(200,150,80,0.15); }
  50% { box-shadow: 0 0 50px 20px rgba(200,150,80,0.3); }
  100% { box-shadow: 0 0 35px 12px rgba(200,150,80,0.2); }
}
@keyframes kis-son-left {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kis-son-right {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kis-drape {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.75; }
}

/* Scene 2: footnote-parrhasia - calm, dim interior */
.scn-footnote-parrhasia {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 60% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-footnote-parrhasia .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%);
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.6);
  animation: fpa-wall 25s ease-in-out infinite alternate;
}
.scn-footnote-parrhasia .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1f1410 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 0 40px rgba(0,0,0,0.8), inset 0 10px 20px rgba(0,0,0,0.4);
  animation: fpa-desk 30s ease-in-out infinite alternate;
}
.scn-footnote-parrhasia .scroll {
  position: absolute; bottom: 38%; left: 50%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  transform: translateX(-50%);
  box-shadow: 2px 2px 10px rgba(0,0,0,0.5);
  animation: fpa-scroll 20s ease-in-out infinite alternate;
}
.scn-footnote-parrhasia .candle {
  position: absolute; bottom: 50%; left: 30%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.4);
  animation: fpa-candle 4s ease-in-out infinite alternate;
}
.scn-footnote-parrhasia .candle-glow {
  position: absolute; bottom: 48%; left: 28%; width: 8%; height: 8%;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: fpa-glow 3s ease-in-out infinite alternate;
}
.scn-footnote-parrhasia .figure {
  position: absolute; bottom: 18%; left: 45%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpa-figure 12s ease-in-out infinite alternate;
}
.scn-footnote-parrhasia .map {
  position: absolute; bottom: 28%; left: 55%; width: 25%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 4px 10px rgba(0,0,0,0.4);
  animation: fpa-map 35s ease-in-out infinite alternate;
}
.scn-footnote-parrhasia .inkwell {
  position: absolute; bottom: 30%; left: 25%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.8);
  animation: fpa-ink 15s ease-in-out infinite alternate;
}
@keyframes fpa-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fpa-desk {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px rgba(0,0,0,0.7); }
  50% { transform: translateY(-1px) scale(1.002); box-shadow: 0 0 50px rgba(0,0,0,0.8); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 30px rgba(0,0,0,0.7); }
}
@keyframes fpa-scroll {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-48%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes fpa-candle {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
  100% { opacity: 0.92; transform: scaleY(1); }
}
@keyframes fpa-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.4); }
  100% { opacity: 0.6; transform: scale(1.1); }
}
@keyframes fpa-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fpa-map {
  0% { opacity: 0.8; box-shadow: inset 0 0 15px rgba(0,0,0,0.4); }
  50% { opacity: 1; box-shadow: inset 0 0 25px rgba(0,0,0,0.6); }
  100% { opacity: 0.85; box-shadow: inset 0 0 15px rgba(0,0,0,0.4); }
}
@keyframes fpa-ink {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* Scene 3: cyrus-resolves-to-rebel - tense, dim interior */
.scn-cyrus-resolves-to-rebel {
  background:
    linear-gradient(180deg, #1a101a 0%, #0d060d 50%, #050205 100%),
    radial-gradient(ellipse at 40% 70%, #2a1a2a 0%, transparent 70%);
}
.scn-cyrus-resolves-to-rebel .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #0d060d 100%);
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.8);
  animation: crr-wall 8s ease-in-out infinite alternate;
}
.scn-cyrus-resolves-to-rebel .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0d060d 0%, #050205 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-cyrus-resolves-to-rebel .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0d060d 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 10px 40px rgba(0,0,0,0.9);
  animation: crr-table 5s ease-in-out infinite alternate;
}
.scn-cyrus-resolves-to-rebel .lamp {
  position: absolute; bottom: 42%; left: 45%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(200,150,80,0.2), inset 0 -4px 8px rgba(0,0,0,0.6);
  animation: crr-lamp 2s ease-in-out infinite alternate;
}
.scn-cyrus-resolves-to-rebel .figure-left {
  position: absolute; bottom: 18%; left: 25%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crr-fig-left 6s ease-in-out infinite alternate;
}
.scn-cyrus-resolves-to-rebel .figure-right {
  position: absolute; bottom: 16%; left: 55%; width: 14%; height: 44%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0d060d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crr-fig-right 7s ease-in-out infinite alternate;
}
.scn-cyrus-resolves-to-rebel .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 100%);
  animation: crr-shadow 4s ease-in-out infinite alternate;
}
.scn-cyrus-resolves-to-rebel .flicker {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 45% 60%, rgba(255,200,100,0.08) 0%, transparent 60%);
  animation: crr-flicker 1s steps(2) infinite;
}
@keyframes crr-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes crr-table {
  0% { transform: translateY(0) scale(1); box-shadow: 0 10px 30px rgba(0,0,0,0.8); }
  50% { transform: translateY(-3px) scale(1.01); box-shadow: 0 15px 50px rgba(0,0,0,0.9); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 10px 30px rgba(0,0,0,0.8); }
}
@keyframes crr-lamp {
  0% { box-shadow: 0 0 40px 10px rgba(200,150,80,0.1), inset 0 -4px 8px rgba(0,0,0,0.6); opacity: 0.7; }
  50% { box-shadow: 0 0 80px 30px rgba(200,150,80,0.3), inset 0 -4px 8px rgba(0,0,0,0.6); opacity: 1; }
  100% { box-shadow: 0 0 50px 15px rgba(200,150,80,0.15), inset 0 -4px 8px rgba(0,0,0,0.6); opacity: 0.8; }
}
@keyframes crr-fig-left {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes crr-fig-right {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes crr-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes crr-flicker {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}

/* Scene 4: cyrus-trains-barbarians - tense, dim interior */
.scn-cyrus-trains-barbarians {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #0a0502 50%, #030101 100%),
    radial-gradient(ellipse at 30% 70%, #3a1a0a 0%, transparent 70%);
}
.scn-cyrus-trains-barbarians .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.9);
  animation: ctb-wall 6s ease-in-out infinite alternate;
}
.scn-cyrus-trains-barbarians .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0a0502 0%, #030101 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-cyrus-trains-barbarians .torch-left {
  position: absolute; bottom: 60%; left: 12%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 60px 30px rgba(255,200,80,0.15);
  animation: ctb-torch-left 3s ease-in-out infinite alternate;
}
.scn-cyrus-trains-barbarians .torch-right {
  position: absolute; bottom: 60%; right: 12%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 60px 30px rgba(255,200,80,0.15);
  animation: ctb-torch-right 3.5s ease-in-out infinite alternate;
}
.scn-cyrus-trains-barbarians .soldier-1 {
  position: absolute; bottom: 12%; left: 20%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctb-soldier1 4s ease-in-out infinite alternate;
}
.scn-cyrus-trains-barbarians .soldier-2 {
  position: absolute; bottom: 14%; left: 50%; width: 16%; height: 48%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctb-soldier2 4.5s ease-in-out infinite alternate;
}
.scn-cyrus-trains-barbarians .weapon {
  position: absolute; bottom: 40%; left: 40%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(-25deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: ctb-weapon 3s ease-in-out infinite alternate;
}
.scn-cyrus-trains-barbarians .shadow-bars {
  position: absolute; left: 0; right: 0; bottom: 0; height: 40%;
  background: repeating-linear-gradient(0deg, transparent 0%, rgba(0,0,0,0.4) 2%, transparent 6%, transparent 8%);
  animation: ctb-bars 5s ease-in-out infinite alternate;
}
@keyframes ctb-wall {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ctb-torch-left {
  0% { opacity: 0.7; box-shadow: 0 0 40px 20px rgba(255,200,80,0.1); }
  50% { opacity: 1; box-shadow: 0 0 80px 40px rgba(255,200,80,0.3); }
  100% { opacity: 0.8; box-shadow: 0 0 50px 25px rgba(255,200,80,0.15); }
}
@keyframes ctb-torch-right {
  0% { opacity: 0.8; box-shadow: 0 0 50px 25px rgba(255,200,80,0.15); }
  50% { opacity: 1; box-shadow: 0 0 90px 45px rgba(255,200,80,0.35); }
  100% { opacity: 0.7; box-shadow: 0 0 40px 20px rgba(255,200,80,0.1); }
}
@keyframes ctb-soldier1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(3deg) scaleX(1.02); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ctb-soldier2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-3deg) scaleX(1.02); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ctb-weapon {
  0% { transform: rotate(-25deg) translateX(0); }
  50% { transform: rotate(-20deg) translateX(5px); }
  100% { transform: rotate(-25deg) translateX(0); }
}
@keyframes ctb-bars {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-xenophon-arranges-to-enter { background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2820 100%), radial-gradient(ellipse at 50% 100%, #3a2820 0%, transparent 70%); }
.scn-xenophon-arranges-to-enter .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2218 0%, #3a3024 50%, #1e1814 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.5); animation: xa-wall 8s ease-in-out infinite alternate; }
.scn-xenophon-arranges-to-enter .gate { position:absolute; bottom:20%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 6% 6% 2% 2% / 12% 12% 4% 4%; border: 4px solid #2a2018; box-shadow: 0 0 20px 5px rgba(200,140,60,.2), inset 0 0 40px 10px rgba(0,0,0,.6); animation: xa-gate 12s ease-in-out infinite; }
.scn-xenophon-arranges-to-enter .guard { position:absolute; bottom:75%; left:44%; width:24px; height:40px; background: linear-gradient(180deg, #1a1414 0%, #0e0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px 2px rgba(0,0,0,.4); animation: xa-guard 6s ease-in-out infinite alternate; }
.scn-xenophon-arranges-to-enter .lantern { position:absolute; bottom:50%; left:30%; width:12px; height:16px; background: radial-gradient(circle, #ffb060 0%, #c07020 60%, #803010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 8px #c07020, 0 0 60px 20px rgba(192,112,32,.3); animation: xa-lantern 3s ease-in-out infinite alternate; }
.scn-xenophon-arranges-to-enter .xenophon { position:absolute; bottom:22%; left:38%; width:20px; height:48px; background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: xa-xenophon 7s ease-in-out infinite; }
.scn-xenophon-arranges-to-enter .ground { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #0e0a08 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-xenophon-arranges-to-enter .shadow-bars { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 8%, rgba(0,0,0,.2) 8%, rgba(0,0,0,.2) 10%, transparent 10%, transparent 16%); animation: xa-bars 15s linear infinite; }
@keyframes xa-wall     { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes xa-gate     { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.01) translateY(-3px) } }
@keyframes xa-guard    { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(4px) translateY(-1px) } 100% { transform: translateX(-2px) translateY(1px) } }
@keyframes xa-lantern  { 0% { box-shadow: 0 0 20px 4px #c07020, 0 0 40px 10px rgba(192,112,32,.2); opacity:.8 } 50% { box-shadow: 0 0 40px 12px #ffb060, 0 0 80px 24px rgba(255,176,96,.4); opacity:1 } 100% { box-shadow: 0 0 25px 6px #c07020, 0 0 50px 12px rgba(192,112,32,.3); opacity:.9 } }
@keyframes xa-xenophon { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes xa-bars     { 0% { transform: translateX(0) } 100% { transform: translateX(-16%) } }

.scn-coeratadas-fails { background: linear-gradient(180deg, #b0c4d8 0%, #d8e4e8 40%, #e8ece8 100%), radial-gradient(ellipse at 50% 0%, #f0f4f0 0%, transparent 70%); }
.scn-coeratadas-fails .sky       { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8ab4d8 0%, #c8dce8 70%, transparent 100%); animation: cf-sky 10s ease-in-out infinite alternate; }
.scn-coeratadas-fails .sunbeams  { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,240,200,.25) 0%, transparent 40%, transparent 60%, rgba(255,240,200,.15) 100%); animation: cf-beams 8s ease-in-out infinite alternate; }
.scn-coeratadas-fails .altar     { position:absolute; bottom:25%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #b0a090 0%, #807060 50%, #605040 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.2), inset 0 4px 8px rgba(255,255,255,.1); animation: cf-altar 6s ease-in-out infinite; }
.scn-coeratadas-fails .victim    { position:absolute; bottom:40%; left:52%; width:30px; height:22px; background: linear-gradient(180deg, #d8c8b0 0%, #b8a088 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: cf-victim 2s ease-in-out infinite; }
.scn-coeratadas-fails .coeratadas{ position:absolute; bottom:28%; left:42%; width:28px; height:56px; background: linear-gradient(180deg, #c8b0a0 0%, #a08878 50%, #786858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-dance 1.5s ease-in-out infinite; }
.scn-coeratadas-fails .crown     { position:absolute; bottom:62%; left:41%; width:20px; height:10px; background: linear-gradient(180deg, #d8c080 0%, #b89848 100%); border-radius: 50% 50% 30% 30%; transform-origin: center; animation: cf-crown 1.5s ease-in-out infinite; }
.scn-coeratadas-fails .soldiers  { position:absolute; bottom:18%; left:18%; width:48px; height:36px; background: linear-gradient(180deg, #a09888 0%, #706858 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: cf-soldiers 4s ease-in-out infinite; }
.scn-coeratadas-fails .soldiers-2{ position:absolute; bottom:18%; right:18%; width:40px; height:32px; background: linear-gradient(180deg, #a09888 0%, #706858 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: cf-soldiers 4.5s ease-in-out infinite alternate; }
@keyframes cf-sky       { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cf-beams     { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes cf-altar     { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes cf-victim    { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(6px) rotate(-8deg) } 50% { transform: translateX(-4px) rotate(5deg) } 75% { transform: translateX(8px) rotate(-3deg) } }
@keyframes cf-dance     { 0%,100% { transform: translateY(0) rotate(-4deg) } 30% { transform: translateY(-6px) rotate(6deg) } 60% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes cf-crown     { 0%,100% { transform: translateY(0) rotate(-10deg) } 30% { transform: translateY(-5px) rotate(15deg) } 60% { transform: translateY(-1px) rotate(-5deg) } }
@keyframes cf-soldiers  { 0%,100% { transform: translateX(0) } 50% { transform: translateX(6px) } }

.scn-generals-disagree { background: linear-gradient(180deg, #687078 0%, #808890 40%, #9098a0 100%), radial-gradient(ellipse at 50% 0%, #a0a8b0 0%, transparent 70%); }
.scn-generals-disagree .overcast-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #505860 0%, #788088 80%); animation: gd-sky 15s ease-in-out infinite alternate; }
.scn-generals-disagree .ground      { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #585048 0%, #38342e 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.3); }
.scn-generals-disagree .general-left{ position:absolute; bottom:30%; left:30%; width:32px; height:64px; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: gd-left 6s ease-in-out infinite alternate; }
.scn-generals-disagree .general-right{position:absolute; bottom:30%; right:30%; width:32px; height:64px; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: gd-right 6s ease-in-out infinite alternate; }
.scn-generals-disagree .army-back   { position:absolute; bottom:28%; left:10%; right:10%; height:100px; background: repeating-linear-gradient(90deg, rgba(30,30,30,.6) 0%, rgba(30,30,30,.6) 4%, transparent 4%, transparent 8%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; animation: gd-army 20s ease-in-out infinite alternate; }
.scn-generals-disagree .spear-line  { position:absolute; bottom:38%; left:10%; right:10%; height:80px; background: repeating-linear-gradient(90deg, rgba(80,70,60,.7) 0%, rgba(80,70,60,.7) 2%, transparent 2%, transparent 6%); animation: gd-spear 25s linear infinite; }
.scn-generals-disagree .standard-left { position:absolute; bottom:48%; left:35%; width:6px; height:60px; background: linear-gradient(180deg, #605040 0%, #1a1410 100%); transform-origin: bottom center; animation: gd-flag-left 8s ease-in-out infinite; }
.scn-generals-disagree .standard-right{ position:absolute; bottom:48%; right:35%; width:6px; height:60px; background: linear-gradient(180deg, #605040 0%, #1a1410 100%); transform-origin: bottom center; animation: gd-flag-right 8s ease-in-out infinite;}
@keyframes gd-sky       { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes gd-left      { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(4px) translateY(-4px) rotate(2deg) } 100% { transform: translateX(-2px) translateY(0) rotate(-1deg) } }
@keyframes gd-right     { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 50% { transform: translateX(-4px) translateY(-4px) rotate(-2deg) } 100% { transform: translateX(2px) translateY(0) rotate(1deg) } }
@keyframes gd-army      { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }
@keyframes gd-spear     { 0% { transform: translateX(0) } 100% { transform: translateX(-12%) } }
@keyframes gd-flag-left  { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes gd-flag-right { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } }

.scn-timasion-wants-asia { background: linear-gradient(180deg, #586878 0%, #788898 40%, #98a8b0 100%), radial-gradient(ellipse at 50% 0%, #a8b8c0 0%, transparent 70%); }
.scn-timasion-wants-asia .sky-overcast    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #485868 0%, #788898 100%); animation: tw-sky 12s ease-in-out infinite alternate; }
.scn-timasion-wants-asia .sea-far         { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #687888 0%, #485868 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); animation: tw-sea-far 18s ease-in-out infinite alternate; }
.scn-timasion-wants-asia .sea-near        { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, #586878 0%, #384858 100%); border-radius: 40% 60% 0 0 / 50% 40% 0 0; animation: tw-sea-near 12s ease-in-out infinite alternate; }
.scn-timasion-wants-asia .shore-asia      { position:absolute; bottom:35%; right:15%; width:100px; height:40px; background: linear-gradient(180deg, #786858 0%, #584838 100%); border-radius: 80% 60% 20% 20% / 60% 80% 20% 20%; box-shadow: 0 0 20px 4px rgba(120,104,88,.3); animation: tw-shore 25s ease-in-out infinite alternate; }
.scn-timasion-wants-asia .timasion        { position:absolute; bottom:30%; left:25%; width:28px; height:60px; background: linear-gradient(180deg, #2a2824 0%, #121010 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: tw-timasion 6s ease-in-out infinite; }
.scn-timasion-wants-asia .soldiers-selling{ position:absolute; bottom:18%; left:10%; width:60px; height:40px; background: repeating-linear-gradient(90deg, rgba(40,40,40,.7) 0%, rgba(40,40,40,.7) 6%, transparent 6%, transparent 12%); border-radius: 30% 30% 10% 10%; animation: tw-soldiers 8s ease-in-out infinite alternate; }
.scn-timasion-wants-asia .boat            { position:absolute; bottom:12%; left:5%; width:70px; height:18px; background: linear-gradient(180deg, #483830 0%, #2a2218 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: center; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: tw-boat 10s ease-in-out infinite; }
.scn-timasion-wants-asia .rocky-foreground{ position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #484038 0%, #282218 100%); border-radius: 20% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); }
@keyframes tw-sky       { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes tw-sea-far   { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.01) } 100% { transform: translateY(2px) scale(0.99) } }
@keyframes tw-sea-near  { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(3px) } }
@keyframes tw-shore     { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes tw-timasion  { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(2deg) } }
@keyframes tw-soldiers  { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(4px) } }
@keyframes tw-boat      { 0%,100% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(10px) rotate(1deg) } 50% { transform: translateX(20px) rotate(-2deg) } 75% { transform: translateX(30px) rotate(2deg) } }

/* review-for-queen */
.scn-review-for-queen {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c090 40%, #c8a070 70%, #a08050 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-review-for-queen .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #8ab4f8 0%, #d4e8ff 100%); animation: rq-sky 12s ease-in-out infinite alternate; }
.scn-review-for-queen .sun-glow { position:absolute; top:8%; left:75%; width:80px; height:80px; background: radial-gradient(circle, #ffe880 0%, #ffd060 40%, transparent 70%); animation: rq-sun 6s ease-in-out infinite alternate; }
.scn-review-for-queen .plain { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b8945c 0%, #8a7040 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: rq-plain 20s ease-in-out infinite alternate; }
.scn-review-for-queen .platform { position:absolute; bottom:20%; left:20%; width:30%; height:10%; background: linear-gradient(180deg, #6a5030 0%, #4a3520 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rq-platform 4s ease-in-out infinite; }
.scn-review-for-queen .queen { position:absolute; bottom:28%; left:23%; width:30px; height:70px; background: radial-gradient(ellipse at 50% 60%, #f0d8a0 0%, #c8a060 50%, #a08040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rq-queen 3s ease-in-out infinite alternate; }
.scn-review-for-queen .soldier1 { position:absolute; bottom:10%; left:45%; width:14px; height:36px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: rq-soldier 4s ease-in-out infinite; }
.scn-review-for-queen .soldier2 { position:absolute; bottom:12%; left:55%; width:14px; height:34px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: rq-soldier 4s ease-in-out infinite 0.5s; }
.scn-review-for-queen .soldier3 { position:absolute; bottom:14%; left:65%; width:14px; height:32px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: rq-soldier 4s ease-in-out infinite 1s; }
.scn-review-for-queen .chariot { position:absolute; bottom:15%; left:35%; width:50px; height:30px; background: linear-gradient(90deg, #8a5a30 0%, #b07040 50%, #8a5a30 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: rq-chariot 4s ease-in-out infinite alternate; }
@keyframes rq-sky { 0%{ opacity:.8 } 50%{ opacity:1 } 100%{ opacity:.75 } }
@keyframes rq-sun { 0%{ transform: scale(1); opacity:.9 } 50%{ transform: scale(1.1); opacity:1 } 100%{ transform: scale(0.95); opacity:.85 } }
@keyframes rq-plain { 0%{ background-position: 0% 0% } 50%{ background-position: 2% 1% } 100%{ background-position: 0% 0% } }
@keyframes rq-platform { 0%,100%{ transform: scaleY(1) } 50%{ transform: scaleY(0.98) } }
@keyframes rq-queen { 0%{ transform: rotate(0deg) translateY(0) } 50%{ transform: rotate(2deg) translateY(-2px) } 100%{ transform: rotate(0deg) translateY(0) } }
@keyframes rq-soldier { 0%{ transform: translateY(0) } 50%{ transform: translateY(-4px) } 100%{ transform: translateY(0) } }
@keyframes rq-chariot { 0%{ transform: translateX(0) rotate(0deg) } 50%{ transform: translateX(10px) rotate(1deg) } 100%{ transform: translateX(0) rotate(0deg) } }

/* mock-charge-terror */
.scn-mock-charge-terror {
  background: linear-gradient(180deg, #ffe66b 0%, #ffd24d 30%, #f5b842 60%, #d9902a 100%),
              radial-gradient(ellipse at 70% 100%, #ffed80 0%, transparent 50%);
}
.scn-mock-charge-terror .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6eb6ff 0%, #b8d6ff 100%); animation: mc-sky 10s ease-in-out infinite alternate; }
.scn-mock-charge-terror .sun { position:absolute; top:5%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #fff4a0 0%, #ffe060 40%, transparent 70%); animation: mc-sun 4s ease-in-out infinite alternate; }
.scn-mock-charge-terror .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8a050 0%, #8a7330 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: mc-ground 8s ease-in-out infinite; }
.scn-mock-charge-terror .chariot { position:absolute; bottom:20%; left:10%; width:70px; height:40px; background: linear-gradient(90deg, #c07030 0%, #e09050 50%, #c07030 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: mc-chariot 2s ease-in-out infinite alternate; }
.scn-mock-charge-terror .driver { position:absolute; bottom:28%; left:15%; width:20px; height:45px; background: radial-gradient(ellipse at 50% 60%, #f0d0a0 0%, #b08050 70%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: mc-driver 0.8s ease-in-out infinite alternate; }
.scn-mock-charge-terror .commander { position:absolute; bottom:22%; left:40%; width:22px; height:50px; background: radial-gradient(ellipse at 50% 60%, #f0d0a0 0%, #c09060 70%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: mc-commander 1.2s ease-in-out infinite; }
.scn-mock-charge-terror .flee1 { position:absolute; bottom:15%; right:30%; width:12px; height:30px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: mc-flee 0.6s ease-in-out infinite; }
.scn-mock-charge-terror .flee2 { position:absolute; bottom:18%; right:20%; width:12px; height:28px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: mc-flee 0.6s ease-in-out infinite 0.2s; }
.scn-mock-charge-terror .banner { position:absolute; bottom:35%; right:10%; width:8px; height:50px; background: linear-gradient(180deg, #e0a060 0%, #c08040 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 10px 2px #ffd060; animation: mc-banner 2s ease-in-out infinite; }
@keyframes mc-sky { 0%{ opacity:.9 } 50%{ opacity:1 } 100%{ opacity:.85 } }
@keyframes mc-sun { 0%{ transform: scale(1) rotate(0deg) } 50%{ transform: scale(1.15) rotate(10deg) } 100%{ transform: scale(1) rotate(0deg) } }
@keyframes mc-ground { 0%{ background-position: 0% 0% } 50%{ background-position: 3% 1% } 100%{ background-position: 0% 0% } }
@keyframes mc-chariot { 0%{ transform: translateX(0) rotate(0deg) translateY(0) } 50%{ transform: translateX(20px) rotate(-2deg) translateY(-5px) } 100%{ transform: translateX(0) rotate(0deg) translateY(0) } }
@keyframes mc-driver { 0%{ transform: rotate(-5deg) } 50%{ transform: rotate(8deg) } 100%{ transform: rotate(-5deg) } }
@keyframes mc-commander { 0%{ transform: translateY(0) rotate(0deg) } 50%{ transform: translateY(-6px) rotate(3deg) } 100%{ transform: translateY(0) rotate(0deg) } }
@keyframes mc-flee { 0%{ transform: translateX(0) rotate(0deg) } 50%{ transform: translateX(-15px) rotate(-10deg) } 100%{ transform: translateX(0) rotate(0deg) } }
@keyframes mc-banner { 0%{ transform: rotate(0deg) scaleY(1) } 50%{ transform: rotate(15deg) scaleY(1.1) } 100%{ transform: rotate(0deg) scaleY(1) } }

/* iconium-lycaonia */
.scn-iconium-lycaonia {
  background: linear-gradient(180deg, #b8d8ff 0%, #8ab4f8 40%, #5c84c8 70%, #3060a0 100%),
              radial-gradient(ellipse at 50% 0%, #d0e4ff 0%, transparent 60%);
}
.scn-iconium-lycaonia .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a9ee0 0%, #b0cce8 100%); animation: il-sky 15s ease-in-out infinite alternate; }
.scn-iconium-lycaonia .sun-beam { position:absolute; top:0; left:30%; width:200px; height:100%; background: linear-gradient(180deg, rgba(255,230,120,0.6) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: il-beam 6s ease-in-out infinite; }
.scn-iconium-lycaonia .plain { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a7a30 0%, #3a5a1a 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,.5); animation: il-plain 18s ease-in-out infinite alternate; }
.scn-iconium-lycaonia .city { position:absolute; bottom:30%; left:60%; width:120px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); animation: il-city 10s ease-in-out infinite; }
.scn-iconium-lycaonia .soldier-il1 { position:absolute; bottom:10%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #8a6040 0%, #5a4028 100%); border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%; animation: il-march 5s ease-in-out infinite; }
.scn-iconium-lycaonia .soldier-il2 { position:absolute; bottom:13%; left:32%; width:16px; height:38px; background: linear-gradient(180deg, #8a6040 0%, #5a4028 100%); border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%; animation: il-march 5s ease-in-out infinite 0.8s; }
.scn-iconium-lycaonia .soldier-il3 { position:absolute; bottom:16%; left:44%; width:16px; height:36px; background: linear-gradient(180deg, #8a6040 0%, #5a4028 100%); border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%; animation: il-march 5s ease-in-out infinite 1.6s; }
.scn-iconium-lycaonia .spear { position:absolute; bottom:30%; left:10%; width:4px; height:60px; background: linear-gradient(180deg, #604020 0%, #302010 100%); border-radius: 20% 20% 0 0; transform: rotate(-10deg); animation: il-spear 4s ease-in-out infinite; }
.scn-iconium-lycaonia .dust { position:absolute; bottom:5%; left:25%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(180,150,100,0.6) 0%, transparent 80%); filter: blur(4px); animation: il-dust 10s ease-in-out infinite; }
@keyframes il-sky { 0%{ opacity:.85 } 50%{ opacity:1 } 100%{ opacity:.8 } }
@keyframes il-beam { 0%{ opacity:.3 } 50%{ opacity:.7 } 100%{ opacity:.3 } }
@keyframes il-plain { 0%{ transform: translateY(0) } 50%{ transform: translateY(-4px) } 100%{ transform: translateY(0) } }
@keyframes il-city { 0%{ transform: translateY(0) scale(1) } 50%{ transform: translateY(-3px) scale(1.02) } 100%{ transform: translateY(0) scale(1) } }
@keyframes il-march { 0%{ transform: translateX(0) translateY(0) } 50%{ transform: translateX(8px) translateY(-5px) } 100%{ transform: translateX(0) translateY(0) } }
@keyframes il-spear { 0%{ transform: rotate(-10deg) } 50%{ transform: rotate(-5deg) } 100%{ transform: rotate(-10deg) } }
@keyframes il-dust { 0%{ opacity:.2; transform: scale(1) translateX(0) } 50%{ opacity:.6; transform: scale(1.3) translateX(20px) } 100%{ opacity:.2; transform: scale(1) translateX(0) } }

/* cappadocia-doana */
.scn-cappadocia-doana {
  background: linear-gradient(180deg, #b0cce8 0%, #8ab4f8 30%, #5c84c8 60%, #3060a0 100%),
              radial-gradient(ellipse at 80% 20%, #d0e4ff 0%, transparent 50%);
}
.scn-cappadocia-doana .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9ee0 0%, #a0c0e8 100%); animation: cd-sky 14s ease-in-out infinite alternate; }
.scn-cappadocia-doana .harsh-sun { position:absolute; top:5%; right:10%; width:70px; height:70px; background: radial-gradient(circle, #ffe880 0%, #ffc040 40%, transparent 70%); animation: cd-sun 8s ease-in-out infinite alternate; }
.scn-cappadocia-doana .cliff-left { position:absolute; bottom:0; left:0; width:30%; height:80%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 40% 40% 0; box-shadow: 10px 0 20px rgba(0,0,0,.4); animation: cd-cliff 20s ease-in-out infinite; }
.scn-cappadocia-doana .cliff-right { position:absolute; bottom:10%; right:0; width:25%; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 0 0 40%; box-shadow: -10px 0 20px rgba(0,0,0,.4); animation: cd-cliff 20s ease-in-out infinite reverse; }
.scn-cappadocia-doana .road { position:absolute; bottom:0; left:30%; right:25%; height:30%; background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: cd-road 12s ease-in-out infinite; }
.scn-cappadocia-doana .soldier-cd1 { position:absolute; bottom:10%; left:35%; width:16px; height:38px; background: linear-gradient(180deg, #8a6040 0%, #5a4028 100%); border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%; animation: cd-march 4s ease-in-out infinite; }
.scn-cappadocia-doana .soldier-cd2 { position:absolute; bottom:13%; left:45%; width:16px; height:36px; background: linear-gradient(180deg, #8a6040 0%, #5a4028 100%); border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%; animation: cd-march 4s ease-in-out infinite 0.6s; }
.scn-cappadocia-doana .leader-horse { position:absolute; bottom:16%; left:55%; width:40px; height:30px; background: linear-gradient(270deg, #b08050 0%, #8a6040 100%); border-radius: 50% 50% 20% 20%; animation: cd-horse 5s ease-in-out infinite; }
.scn-cappadocia-doana .dust-cd { position:absolute; bottom:5%; left:35%; width:100px; height:15px; background: radial-gradient(ellipse, rgba(160,130,80,0.5) 0%, transparent 80%); filter: blur(3px); animation: cd-dust 8s ease-in-out infinite; }
@keyframes cd-sky { 0%{ opacity:.9 } 50%{ opacity:1 } 100%{ opacity:.85 } }
@keyframes cd-sun { 0%{ transform: scale(1) } 50%{ transform: scale(1.12) rotate(5deg) } 100%{ transform: scale(1) } }
@keyframes cd-cliff { 0%{ transform: translateY(0) } 50%{ transform: translateY(-6px) } 100%{ transform: translateY(0) } }
@keyframes cd-road { 0%{ background-position: 0% 0% } 50%{ background-position: 2% 1% } 100%{ background-position: 0% 0% } }
@keyframes cd-march { 0%{ transform: translateX(0) translateY(0) } 50%{ transform: translateX(6px) translateY(-4px) } 100%{ transform: translateX(0) translateY(0) } }
@keyframes cd-horse { 0%{ transform: translateX(0) rotate(0deg) } 50%{ transform: translateX(12px) rotate(-2deg) } 100%{ transform: translateX(0) rotate(0deg) } }
@keyframes cd-dust { 0%{ opacity:.2; transform: scale(1) translateX(0) } 50%{ opacity:.5; transform: scale(1.4) translateX(20px) } 100%{ opacity:.2; transform: scale(1) translateX(0) } }

.scn-ariaeus-replies-clearchus-guilty {
  background: linear-gradient(180deg, #f8e8c0 0%, #d4c49a 40%, #b8a87e 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-ariaeus-replies-clearchus-guilty .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d0e8 0%, #e0d8b0 70%, transparent 100%);
  animation: ag-sky 14s ease-in-out infinite alternate;
}
.scn-ariaeus-replies-clearchus-guilty .sun {
  position: absolute; top: 18%; left: 68%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd4a0 0%, #f0b060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,176,96,0.5), 0 0 120px 40px rgba(240,176,96,0.2);
  animation: ag-sun 6s ease-in-out infinite alternate;
}
.scn-ariaeus-replies-clearchus-guilty .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b09060 0%, #8a7048 60%, #5a4628 100%);
  border-radius: 0 0 80% 80% / 0 0 30% 30%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.4);
}
.scn-ariaeus-replies-clearchus-guilty .figure-left {
  position: absolute; bottom: 33%; left: 30%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ag-figureL 4s ease-in-out infinite;
}
.scn-ariaeus-replies-clearchus-guilty .figure-right {
  position: absolute; bottom: 33%; right: 28%; width: 30px; height: 74px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ag-figureR 3.6s ease-in-out infinite;
}
.scn-ariaeus-replies-clearchus-guilty .shadow-left {
  position: absolute; bottom: 16%; left: 28%; width: 80px; height: 12px;
  background: rgba(50,30,10,0.6); border-radius: 50%;
  filter: blur(4px);
  animation: ag-shadow 5s ease-in-out infinite alternate;
}
.scn-ariaeus-replies-clearchus-guilty .shadow-right {
  position: absolute; bottom: 16%; right: 25%; width: 90px; height: 14px;
  background: rgba(50,30,10,0.5); border-radius: 50%;
  filter: blur(5px);
  animation: ag-shadowR 5.4s ease-in-out infinite alternate;
  animation-delay: 1.2s;
}
.scn-ariaeus-replies-clearchus-guilty .dust-1 {
  position: absolute; top: 40%; left: 45%; width: 6px; height: 6px;
  background: rgba(220,200,160,0.5); border-radius: 50%;
  filter: blur(2px);
  animation: ag-dust 9s infinite linear;
}
.scn-ariaeus-replies-clearchus-guilty .dust-2 {
  position: absolute; top: 50%; left: 60%; width: 8px; height: 8px;
  background: rgba(220,200,160,0.4); border-radius: 50%;
  filter: blur(3px);
  animation: ag-dust2 12s infinite linear;
  animation-delay: 3s;
}
@keyframes ag-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ag-sun {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 60px 20px rgba(240,176,96,0.5); }
  50% { transform: scale(1.05) rotate(10deg); box-shadow: 0 0 80px 30px rgba(240,176,96,0.7); }
  100% { transform: scale(0.98) rotate(-5deg); box-shadow: 0 0 50px 15px rgba(240,176,96,0.4); }
}
@keyframes ag-figureL {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg) translateY(-1px); }
  50% { transform: translateX(5px) rotate(1deg) translateY(1px); }
  75% { transform: translateX(-2px) rotate(-1deg) translateY(-1px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ag-figureR {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-1deg) translateY(1px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ag-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.7; }
  50% { transform: scaleX(1.15) translateX(5px); opacity: 0.5; }
  100% { transform: scaleX(0.9) translateX(-3px); opacity: 0.8; }
}
@keyframes ag-shadowR {
  0% { transform: scaleX(1) translateX(0); opacity: 0.6; }
  50% { transform: scaleX(1.2) translateX(-7px); opacity: 0.4; }
  100% { transform: scaleX(0.85) translateX(4px); opacity: 0.7; }
}
@keyframes ag-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.5; }
  50% { transform: translate(20px, -30px) scale(0.6); opacity: 0.2; }
  100% { transform: translate(40px, -60px) scale(0.3); opacity: 0; }
}
@keyframes ag-dust2 {
  0% { transform: translate(0,0) scale(1); opacity: 0.4; }
  50% { transform: translate(-25px, -40px) scale(0.7); opacity: 0.2; }
  100% { transform: translate(-50px, -80px) scale(0.2); opacity: 0; }
}

.scn-clearchus-character {
  background: linear-gradient(180deg, #2c2218 0%, #3d3020 30%, #1e1610 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a28 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-clearchus-character .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2c1c 0%, #2a1e10 50%, #1a1008 100%);
}
.scn-clearchus-character .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e10 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-clearchus-character .table {
  position: absolute; bottom: 22%; left: 50%; width: 100px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4430 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-clearchus-character .lamp {
  position: absolute; bottom: 36%; left: 48%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #e8c880 0%, #c0a060 40%, #806040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,160,100,0.5);
  animation: cc-lamp 5s ease-in-out infinite alternate;
}
.scn-clearchus-character .soldier {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 86px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cc-soldier 6s ease-in-out infinite;
}
.scn-clearchus-character .sword {
  position: absolute; bottom: 31%; left: 44%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #a09890 0%, #706860 60%, #505048 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(160,152,144,0.3);
  animation: cc-sword 4s ease-in-out infinite alternate;
}
.scn-clearchus-character .mote {
  position: absolute; width: 4px; height: 4px;
  background: rgba(220,200,160,0.3); border-radius: 50%;
  filter: blur(2px);
}
.scn-clearchus-character .mote-1 {
  top: 45%; left: 30%;
  animation: cc-mote 20s infinite linear;
}
.scn-clearchus-character .mote-2 {
  top: 55%; left: 60%;
  animation: cc-mote2 25s infinite linear;
  animation-delay: 8s;
}
@keyframes cc-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 24px 6px rgba(200,160,100,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(200,160,100,0.6); }
  100% { opacity: 0.85; box-shadow: 0 0 28px 8px rgba(200,160,100,0.45); }
}
@keyframes cc-soldier {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cc-sword {
  0% { transform: rotate(-15deg) translateY(0); opacity: 0.7; }
  50% { transform: rotate(-8deg) translateY(-3px); opacity: 1; }
  100% { transform: rotate(-18deg) translateY(1px); opacity: 0.6; }
}
@keyframes cc-mote {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  50% { transform: translate(30px, -40px) scale(0.5); opacity: 0.1; }
  100% { transform: translate(60px, -80px) scale(0.2); opacity: 0; }
}
@keyframes cc-mote2 {
  0% { transform: translate(0,0) scale(1); opacity: 0.2; }
  50% { transform: translate(-20px, -30px) scale(0.6); opacity: 0.1; }
  100% { transform: translate(-40px, -60px) scale(0.3); opacity: 0; }
}

.scn-clearchus-exile {
  background: linear-gradient(180deg, #1c1610 0%, #2a2018 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 20%, #3a2c20 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-clearchus-exile .interior-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #2a1e14 0%, #1a1008 60%, #0e0a06 100%);
}
.scn-clearchus-exile .window-frame {
  position: absolute; top: 15%; left: 25%; width: 50%; height: 60%;
  border: 12px solid #3a2a1a;
  box-sizing: border-box;
  background: transparent;
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-clearchus-exile .outside-sky {
  position: absolute; top: 15%; left: calc(25% + 12px); width: calc(50% - 24px); height: calc(60% - 12px);
  background: linear-gradient(180deg, #304050 0%, #506878 60%, #708898 100%);
  border-radius: 4px 4px 0 0;
  animation: ce-sky 20s ease-in-out infinite alternate;
}
.scn-clearchus-exile .sea {
  position: absolute; bottom: 15%; left: calc(25% + 12px); width: calc(50% - 24px); height: calc(45% - 12px);
  background: linear-gradient(180deg, #3a4a58 0%, #2a3844 60%, #1a2832 100%);
  border-radius: 0 0 4px 4px;
  animation: ce-sea 15s ease-in-out infinite alternate;
}
.scn-clearchus-exile .ship {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  clip-path: polygon(0% 50%, 100% 20%, 100% 80%);
  animation: ce-ship 25s linear infinite;
}
.scn-clearchus-exile .lamp-glow {
  position: absolute; bottom: 38%; left: 42%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d4b070 0%, #b08a50 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(180,138,80,0.4);
  animation: ce-glow 4s ease-in-out infinite alternate;
}
.scn-clearchus-exile .curtain {
  position: absolute; top: 15%; width: 5%; height: 60%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2216 100%);
  border-radius: 4px;
}
.scn-clearchus-exile .curtain-l {
  left: calc(25% - 5px);
  animation: ce-curtainL 10s ease-in-out infinite alternate;
}
.scn-clearchus-exile .curtain-r {
  right: calc(25% - 5px);
  animation: ce-curtainR 10s ease-in-out infinite alternate;
}
@keyframes ce-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ce-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(-3px); }
}
@keyframes ce-ship {
  0% { transform: translateX(-120px) rotate(-3deg); }
  50% { transform: translateX(0) rotate(1deg); }
  100% { transform: translateX(120px) rotate(-2deg); }
}
@keyframes ce-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.75; transform: scale(0.95); }
}
@keyframes ce-curtainL {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(1.05) translateX(-2px); }
  100% { transform: scaleY(0.98) translateX(2px); }
}
@keyframes ce-curtainR {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(1.04) translateX(2px); }
  100% { transform: scaleY(0.97) translateX(-2px); }
}

.scn-clearchus-love-of-war {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1c 30%, #1a1008 100%),
              radial-gradient(ellipse at 50% 40%, #4a3420 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-clearchus-love-of-war .chamber-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e10 50%, #1a1008 100%);
}
.scn-clearchus-love-of-war .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3422 0%, #2a1e10 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-clearchus-love-of-war .brazier {
  position: absolute; bottom: 28%; left: 38%; width: 24px; height: 28px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 40%, #604020 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(192,128,64,0.4);
  animation: cl-brazier 3s ease-in-out infinite alternate;
}
.scn-clearchus-love-of-war .brazier-glow {
  position: absolute; bottom: 42%; left: 38%; width: 60px; height: 60px;
  background: radial-gradient(circle, #f0b060 0%, #d09040 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.4;
  animation: cl-glow 4s ease-in-out infinite alternate;
}
.scn-clearchus-love-of-war .warrior {
  position: absolute; bottom: 20%; left: 50%; width: 36px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1c1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cl-warrior 7s ease-in-out infinite;
}
.scn-clearchus-love-of-war .spear {
  position: absolute; bottom: 35%; left: 52%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: cl-spear 5s ease-in-out infinite alternate;
}
.scn-clearchus-love-of-war .shield {
  position: absolute; bottom: 22%; left: 44%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.6);
  transform: rotate(8deg);
  animation: cl-shield 6s ease-in-out infinite alternate;
}
.scn-clearchus-love-of-war .ember {
  position: absolute; bottom: 32%; width: 5px; height: 5px;
  background: #f0a050; border-radius: 50%;
  filter: blur(1px);
}
.scn-clearchus-love-of-war .ember-1 {
  left: 36%; animation: cl-ember1 2.5s infinite alternate;
}
.scn-clearchus-love-of-war .ember-2 {
  left: 42%; animation: cl-ember2 3s infinite alternate;
  animation-delay: 0.8s;
}
@keyframes cl-brazier {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.08); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.8; }
}
@keyframes cl-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.35; transform: scale(0.9); }
}
@keyframes cl-warrior {
  0% { transform: translateX(-50%) rotate(0deg); }
  33% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); }
  66% { transform: translateX(-50%) rotate(1deg) translateY(1px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes cl-spear {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-4px); }
  100% { transform: rotate(3deg) translateY(2px); }
}
@keyframes cl-shield {
  0% { transform: rotate(8deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.03); }
  100% { transform: rotate(10deg) scale(0.97); }
}
@keyframes cl-ember1 {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(3px, -10px) scale(0.6); opacity: 0.5; }
  100% { transform: translate(6px, -20px) scale(0.2); opacity: 0; }
}
@keyframes cl-ember2 {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  50% { transform: translate(-2px, -8px) scale(0.7); opacity: 0.4; }
  100% { transform: translate(-4px, -16px) scale(0.3); opacity: 0; }
}

/* --- Scene: xenophon-cowards-now-brutal (overcast, tense) --- */
.scn-xenophon-cowards-now-brutal {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a38 40%, #1e1e2a 100%),
    radial-gradient(ellipse at 50% 40%, #4a4a5a 0%, transparent 70%);
}
.scn-xenophon-cowards-now-brutal .sky-box {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a4a5c 0%, #2e2e3c 100%);
  animation: xcb-sky 8s ease-in-out infinite alternate;
}
.scn-xenophon-cowards-now-brutal .ground-box {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #2a2a2a 0%, #3a3a3a 40%, #4a4040 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: xcb-ground 12s ease-in-out infinite;
}
.scn-xenophon-cowards-now-brutal .boxer {
  position: absolute; bottom: 25%; left: 35%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #1c1c24 0%, #101014 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xcb-boxer 3s ease-in-out infinite;
}
.scn-xenophon-cowards-now-brutal .shield {
  position: absolute; bottom: 28%; left: 32%;
  width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #605050 0%, #3a2a2a 70%, #1a1a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform-origin: 70% 70%;
  animation: xcb-shield 2.5s ease-in-out infinite alternate;
}
.scn-xenophon-cowards-now-brutal .shadow-box {
  position: absolute; bottom: 20%; left: 30%;
  width: 80px; height: 12px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: xcb-shadow 4s ease-in-out infinite;
}
.scn-xenophon-cowards-now-brutal .cloud-a {
  position: absolute; top: 12%; left: -10%;
  width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(180,180,200,0.4) 0%, rgba(180,180,200,0.1) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: xcb-drift-a 30s linear infinite;
}
.scn-xenophon-cowards-now-brutal .cloud-b {
  position: absolute; top: 8%; right: -10%;
  width: 100px; height: 22px;
  background: linear-gradient(180deg, rgba(180,180,200,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: xcb-drift-b 45s linear infinite reverse;
}
@keyframes xcb-sky { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes xcb-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes xcb-boxer {
  0% { transform: translateX(-5px) rotate(0deg); }
  30% { transform: translateX(0) rotate(-5deg); }
  60% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(-5px) rotate(0deg); }
}
@keyframes xcb-shield {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.1); box-shadow: 0 6px 12px rgba(0,0,0,0.7); }
  100% { transform: rotate(5deg) scale(0.95); }
}
@keyframes xcb-shadow { 0%,100% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 0.9; } }
@keyframes xcb-drift-a { 0% { transform: translateX(-120px); } 100% { transform: translateX(120vw); } }
@keyframes xcb-drift-b { 0% { transform: translateX(120vw); } 100% { transform: translateX(-120px); } }

/* --- Scene: xenophon-reminds-good-deeds (overcast, warm) --- */
.scn-xenophon-reminds-good-deeds {
  background:
    linear-gradient(180deg, #2a2418 0%, #3d3022 40%, #4a3a28 100%),
    radial-gradient(ellipse at 50% 100%, #5a4a32 0%, transparent 70%);
}
.scn-xenophon-reminds-good-deeds .tent-wall {
  position: absolute; bottom: 20%; left: 30%; right: 30%;
  height: 65%;
  background: linear-gradient(135deg, #6a5a42 0%, #4a3a28 60%, #3a2a18 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3), inset 10px 0 20px rgba(0,0,0,0.3);
  animation: xrd-tent 10s ease-in-out infinite;
}
.scn-xenophon-reminds-good-deeds .ground-warm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a18 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-xenophon-reminds-good-deeds .fire-glow {
  position: absolute; bottom: 22%; left: 38%;
  width: 60px; height: 60px;
  background: radial-gradient(circle at 50% 60%, #ffb040 0%, #ff8020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,128,32,0.5), 0 0 80px 40px rgba(255,128,32,0.2);
  animation: xrd-fire 1.5s ease-in-out infinite alternate;
}
.scn-xenophon-reminds-good-deeds .figure-seated {
  position: absolute; bottom: 22%; left: 35%;
  width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a2018 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xrd-figure 4s ease-in-out infinite;
}
.scn-xenophon-reminds-good-deeds .smoke {
  position: absolute; bottom: 35%; left: 40%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: xrd-smoke 6s ease-in-out infinite;
}
.scn-xenophon-reminds-good-deeds .light-rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 40% 60%, rgba(255,200,100,0.1) 0%, transparent 70%);
  pointer-events: none;
  animation: xrd-rays 8s ease-in-out infinite alternate;
}
.scn-xenophon-reminds-good-deeds .tent-flap {
  position: absolute; bottom: 20%; left: 40%;
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a18 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  opacity: 0.3;
  animation: xrd-flap 5s ease-in-out infinite;
}
@keyframes xrd-tent { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes xrd-fire { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1.05); opacity: 0.9; } }
@keyframes xrd-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes xrd-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-10px) scale(1.3); opacity: 0.3; } 100% { transform: translateY(-20px) scale(1.6); opacity: 0; } }
@keyframes xrd-rays { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes xrd-flap { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(0deg); } }

/* --- Scene: assembly-ends-well (sunlit, calm) --- */
.scn-assembly-ends-well {
  background:
    linear-gradient(180deg, #8fc5e8 0%, #c8e4f0 30%, #f0e8c8 60%, #f0d8a0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-assembly-ends-well .sky-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, transparent 0%, #a0d0f0 100%);
  animation: aew-sky 15s ease-in-out infinite alternate;
}
.scn-assembly-ends-well .sun {
  position: absolute; top: 8%; left: 45%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4d0 0%, #ffd080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,208,128,0.5), 0 0 150px 80px rgba(255,208,128,0.2);
  animation: aew-sun 12s ease-in-out infinite;
}
.scn-assembly-ends-well .platform {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 20px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-assembly-ends-well .speaker {
  position: absolute; bottom: 24%; left: 46%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: aew-speaker 6s ease-in-out infinite;
}
.scn-assembly-ends-well .audience-1 {
  position: absolute; bottom: 16%; left: 25%;
  width: 16px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: aew-audience 5s ease-in-out infinite;
}
.scn-assembly-ends-well .audience-2 {
  position: absolute; bottom: 18%; left: 35%;
  width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: aew-audience 6s ease-in-out infinite 0.5s;
}
.scn-assembly-ends-well .audience-3 {
  position: absolute; bottom: 15%; left: 60%;
  width: 18px; height: 32px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: aew-audience 4.5s ease-in-out infinite 1s;
}
.scn-assembly-ends-well .rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, rgba(255,255,230,0.15) 0%, transparent 50%, rgba(255,255,230,0.1) 100%);
  pointer-events: none;
  animation: aew-rays 20s linear infinite;
}
@keyframes aew-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes aew-sun { 0%,100% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } }
@keyframes aew-speaker { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes aew-audience { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes aew-rays { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* --- Scene: hostilities-with-paphlagonians (overcast, tense night) --- */
.scn-hostilities-with-paphlagonians {
  background:
    linear-gradient(180deg, #0c0c1c 0%, #1a1a2e 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a3e 0%, transparent 70%);
}
.scn-hostilities-with-paphlagonians .sky-night {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a14 0%, #141428 100%);
  animation: hwp-sky 10s ease-in-out infinite alternate;
}
.scn-hostilities-with-paphlagonians .moon-dim {
  position: absolute; top: 8%; left: 60%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #c8c8d8 0%, #8888a0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(200,200,216,0.2), 0 0 40px 20px rgba(200,200,216,0.1);
  animation: hwp-moon 8s ease-in-out infinite alternate;
}
.scn-hostilities-with-paphlagonians .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 50%, #2a2a2a 100%);
  border-radius: 60% 40% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-hostilities-with-paphlagonians .tree {
  position: absolute; bottom: 25%; right: 20%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: hwp-tree 15s ease-in-out infinite;
}
.scn-hostilities-with-paphlagonians .figure-left {
  position: absolute; bottom: 12%; left: 15%;
  width: 20px; height: 45px;
  background: linear-gradient(180deg, #1c1c24 0%, #08080c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hwp-creep 5s ease-in-out infinite;
}
.scn-hostilities-with-paphlagonians .figure-right {
  position: absolute; bottom: 20%; left: 55%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #1c1c24 0%, #08080c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hwp-watch 6s ease-in-out infinite 1s;
}
.scn-hostilities-with-paphlagonians .bush {
  position: absolute; bottom: 15%; left: 30%;
  width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: hwp-bush 12s ease-in-out infinite;
}
.scn-hostilities-with-paphlagonians .shadow-creep {
  position: absolute; bottom: 8%; left: 10%;
  width: 80px; height: 10px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: hwp-shadow 7s ease-in-out infinite;
}
@keyframes hwp-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes hwp-moon { 0% { transform: scale(0.95); opacity: 0.6; } 50% { transform: scale(1.02); opacity: 0.8; } 100% { transform: scale(0.98); opacity: 0.7; } }
@keyframes hwp-tree { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } }
@keyframes hwp-creep {
  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 hwp-watch {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg) scaleX(0.95); }
}
@keyframes hwp-bush { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1) translateY(-1px); } }
@keyframes hwp-shadow { 0%,100% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.5); opacity: 0.8; } }

/* xenophon-warns-of-danger */
.scn-xenophon-warns-of-danger {
  background: linear-gradient(180deg, #2e374a 0%, #1e2433 50%, #141824 100%), radial-gradient(ellipse at 50% 0%, #3a4660 0%, transparent 70%);
}
.scn-xenophon-warns-of-danger .xwd-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a4a5e 0%, transparent 100%);
  animation: xwd-fade 12s ease-in-out infinite alternate;
}
.scn-xenophon-warns-of-danger .xwd-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2f38 0%, #1a1e24 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: xwd-ground-shift 20s ease-in-out infinite;
}
.scn-xenophon-warns-of-danger .xwd-figure {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1c2026 0%, #0e1114 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xwd-breathe 5s ease-in-out infinite;
}
.scn-xenophon-warns-of-danger .xwd-arm {
  position: absolute; bottom: 42%; left: 37%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #1c2026 0%, #0e1114 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: 50% 100%;
  animation: xwd-gesture 6s ease-in-out infinite;
}
.scn-xenophon-warns-of-danger .xwd-cloud-a {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(200,210,230,0.4) 0%, rgba(180,190,210,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: xwd-drift-a 40s linear infinite;
}
.scn-xenophon-warns-of-danger .xwd-cloud-b {
  position: absolute; top: 12%; right: 5%; width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(200,210,230,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(5px);
  animation: xwd-drift-b 50s linear infinite reverse;
}
@keyframes xwd-fade { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes xwd-ground-shift { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes xwd-breathe { 0% { transform: translateX(0) translateY(0) rotate(-1deg) scaleX(0.95) } 50% { transform: translateX(-3px) translateY(-1px) rotate(1deg) scaleX(1) } 100% { transform: translateX(0) translateY(0) rotate(0) scaleX(0.95) } }
@keyframes xwd-gesture { 0% { transform: rotate(-30deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-30deg) } }
@keyframes xwd-drift-a { 0% { transform: translateX(-40px) scaleX(1) } 100% { transform: translateX(120vw) scaleX(0.8) } }
@keyframes xwd-drift-b { 0% { transform: translateX(0) scaleX(0.8) } 100% { transform: translateX(-100vw) scaleX(1) } }

/* xenophon-reveals-clearetus-murder */
.scn-xenophon-reveals-clearetus-murder {
  background: linear-gradient(180deg, #1f2836 0%, #151b26 50%, #0e121c 100%), radial-gradient(ellipse at 30% 70%, #2a354a 0%, transparent 70%);
}
.scn-xenophon-reveals-clearetus-murder .xrc-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2c3645 0%, transparent 100%);
  animation: xrc-sky-pulse 15s ease-in-out infinite alternate;
}
.scn-xenophon-reveals-clearetus-murder .xrc-hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1d2a1d 0%, #0a150a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.5);
  animation: xrc-hills-roll 24s ease-in-out infinite;
}
.scn-xenophon-reveals-clearetus-murder .xrc-body {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #1a1f26 0%, #0e1217 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg) translateY(5px);
  animation: xrc-twitch 4s ease-in-out infinite;
}
.scn-xenophon-reveals-clearetus-murder .xrc-blood {
  position: absolute; bottom: 20%; left: 52%; width: 20px; height: 8px;
  background: radial-gradient(ellipse, #a0461a 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: xrc-spread 6s ease-in-out infinite alternate;
}
.scn-xenophon-reveals-clearetus-murder .xrc-rock {
  position: absolute; bottom: 26%; left: 48%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 30% 30%, #3a404a 0%, #1c2026 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  transform: rotate(15deg);
  animation: xrc-rock-shift 8s ease-in-out infinite;
}
.scn-xenophon-reveals-clearetus-murder .xrc-bird-a {
  position: absolute; top: 10%; left: 20%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #2a3040 0%, transparent 100%);
  clip-path: polygon(0% 50%, 30% 0%, 60% 50%, 100% 0%, 80% 50%, 50% 100%, 20% 50%);
  animation: xrc-fly-a 30s linear infinite;
}
.scn-xenophon-reveals-clearetus-murder .xrc-bird-b {
  position: absolute; top: 8%; right: 25%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #2a3040 0%, transparent 100%);
  clip-path: polygon(0% 50%, 30% 0%, 60% 50%, 100% 0%, 80% 50%, 50% 100%, 20% 50%);
  animation: xrc-fly-b 45s linear infinite reverse;
}
@keyframes xrc-sky-pulse { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes xrc-hills-roll { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes xrc-twitch { 0% { transform: rotate(-10deg) translateY(5px) } 30% { transform: rotate(-8deg) translateY(7px) } 50% { transform: rotate(-12deg) translateY(4px) } 100% { transform: rotate(-10deg) translateY(5px) } }
@keyframes xrc-spread { 0% { opacity: 0.3; transform: scaleX(1) scaleY(1) } 100% { opacity: 0.6; transform: scaleX(1.4) scaleY(1.2) } }
@keyframes xrc-rock-shift { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes xrc-fly-a { 0% { transform: translateX(-60px) rotate(0deg) } 100% { transform: translateX(100vw) rotate(10deg) } }
@keyframes xrc-fly-b { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(-70vw) rotate(-10deg) } }

/* xenophon-describes-clearetus-plot */
.scn-xenophon-describes-clearetus-plot {
  background: linear-gradient(180deg, #0c0f1a 0%, #121827 50%, #1a2233 100%), radial-gradient(ellipse at 50% 80%, #1e2b40 0%, transparent 70%);
}
.scn-xenophon-describes-clearetus-plot .xdc-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #181e2e 0%, transparent 100%);
  animation: xdc-night 18s ease-in-out infinite alternate;
}
.scn-xenophon-describes-clearetus-plot .xdc-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0f1524 0%, #070a14 100%);
  border-radius: 40% 60% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.8);
  animation: xdc-swirl 22s ease-in-out infinite;
}
.scn-xenophon-describes-clearetus-plot .xdc-ship {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #1a1c22 0%, #0c0e12 100%);
  clip-path: polygon(0% 60%, 20% 100%, 80% 100%, 100% 60%, 50% 0%);
  transform-origin: bottom center;
  animation: xdc-ship-roll 8s ease-in-out infinite;
}
.scn-xenophon-describes-clearetus-plot .xdc-figure {
  position: absolute; bottom: 20%; left: 44%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #151824 0%, #080a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xdc-board 6s ease-in-out infinite;
}
.scn-xenophon-describes-clearetus-plot .xdc-lantern {
  position: absolute; bottom: 30%; left: 42%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.5);
  animation: xdc-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-xenophon-describes-clearetus-plot .xdc-glow {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,214,128,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: xdc-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-xenophon-describes-clearetus-plot .xdc-star-a {
  position: absolute; top: 8%; left: 15%; width: 3px; height: 3px;
  background: #e8eaf0;
  border-radius: 50%;
  box-shadow: 0 0 4px #e8eaf0;
  animation: xdc-twinkle-a 2s ease-in-out infinite alternate;
}
.scn-xenophon-describes-clearetus-plot .xdc-star-b {
  position: absolute; top: 16%; right: 30%; width: 2px; height: 2px;
  background: #e8eaf0;
  border-radius: 50%;
  box-shadow: 0 0 3px #e8eaf0;
  animation: xdc-twinkle-b 3s ease-in-out infinite alternate 1s;
}
@keyframes xdc-night { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes xdc-swirl { 0% { transform: translateY(0) scaleY(1) rotate(0deg) } 50% { transform: translateY(-2px) scaleY(1.05) rotate(1deg) } 100% { transform: translateY(0) scaleY(1) rotate(0deg) } }
@keyframes xdc-ship-roll { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes xdc-board { 0% { transform: translateX(0) translateY(0) } 30% { transform: translateX(5px) translateY(-2px) } 70% { transform: translateX(8px) translateY(-1px) } 100% { transform: translateX(10px) translateY(0) } }
@keyframes xdc-lantern-glow { 0% { box-shadow: 0 0 12px 4px #c08040, 0 0 24px 8px rgba(192,128,64,.4); opacity: 0.8 } 100% { box-shadow: 0 0 24px 10px #ffd060, 0 0 48px 18px rgba(255,208,96,.6); opacity: 1 } }
@keyframes xdc-glow-pulse { 0% { transform: scale(0.9); opacity: 0.5 } 100% { transform: scale(1.2); opacity: 1 } }
@keyframes xdc-twinkle-a { 0% { opacity: 0.3 } 100% { opacity: 1 } }
@keyframes xdc-twinkle-b { 0% { opacity: 0.2 } 100% { opacity: 0.9 } }

/* xenophon-ambassadors-stoned */
.scn-xenophon-ambassadors-stoned {
  background: linear-gradient(180deg, #ffedcc 0%, #f5dba0 40%, #d4b372 100%), radial-gradient(ellipse at 30% 50%, #ffe4a0 0%, transparent 60%);
}
.scn-xenophon-ambassadors-stoned .xas-sun {
  position: absolute; top: 5%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffea80 0%, #ffcc66 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px rgba(255,204,102,0.3);
  animation: xas-sun-pulse 8s ease-in-out infinite alternate;
}
.scn-xenophon-ambassadors-stoned .xas-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d4e4f0 0%, transparent 100%);
  animation: xas-sky-drift 30s linear infinite;
}
.scn-xenophon-ambassadors-stoned .xas-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a0825a 0%, #6b5a40 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 12px 25px rgba(0,0,0,.4);
  animation: xas-ground-heat 15s ease-in-out infinite;
}
.scn-xenophon-ambassadors-stoned .xas-fig1 {
  position: absolute; bottom: 22%; left: 20%; width: 18px; height: 44px;
  background: #1c1e24;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xas-fig-walk1 5s ease-in-out infinite;
}
.scn-xenophon-ambassadors-stoned .xas-fig2 {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 46px;
  background: #1c1e24;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xas-fig-walk2 5.5s ease-in-out infinite 0.5s;
}
.scn-xenophon-ambassadors-stoned .xas-fig3 {
  position: absolute; bottom: 18%; left: 60%; width: 16px; height: 42px;
  background: #1c1e24;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xas-fig-walk3 6s ease-in-out infinite 1s;
}
.scn-xenophon-ambassadors-stoned .xas-stone-a {
  position: absolute; top: 30%; left: 35%; width: 8px; height: 10px;
  background: #5a4e3a;
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  transform: rotate(20deg);
  animation: xas-stone-fall-a 4s ease-in infinite;
}
.scn-xenophon-ambassadors-stoned .xas-stone-b {
  position: absolute; top: 25%; left: 50%; width: 7px; height: 8px;
  background: #5a4e3a;
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  transform: rotate(-10deg);
  animation: xas-stone-fall-b 4.5s ease-in infinite 0.5s;
}
.scn-xenophon-ambassadors-stoned .xas-stone-c {
  position: absolute; top: 35%; left: 42%; width: 9px; height: 11px;
  background: #5a4e3a;
  border-radius: 30% 40% 40% 30% / 40% 50% 50% 40%;
  transform: rotate(5deg);
  animation: xas-stone-fall-c 3.8s ease-in infinite 1s;
}
@keyframes xas-sun-pulse { 0% { transform: scale(0.95); box-shadow: 0 0 80px 30px rgba(255,204,102,0.2) } 100% { transform: scale(1.05); box-shadow: 0 0 120px 50px rgba(255,204,102,0.4) } }
@keyframes xas-sky-drift { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes xas-ground-heat { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes xas-fig-walk1 { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(10px) rotate(2deg) } 100% { transform: translateX(20px) rotate(-2deg) } }
@keyframes xas-fig-walk2 { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-8px) rotate(-1deg) } 100% { transform: translateX(-16px) rotate(1deg) } }
@keyframes xas-fig-walk3 { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes xas-stone-fall-a { 0% { transform: translateY(0) rotate(20deg) } 100% { transform: translateY(100vh) rotate(40deg) } }
@keyframes xas-stone-fall-b { 0% { transform: translateY(0) rotate(-10deg) } 100% { transform: translateY(100vh) rotate(-30deg) } }
@keyframes xas-stone-fall-c { 0% { transform: translateY(0) rotate(5deg) } 100% { transform: translateY(100vh) rotate(25deg) } }

/* Scene 1: cyrus-charges-king (tense/sunlit) */
.scn-cyrus-charges-king {
  background: linear-gradient(180deg, #4a7db5 0%, #7fb3e0 30%, #c3daf5 60%, #f9e4b0 100%),
              radial-gradient(ellipse at 70% 20%, #fff3d0 0%, transparent 40%);
}

.scn-cyrus-charges-king .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2b5a8a 0%, #6d9fd1 40%, transparent 100%);
  animation: cy1-sky 8s ease-in-out infinite alternate;
}
@keyframes cy1-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

.scn-cyrus-charges-king .sun {
  position: absolute; top: 15%; right: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7b0 0%, #fadb5a 40%, transparent 80%);
  border-radius: 50%;
  animation: cy1-sun 14s ease-in-out infinite;
  box-shadow: 0 0 40px 20px #fadb5a, 0 0 80px 40px rgba(250,219,90,0.3);
}
@keyframes cy1-sun {
  0% { transform: scale(0.95); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.85; }
}

.scn-cyrus-charges-king .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c4a56d 0%, #8b6f43 60%, #5a4526 100%);
  border-radius: 30% 40% 0 0 / 20% 25% 0 0;
  animation: cy1-ground 12s ease-in-out infinite alternate;
}
@keyframes cy1-ground {
  0% { transform: translateY(0) scaleY(1); }
  100% { transform: translateY(-4px) scaleY(0.98); }
}

.scn-cyrus-charges-king .dust {
  position: absolute; bottom: 35%; left: 25%; width: 50%; height: 20%;
  background: radial-gradient(ellipse at 40% 50%, rgba(200,170,120,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: cy1-dust 6s ease-in-out infinite alternate, cy1-dust-move 24s linear infinite;
}
@keyframes cy1-dust {
  0% { opacity: 0.4; transform: scaleX(0.9); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(0.95); }
}
@keyframes cy1-dust-move {
  0% { left: 25%; }
  50% { left: 35%; }
  100% { left: 25%; }
}

.scn-cyrus-charges-king .enemy-line {
  position: absolute; bottom: 45%; left: 55%; width: 120px; height: 60px;
  background: linear-gradient(90deg, transparent 0%, #3a2a1a 15%, #2a1a0a 30%, #3a2a1a 45%, transparent 60%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: cy1-enemy 3s ease-in-out infinite alternate;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
}
@keyframes cy1-enemy {
  0% { transform: translateX(0) rotate(-1deg); }
  100% { transform: translateX(6px) rotate(1deg); }
}

.scn-cyrus-charges-king .cyrus-rider {
  position: absolute; bottom: 40%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cy1-rider 4s ease-in-out infinite;
}
@keyframes cy1-rider {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(8px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}

.scn-cyrus-charges-king .horse-phase {
  position: absolute; bottom: 38%; left: 18%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 50% 30% 50% / 50% 50% 40% 40%;
  animation: cy1-horse 0.8s ease-in-out infinite, cy1-horse-move 4s ease-in-out infinite;
  filter: blur(1px);
}
@keyframes cy1-horse {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-4px) rotate(4deg); }
  40% { transform: translateY(0) rotate(0deg); }
  60% { transform: translateY(-6px) rotate(-3deg); }
  80% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cy1-horse-move {
  0% { left: 18%; }
  100% { left: 55%; }
}

/* Scene 2: cyrus-kills-artagerses (tense/sunlit) */
.scn-cyrus-kills-artagerses {
  background: linear-gradient(180deg, #3d6b99 0%, #6b9ec6 40%, #b8d4eb 70%, #f3e4b0 100%),
              radial-gradient(ellipse at 60% 30%, #ffe999 0%, transparent 40%);
}

.scn-cyrus-kills-artagerses .sky-bg {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #254d7a 0%, #4d82b3 50%, transparent 100%);
  animation: cy2-sky 10s ease-in-out infinite alternate;
}
@keyframes cy2-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

.scn-cyrus-kills-artagerses .hill {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8b7a4a 0%, #5a4a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  animation: cy2-hill 18s ease-in-out infinite alternate;
}
@keyframes cy2-hill {
  0% { transform: translateY(0) scaleX(1); }
  100% { transform: translateY(2px) scaleX(0.98); }
}

.scn-cyrus-kills-artagerses .cyrus-figure {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cy2-figure 5s ease-in-out infinite;
}
@keyframes cy2-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(8px) translateY(0) rotate(0deg); }
  75% { transform: translateX(4px) translateY(2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

.scn-cyrus-kills-artagerses .king-far {
  position: absolute; bottom: 32%; left: 60%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: cy2-king 7s ease-in-out infinite alternate;
  box-shadow: 0 0 12px 6px rgba(255,215,100,0.4);
}
@keyframes cy2-king {
  0% { transform: scale(1); opacity: 0.9; }
  100% { transform: scale(1.02); opacity: 1; }
}

.scn-cyrus-kills-artagerses .spear-shaft {
  position: absolute; bottom: 38%; left: 30%; width: 4px; height: 35px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: cy2-spear 3s ease-in-out infinite alternate;
}
@keyframes cy2-spear {
  0% { transform: rotate(12deg) translateY(0); }
  100% { transform: rotate(18deg) translateY(-4px); }
}

.scn-cyrus-kills-artagerses .dust-swirl {
  position: absolute; bottom: 28%; left: 40%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: cy2-dust 8s ease-in-out infinite alternate;
}
@keyframes cy2-dust {
  0% { opacity: 0.3; transform: scale(0.8) rotate(0deg); }
  50% { opacity: 0.7; transform: scale(1.2) rotate(10deg); }
  100% { opacity: 0.4; transform: scale(0.9) rotate(-5deg); }
}

.scn-cyrus-kills-artagerses .sun-glint {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff7b0 0%, #fadb5a 30%, transparent 70%);
  border-radius: 50%;
  animation: cy2-glint 6s ease-in-out infinite;
  box-shadow: 0 0 30px 15px #fadb5a;
}
@keyframes cy2-glint {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

/* Scene 3: cyrus-struck-down (dark/sunlit) */
.scn-cyrus-struck-down {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a4a5a 40%, #6a7a5a 70%, #c8a86a 100%),
              radial-gradient(ellipse at 50% 80%, #e8b86a 0%, transparent 50%);
}

.scn-cyrus-struck-down .sky-dark {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0a1a2a 0%, #2a3a4a 50%, transparent 100%);
  animation: cy3-sky 12s ease-in-out infinite alternate;
}
@keyframes cy3-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

.scn-cyrus-struck-down .sunset-haze {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, #f8c86a 0%, #d8782a 40%, transparent 70%);
  filter: blur(12px);
  animation: cy3-haze 15s ease-in-out infinite alternate;
}
@keyframes cy3-haze {
  0% { opacity: 0.5; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.1); }
}

.scn-cyrus-struck-down .cyrus-falling {
  position: absolute; bottom: 35%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: cy3-fall 6s ease-in-out infinite;
}
@keyframes cy3-fall {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(10px) rotate(20deg) scale(0.95); }
  50% { transform: translateY(20px) rotate(40deg) scale(0.9); }
  75% { transform: translateY(10px) rotate(20deg) scale(0.95); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}

.scn-cyrus-struck-down .javelin-strike {
  position: absolute; bottom: 42%; left: 40%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  transform: rotate(-25deg);
  transform-origin: top left;
  animation: cy3-javelin 2s ease-in-out infinite alternate;
  box-shadow: inset 0 0 4px #aa6a3a;
}
@keyframes cy3-javelin {
  0% { transform: rotate(-30deg) translateX(0); }
  100% { transform: rotate(-20deg) translateX(6px); }
}

.scn-cyrus-struck-down .king-looming {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: cy3-king 8s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 10px rgba(0,0,0,0.6);
}
@keyframes cy3-king {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.05); opacity: 1; }
}

.scn-cyrus-struck-down .blood-drip {
  position: absolute; bottom: 38%; left: 33%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  animation: cy3-blood 4s ease-in-out infinite;
}
@keyframes cy3-blood {
  0% { opacity: 0.6; transform: translateY(0) scaleX(1); }
  50% { opacity: 1; transform: translateY(6px) scaleX(0.8); }
  100% { opacity: 0.7; transform: translateY(0) scaleX(1); }
}

.scn-cyrus-struck-down .ground-shatter {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
  filter: blur(6px);
  animation: cy3-ground 5s ease-in-out infinite alternate;
}
@keyframes cy3-ground {
  0% { opacity: 0.4; transform: scaleX(0.9); }
  100% { opacity: 0.8; transform: scaleX(1.1); }
}

/* Scene 4: artapates-dies (dark/sunlit) */
.scn-artapates-dies {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a4a 30%, #4a3a4a 60%, #7a6a4a 100%),
              radial-gradient(ellipse at 40% 70%, #c8a86a 0%, transparent 50%);
}

.scn-artapates-dies .sky-mourn {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a2a3a 40%, transparent 100%);
  animation: cy4-sky 14s ease-in-out infinite alternate;
}
@keyframes cy4-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.85; }
  100% { opacity: 0.6; }
}

.scn-artapates-dies .distant-mount {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 60% 0 0 / 30% 40% 0 0;
  animation: cy4-mount 20s ease-in-out infinite alternate;
}
@keyframes cy4-mount {
  0% { transform: translateY(0) scaleX(1); }
  100% { transform: translateY(2px) scaleX(0.97); }
}

.scn-artapates-dies .cyrus-body {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: cy4-body 6s ease-in-out infinite alternate;
  box-shadow: 0 0 8px 4px rgba(0,0,0,0.5);
}
@keyframes cy4-body {
  0% { transform: rotate(-35deg) translateY(0); }
  100% { transform: rotate(-25deg) translateY(-3px); }
}

.scn-artapates-dies .artapates-embrace {
  position: absolute; bottom: 25%; left: 38%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: cy4-embrace 5s ease-in-out infinite alternate;
}
@keyframes cy4-embrace {
  0% { transform: rotate(15deg) translateX(0); }
  100% { transform: rotate(25deg) translateX(2px); }
}

.scn-artapates-dies .horse-alone {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 50% 30% 50% / 50% 50% 40% 40%;
  animation: cy4-horse 7s ease-in-out infinite;
  filter: blur(1px);
}
@keyframes cy4-horse {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-artapates-dies .king-shadow {
  position: absolute; bottom: 28%; left: 65%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: cy4-king 10s ease-in-out infinite alternate;
  box-shadow: 0 0 18px 8px rgba(0,0,0,0.7);
}
@keyframes cy4-king {
  0% { opacity: 0.6; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.05); }
}

.scn-artapates-dies .dust-veil {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(80,60,40,0.5) 0%, transparent 70%);
  filter: blur(14px);
  animation: cy4-dust 12s ease-in-out infinite alternate;
}
@keyframes cy4-dust {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}

/* Scene: pursuit-and-trophy (calm dusk) */
.scn-pursuit-and-trophy {
  background: linear-gradient(180deg, #1e1e42 0%, #3b2a4a 30%, #6e4f4a 70%, #c97a5a 100%), radial-gradient(ellipse at 50% 0%, #c97a5a 0%, transparent 60%);
}
.scn-pursuit-and-trophy .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1e1e42 0%, #3b2a4a 50%, transparent 100%); animation: pt-sky 15s ease-in-out infinite alternate; }
.scn-pursuit-and-trophy .horizon-glow { position:absolute; bottom:45%; left:0; right:0; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(201,122,90,0.6) 0%, transparent 70%); animation: pt-glow 8s ease-in-out infinite alternate; }
.scn-pursuit-and-trophy .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: pt-hills 20s ease-in-out infinite alternate; }
.scn-pursuit-and-trophy .trophy-stones { position:absolute; bottom:32%; left:60%; width:40px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; transform: translateX(-50%); box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: pt-trophy 10s ease-in-out infinite; }
.scn-pursuit-and-trophy .figure-warrior { position:absolute; bottom:28%; 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: pt-warrior 6s ease-in-out infinite; }
.scn-pursuit-and-trophy .spear { position:absolute; bottom:35%; left:35%; width:4px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); transform: translateX(10px) rotate(-15deg); border-radius: 0 0 50% 50%; animation: pt-spear 6s ease-in-out infinite; }
.scn-pursuit-and-trophy .cloud-pt-a { position:absolute; top:15%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(8px); animation: pt-drift-a 40s linear infinite; }
.scn-pursuit-and-trophy .cloud-pt-b { position:absolute; top:25%; right:15%; width:70px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.03) 100%); border-radius:50%; filter: blur(6px); animation: pt-drift-b 55s linear infinite reverse; }
@keyframes pt-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pt-glow { 0% { opacity:0.5; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.2) } 100% { opacity:0.6; transform: scaleY(0.9) } }
@keyframes pt-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pt-trophy { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(0.95) translateY(-2px) } }
@keyframes pt-warrior { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(8px) translateY(-1px) } 50% { transform: translateX(16px) translateY(0) } 75% { transform: translateX(8px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes pt-spear { 0%,100% { transform: translateX(10px) rotate(-15deg) } 50% { transform: translateX(10px) rotate(-10deg) } }
@keyframes pt-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes pt-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* Scene: pillaging-widely (calm sunlit) */
.scn-pillaging-widely {
  background: linear-gradient(180deg, #6b9ed4 0%, #9ac0e8 40%, #f5e8c0 100%), radial-gradient(ellipse at 50% 0%, #f5e8c0 0%, transparent 60%);
}
.scn-pillaging-widely .sky-pw { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6b9ed4 0%, #9ac0e8 70%, transparent); animation: pw-sky 12s ease-in-out infinite alternate; }
.scn-pillaging-widely .sun-pw { position:absolute; top:15%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fff5c0 0%, #f5d080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(245,208,128,0.4); animation: pw-sun 20s ease-in-out infinite alternate; }
.scn-pillaging-widely .hills-pw { position:absolute; bottom:25%; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 30% 70% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); animation: pw-hills 18s ease-in-out infinite alternate; }
.scn-pillaging-widely .house-broken { position:absolute; bottom:30%; left:25%; width:90px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); transform: rotate(-5deg); animation: pw-house 12s ease-in-out infinite; }
.scn-pillaging-widely .figure-plunderer { position:absolute; bottom:22%; left:55%; width:22px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pw-plunderer 7s ease-in-out infinite; }
.scn-pillaging-widely .sack { position:absolute; bottom:22%; left:58%; width:16px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: pw-sack 7s ease-in-out infinite; }
.scn-pillaging-widely .cloud-pw-a { position:absolute; top:12%; left:20%; width:90px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(6px); animation: pw-drift-a 35s linear infinite; }
.scn-pillaging-widely .cloud-pw-b { position:absolute; top:20%; right:10%; width:60px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(5px); animation: pw-drift-b 45s linear infinite reverse; }
@keyframes pw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pw-sun { 0% { transform: scale(0.95); opacity:0.7 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.98); opacity:0.8 } }
@keyframes pw-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pw-house { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes pw-plunderer { 0% { transform: translateX(0) translateY(0) } 33% { transform: translateX(10px) translateY(-1px) } 66% { transform: translateX(20px) translateY(0) } 100% { transform: translateX(0) translateY(0) } }
@keyframes pw-sack { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(-10deg) translateY(-2px) } }
@keyframes pw-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes pw-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* Scene: abundance-of-supplies (warm sunlit) */
.scn-abundance-of-supplies {
  background: linear-gradient(180deg, #5f9bd5 0%, #7fb9e0 40%, #f0d080 100%), radial-gradient(ellipse at 50% 0%, #f0d080 0%, transparent 50%);
}
.scn-abundance-of-supplies .water { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: as-water 15s ease-in-out infinite alternate; }
.scn-abundance-of-supplies .sky-as { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5f9bd5 0%, #7fb9e0 60%, transparent 100%); animation: as-sky 12s ease-in-out infinite alternate; }
.scn-abundance-of-supplies .ship { position:absolute; bottom:45%; left:30%; width:100px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40%; transform: translateX(-50%); box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: as-ship 8s ease-in-out infinite; }
.scn-abundance-of-supplies .sail-as { position:absolute; bottom:52%; left:30%; width:60px; height:70px; background: linear-gradient(180deg, #f5e8c0 0%, #d0b080 100%); border-radius: 10% 10% 30% 30%; transform: translateX(-50%) skewX(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: as-sail 10s ease-in-out infinite; }
.scn-abundance-of-supplies .dock { position:absolute; bottom:42%; left:60%; width:120px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: as-dock 20s ease-in-out infinite; }
.scn-abundance-of-supplies .crates { position:absolute; bottom:40%; left:65%; width:30px; height:25px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10%; box-shadow: 2px 2px 4px rgba(0,0,0,0.3); animation: as-crates 6s ease-in-out infinite; }
.scn-abundance-of-supplies .figure-sailor { position:absolute; bottom:46%; left:32%; width:18px; height:35px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-sailor 10s ease-in-out infinite; }
.scn-abundance-of-supplies .seagull { position:absolute; top:20%; left:50%; width:20px; height:10px; background: #d0d0d0; border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: as-gull 25s linear infinite; }
@keyframes as-water { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes as-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes as-ship { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } }
@keyframes as-sail { 0%,100% { transform: translateX(-50%) skewX(-5deg) scale(1) } 50% { transform: translateX(-50%) skewX(-3deg) scale(1.02) } }
@keyframes as-dock { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes as-crates { 0%,100% { transform: translate(0,0) } 50% { transform: translate(-2px,-3px) } }
@keyframes as-sailor { 0% { transform: translateX(0) } 33% { transform: translateX(5px) } 66% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes as-gull { 0% { transform: translateX(-20vw) rotate(-10deg) } 50% { transform: translateX(50vw) rotate(5deg) } 100% { transform: translateX(120vw) rotate(-10deg) } }

/* Scene: cleander-arrives (tense sunlit) */
.scn-cleander-arrives {
  background: linear-gradient(180deg, #3a6b8a 0%, #5f9bd5 40%, #f5d080 100%), radial-gradient(ellipse at 50% 0%, #f5d080 0%, transparent 50%);
}
.scn-cleander-arrives .sea-ca { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a4a6a 0%, #0a2a4a 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.4); animation: ca-sea 14s ease-in-out infinite alternate; }
.scn-cleander-arrives .sky-ca { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a6b8a 0%, #5f9bd5 60%, transparent 100%); animation: ca-sky 10s ease-in-out infinite alternate; }
.scn-cleander-arrives .warship { position:absolute; bottom:40%; left:50%; width:110px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 40% 40%; transform: translateX(-50%); box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: ca-warship 5s ease-in-out infinite; }
.scn-cleander-arrives .soldier-1 { position:absolute; bottom:32%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-soldier1 2s ease-in-out infinite; box-shadow: 2px 0 0 #5e1a1d inset; }
.scn-cleander-arrives .soldier-2 { position:absolute; bottom:30%; left:52%; width:18px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-soldier2 2.5s ease-in-out infinite; box-shadow: 2px 0 0 #5e1a1d inset; }
.scn-cleander-arrives .flag { position:absolute; bottom:45%; left:50%; width:6px; height:30px; background: #3a2a1a; transform: translateX(-50%); animation: ca-flag 1s ease-in-out infinite; }
.scn-cleander-arrives .flag::after { content: ''; position:absolute; top:-5px; left:4px; width:25px; height:15px; background: #c8553d; border-radius: 0 50% 50% 0; animation: ca-flag-wave 0.8s ease-in-out infinite; }
.scn-cleander-arrives .wave-ca-1 { position:absolute; bottom:35%; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(26,74,106,0.5) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: ca-wave1 3s ease-in-out infinite; }
.scn-cleander-arrives .wave-ca-2 { position:absolute; bottom:30%; left:0; right:0; height:8%; background: linear-gradient(180deg, rgba(26,74,106,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: ca-wave2 3.5s ease-in-out infinite reverse; }
@keyframes ca-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(0) } }
@keyframes ca-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ca-warship { 0%,100% { transform: translateX(-50%) rotate(0) scale(1) } 50% { transform: translateX(-50%) rotate(-3deg) scale(0.98) } }
@keyframes ca-soldier1 { 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 ca-soldier2 { 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 ca-flag { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(5deg) } }
@keyframes ca-flag-wave { 0%,100% { transform: rotate(0) } 50% { transform: rotate(15deg) } }
@keyframes ca-wave1 { 0% { transform: translateX(0) translateY(0) scaleX(1) } 50% { transform: translateX(10px) translateY(-5px) scaleX(1.1) } 100% { transform: translateX(0) translateY(0) scaleX(1) } }
@keyframes ca-wave2 { 0% { transform: translateX(0) translateY(0) scaleX(1) } 50% { transform: translateX(-10px) translateY(-3px) scaleX(1.05) } 100% { transform: translateX(0) translateY(0) scaleX(1) } }

.scn-proxenus-sophaenetus-socrates {
  background:
    radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 70%),
    radial-gradient(ellipse at 50% 0%, #1a1a2e 0%, #2a1a1a 100%);
}
.scn-proxenus-sophaenetus-socrates .wall-back {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.6);
  animation: pss-wall 20s ease-in-out infinite alternate;
}
.scn-proxenus-sophaenetus-socrates .table {
  position: absolute;
  bottom: 8%;
  left: 10%;
  right: 10%;
  height: 22%;
  background: linear-gradient(160deg, #6a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,.7);
  transform: perspective(600px) rotateX(4deg);
  animation: pss-table 15s ease-in-out infinite;
}
.scn-proxenus-sophaenetus-socrates .candle {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 6px;
  height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a878 40%, #7a5a3a 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 0 4px rgba(200,168,120,.3);
  animation: pss-candle 4s ease-in-out infinite alternate;
}
.scn-proxenus-sophaenetus-socrates .candle-glow {
  position: absolute;
  bottom: 36%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translate(-50%, -30%);
  background: radial-gradient(circle, rgba(255,200,100,.45) 0%, rgba(255,180,80,.15) 40%, transparent 80%);
  border-radius: 50%;
  pointer-events: none;
  animation: pss-glow-pulse 3s ease-in-out infinite;
}
.scn-proxenus-sophaenetus-socrates .figure-left {
  position: absolute;
  bottom: 22%;
  left: 14%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1212 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pss-figure-left 6s ease-in-out infinite;
}
.scn-proxenus-sophaenetus-socrates .figure-right {
  position: absolute;
  bottom: 24%;
  right: 16%;
  width: 20px;
  height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pss-figure-right 7s ease-in-out infinite 1s;
}
.scn-proxenus-sophaenetus-socrates .figure-center {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 24px;
  height: 54px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pss-figure-center 8s ease-in-out infinite 0.5s;
}
.scn-proxenus-sophaenetus-socrates .scroll {
  position: absolute;
  bottom: 16%;
  left: 32%;
  width: 40px;
  height: 6px;
  background: linear-gradient(90deg, #d4c4a0 0%, #e8d8b0 30%, #c8b890 70%, #b8a880 100%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(-6deg);
  animation: pss-scroll 12s ease-in-out infinite alternate;
}
.scn-proxenus-sophaenetus-socrates .shadow-pool {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
  animation: pss-shadow 10s ease-in-out infinite alternate;
}
@keyframes pss-wall {
  0% { opacity: .7; filter: brightness(.95); }
  50% { opacity: .85; filter: brightness(1.05); }
  100% { opacity: .75; filter: brightness(.98); }
}
@keyframes pss-table {
  0%, 100% { opacity: .9; transform: perspective(600px) rotateX(4deg); }
  50% { opacity: 1; transform: perspective(600px) rotateX(3deg) translateY(-1px); }
}
@keyframes pss-candle {
  0% { height: 30px; opacity: .9; }
  50% { height: 32px; opacity: 1; }
  100% { height: 28px; opacity: .95; }
}
@keyframes pss-glow-pulse {
  0% { opacity: .6; transform: translate(-50%, -30%) scale(1); }
  25% { opacity: .85; transform: translate(-50%, -30%) scale(1.08); }
  50% { opacity: .7; transform: translate(-50%, -30%) scale(.95); }
  75% { opacity: .9; transform: translate(-50%, -30%) scale(1.05); }
  100% { opacity: .65; transform: translate(-50%, -30%) scale(1); }
}
@keyframes pss-figure-left {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(3px, -2px) rotate(3deg); }
  50% { transform: translate(-1px, -1px) rotate(-2deg); }
  75% { transform: translate(2px, 0) rotate(1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes pss-figure-right {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(-2px, -1px) rotate(-3deg); }
  60% { transform: translate(1px, -2px) rotate(2deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes pss-figure-center {
  0% { transform: translateX(-50%) rotate(0deg); }
  20% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  40% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  80% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes pss-scroll {
  0% { transform: rotate(-6deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(2px); }
  100% { transform: rotate(-7deg) translateX(-1px); }
}
@keyframes pss-shadow {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .55; }
}

/* footnote-pisidians-stymphalus — calm, dim-interior */
.scn-footnote-pisidians-stymphalus {
  background:
    radial-gradient(ellipse at 50% 100%, #4a3a4a 0%, transparent 65%),
    linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 50%, #1a1a2a 100%);
}
.scn-footnote-pisidians-stymphalus .shelf-back {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 10px 40px rgba(0,0,0,.5);
  animation: fps-shelf 25s ease-in-out infinite alternate;
}
.scn-footnote-pisidians-stymphalus .desk {
  position: absolute;
  bottom: 5%;
  left: 8%;
  right: 8%;
  height: 28%;
  background: linear-gradient(160deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  transform: perspective(500px) rotateX(3deg);
}
.scn-footnote-pisidians-stymphalus .desk-lamp {
  position: absolute;
  bottom: 30%;
  left: 70%;
  width: 8px;
  height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: fps-lamp 14s ease-in-out infinite alternate;
}
.scn-footnote-pisidians-stymphalus .lamp-glow {
  position: absolute;
  bottom: 34%;
  left: 72%;
  width: 140px;
  height: 140px;
  transform: translate(-20%, -20%);
  background: radial-gradient(circle, rgba(255,220,160,.3) 0%, rgba(255,200,120,.1) 40%, transparent 80%);
  border-radius: 50%;
  pointer-events: none;
  animation: fps-lamp-glow 5s ease-in-out infinite;
}
.scn-footnote-pisidians-stymphalus .book-stack {
  position: absolute;
  bottom: 8%;
  left: 20%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 8px rgba(0,0,0,.5);
  animation: fps-book 20s ease-in-out infinite;
}
.scn-footnote-pisidians-stymphalus .scroll-open {
  position: absolute;
  bottom: 10%;
  left: 44%;
  width: 70px;
  height: 8px;
  background: linear-gradient(90deg, #d8c8a8 0%, #e8d8b8 30%, #c8b898 70%, #b8a888 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  transform: rotate(-2deg);
  animation: fps-scroll 18s ease-in-out infinite alternate;
}
.scn-footnote-pisidians-stymphalus .inkwell {
  position: absolute;
  bottom: 8%;
  left: 58%;
  width: 14px;
  height: 16px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: fps-inkwell 22s ease-in-out infinite;
}
.scn-footnote-pisidians-stymphalus .quill {
  position: absolute;
  bottom: 16%;
  left: 56%;
  width: 3px;
  height: 28px;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a898 60%, #8a7a6a 100%);
  border-radius: 1px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: fps-quill 4s ease-in-out infinite alternate;
}
.scn-footnote-pisidians-stymphalus .dust-motes {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 30% 40%, rgba(255,230,200,.08) 0%, transparent 30%),
              radial-gradient(circle at 60% 30%, rgba(255,230,200,.06) 0%, transparent 25%),
              radial-gradient(circle at 45% 55%, rgba(255,230,200,.04) 0%, transparent 30%);
  animation: fps-motes 12s ease-in-out infinite alternate;
}
@keyframes fps-shelf {
  0% { opacity: .6; }
  50% { opacity: .75; }
  100% { opacity: .65; }
}
@keyframes fps-lamp {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(8deg) translateY(-1px); }
  100% { transform: rotate(11deg); }
}
@keyframes fps-lamp-glow {
  0% { opacity: .5; transform: translate(-20%, -20%) scale(1); }
  25% { opacity: .7; transform: translate(-20%, -20%) scale(1.05); }
  50% { opacity: .6; transform: translate(-20%, -20%) scale(.95); }
  75% { opacity: .75; transform: translate(-20%, -20%) scale(1.03); }
  100% { opacity: .55; transform: translate(-20%, -20%) scale(1); }
}
@keyframes fps-book {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(1px, -1px); }
}
@keyframes fps-scroll {
  0% { transform: rotate(-2deg) scaleX(1); }
  50% { transform: rotate(-1deg) scaleX(1.02); }
  100% { transform: rotate(-3deg) scaleX(.98); }
}
@keyframes fps-inkwell {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(0, -1px); }
}
@keyframes fps-quill {
  0% { transform: rotate(-20deg); }
  25% { transform: rotate(-22deg) translateY(-1px); }
  50% { transform: rotate(-18deg) translateY(0); }
  75% { transform: rotate(-21deg) translateY(-1px); }
  100% { transform: rotate(-20deg); }
}
@keyframes fps-motes {
  0% { opacity: .3; background-position: 0 0; }
  50% { opacity: .5; background-position: 2% 1%; }
  100% { opacity: .35; background-position: -1% -1%; }
}

/* cyrus-marches-from-sardis — calm, sunlit */
.scn-cyrus-marches-from-sardis {
  background:
    linear-gradient(180deg, #6a8aba 0%, #8aacda 30%, #b0c8f0 60%, #d0ddf5 80%, #e8eef8 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,240,200,.7) 0%, transparent 50%);
}
.scn-cyrus-marches-from-sardis .wide-sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #8aacda 0%, #b0c8f0 40%, transparent 100%);
  opacity: .6;
  animation: cms-sky 30s ease-in-out infinite alternate;
}
.scn-cyrus-marches-from-sardis .sun {
  position: absolute;
  top: 12%;
  left: 65%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffdd99 40%, rgba(255,200,100,.3) 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,220,150,.4), 0 0 120px 40px rgba(255,200,100,.2);
  animation: cms-sun 20s ease-in-out infinite alternate;
}
.scn-cyrus-marches-from-sardis .distant-hills {
  position: absolute;
  bottom: 28%;
  left: 0;
  right: 0;
  height: 18%;
  background: linear-gradient(180deg, #7a9a7a 0%, #5a7a5a 50%, #4a6a4a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: cms-hills 25s ease-in-out infinite alternate;
}
.scn-cyrus-marches-from-sardis .river {
  position: absolute;
  bottom: 8%;
  left: 0;
  right: 0;
  height: 24%;
  background: linear-gradient(90deg, #6a8aba 0%, #8aacda 30%, #a0c0e0 50%, #8aacda 70%, #6a8aba 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: cms-river 8s ease-in-out infinite alternate;
}
.scn-cyrus-marches-from-sardis .bridge-boats {
  position: absolute;
  bottom: 14%;
  left: 50%;
  width: 140px;
  height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 20%, #5a3a2a 40%, #7a5a3a 60%, #5a3a2a 80%, #7a5a3a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: cms-bridge 12s ease-in-out infinite alternate;
}
.scn-cyrus-marches-from-sardis .army-column {
  position: absolute;
  bottom: 26%;
  left: 30%;
  width: 120px;
  height: 30px;
  background: repeating-linear-gradient(90deg,
    #3a3a3a 0px, #3a3a3a 4px,
    #4a4a3a 4px, #4a4a3a 8px,
    #5a4a3a 8px, #5a4a3a 12px,
    #4a4a3a 12px, #4a4a3a 16px,
    #3a3a3a 16px, #3a3a3a 20px,
    #5a4a3a 20px, #5a4a3a 24px,
    #4a4a3a 24px, #4a4a3a 28px,
    #3a3a3a 28px, #3a3a3a 32px
  );
  border-radius: 10% 10% 5% 5%;
  mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  animation: cms-army 15s ease-in-out infinite alternate;
}
.scn-cyrus-marches-from-sardis .cyrus-horse {
  position: absolute;
  bottom: 22%;
  left: 36%;
  width: 30px;
  height: 26px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  animation: cms-horse 4s ease-in-out infinite;
}
.scn-cyrus-marches-from-sardis .dust-cloud {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 80px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,150,.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: cms-dust 8s ease-in-out infinite alternate;
}
.scn-cyrus-marches-from-sardis .bird-flock {
  position: absolute;
  top: 18%;
  right: 10%;
  width: 60px;
  height: 16px;
  background: radial-gradient(circle at 20% 50%, rgba(60,60,60,.6) 1px, transparent 1px),
              radial-gradient(circle at 40% 40%, rgba(60,60,60,.6) 1px, transparent 1px),
              radial-gradient(circle at 55% 55%, rgba(60,60,60,.6) 1px, transparent 1px),
              radial-gradient(circle at 70% 45%, rgba(60,60,60,.6) 1px, transparent 1px),
              radial-gradient(circle at 85% 60%, rgba(60,60,60,.6) 1px, transparent 1px);
  animation: cms-birds 30s linear infinite;
}
@keyframes cms-sky {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .55; }
}
@keyframes cms-sun {
  0% { transform: scale(1); opacity: .85; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(.98); opacity: .9; }
}
@keyframes cms-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes cms-river {
  0% { opacity: .75; background-position: 0 0; }
  50% { opacity: .9; background-position: 10px 0; }
  100% { opacity: .8; background-position: -5px 0; }
}
@keyframes cms-bridge {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes cms-army {
  0% { transform: translateX(0); opacity: .7; }
  50% { transform: translateX(4px); opacity: .9; }
  100% { transform: translateX(-2px); opacity: .75; }
}
@keyframes cms-horse {
  0% { transform: translate(0, 0) rotate(0deg); }
  20% { transform: translate(2px, -1px) rotate(1deg); }
  40% { transform: translate(4px, 0) rotate(-1deg); }
  60% { transform: translate(6px, -1px) rotate(1deg); }
  80% { transform: translate(8px, 0) rotate(-1deg); }
  100% { transform: translate(10px, 0) rotate(0deg); }
}
@keyframes cms-dust {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.15); }
  100% { opacity: .35; transform: scale(.95); }
}
@keyframes cms-birds {
  0% { transform: translateX(0); }
  100% { transform: translateX(-30vw); }
}

/* celaenae-palace-park — calm, sunlit */
.scn-celaenae-palace-park {
  background:
    linear-gradient(180deg, #7aaad4 0%, #9ac4f0 30%, #c0dcf8 60%, #d8e8f8 85%, #cce0f0 100%),
    radial-gradient(ellipse at 60% 30%, rgba(255,250,220,.5) 0%, transparent 50%);
}
.scn-celaenae-palace-park .sky-bright {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #9ac4f0 0%, #c0dcf8 40%, transparent 100%);
  opacity: .5;
  animation: cpp-sky 30s ease-in-out infinite alternate;
}
.scn-celaenae-palace-park .palace-wings {
  position: absolute;
  bottom: 25%;
  left: 5%;
  right: 5%;
  height: 30%;
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a8 50%, #a89888 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,.15);
  animation: cpp-palace-wings 20s ease-in-out infinite alternate;
}
.scn-celaenae-palace-park .palace-center {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 100px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e8dc 0%, #d0c8b8 40%, #b8a898 100%);
  border-radius: 30% 30% 5% 5% / 40% 40% 5% 5%;
  box-shadow: 0 -6px 24px rgba(0,0,0,.2), inset 0 8px 20px rgba(255,255,255,.3);
  animation: cpp-palace-center 18s ease-in-out infinite;
}
.scn-celaenae-palace-park .colonnade {
  position: absolute;
  bottom: 24%;
  left: 50%;
  width: 80px;
  height: 40px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(90deg,
    transparent 0px, transparent 6px,
    #c8b8a8 6px, #c8b8a8 8px,
    transparent 8px, transparent 14px,
    #c8b8a8 14px, #c8b8a8 16px,
    transparent 16px, transparent 22px,
    #c8b8a8 22px, #c8b8a8 24px,
    transparent 24px, transparent 30px,
    #c8b8a8 30px, #c8b8a8 32px,
    transparent 32px, transparent 38px,
    #c8b8a8 38px, #c8b8a8 40px
  );
  box-shadow: inset 0 2px 6px rgba(0,0,0,.1);
  animation: cpp-colonnade 22s ease-in-out infinite alternate;
}
.scn-celaenae-palace-park .park-grass {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 28%;
  background: linear-gradient(180deg, #7aaa6a 0%, #5a8a4a 50%, #4a7a3a 100%);
  border-radius: 60% 40% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.15);
  animation: cpp-grass 15s ease-in-out infinite alternate;
}
.scn-celaenae-palace-park .tree-clumps {
  position: absolute;
  bottom: 16%;
  left: 8%;
  width: 60px;
  height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #5a9a4a 0%, #4a8a3a 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cpp-trees 25s ease-in-out infinite alternate;
}
.scn-celaenae-palace-park .deer-leaping {
  position: absolute;
  bottom: 16%;
  right: 18%;
  width: 24px;
  height: 30px;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 30% 20% 30% 40% / 40% 30% 40% 50%;
  animation: cpp-deer 6s ease-in-out infinite;
}
.scn-celaenae-palace-park .hunter-horse {
  position: absolute;
  bottom: 12%;
  left: 28%;
  width: 32px;
  height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  animation: cpp-horse 8s ease-in-out infinite 1s;
}
.scn-celaenae-palace-park .wild-boar {
  position: absolute;
  bottom: 8%;
  right: 32%;
  width: 20px;
  height: 14px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 30% 30% 40%;
  animation: cpp-boar 10s ease-in-out infinite 2s;
}
@keyframes cpp-sky {
  0% { opacity: .4; }
  50% { opacity: .6; }
  100% { opacity: .45; }
}
@keyframes cpp-palace-wings {
  0% { transform: perspective(800px) rotateX(0deg); }
  50% { transform: perspective(800px) rotateX(2deg); }
  100% { transform: perspective(800px) rotateX(-1deg); }
}
@keyframes cpp-palace-center {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
}
@keyframes cpp-colonnade {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes cpp-grass {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes cpp-trees {
  0% { transform: scale(1); opacity: .6; }
  50% { transform: scale(1.05); opacity: .8; }
  100% { transform: scale(.98); opacity: .65; }
}
@keyframes cpp-deer {
  0% { transform: translate(0, 0) rotate(0deg); }
  15% { transform: translate(4px, -6px) rotate(8deg); }
  30% { transform: translate(8px, -2px) rotate(-5deg); }
  45% { transform: translate(12px, -8px) rotate(10deg); }
  60% { transform: translate(16px, -3px) rotate(-3deg); }
  75% { transform: translate(20px, -7px) rotate(6deg); }
  100% { transform: translate(24px, 0) rotate(0deg); }
}
@keyframes cpp-horse {
  0% { transform: translate(0, 0) rotate(0deg); }
  20% { transform: translate(3px, -2px) rotate(2deg); }
  40% { transform: translate(6px, 0) rotate(-1deg); }
  60% { transform: translate(9px, -2px) rotate(2deg); }
  80% { transform: translate(12px, 0) rotate(-1deg); }
  100% { transform: translate(15px, 0) rotate(0deg); }
}
@keyframes cpp-boar {
  0%, 100% { transform: translate(0, 0); }
  25% { transform: translate(4px, -1px); }
  50% { transform: translate(-2px, 1px); }
  75% { transform: translate(3px, -1px); }
}

.scn-cheirisophus-fear-of-enemies {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a4e 60%, #6a4a3a 100%), radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-cheirisophus-fear-of-enemies .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4a 30%, #5a4a3a 70%, transparent 100%);
  animation: cf-sky 14s ease-in-out infinite alternate;
}
.scn-cheirisophus-fear-of-enemies .sun-disk {
  position: absolute;
  bottom: 38%;
  left: 50%;
  width: 40px;
  height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c08040 0%, #a06020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(192,128,64,.5), 0 0 100px 40px rgba(160,96,32,.2);
  animation: cf-sun 8s ease-in-out infinite alternate;
}
.scn-cheirisophus-fear-of-enemies .cloud-ha {
  position: absolute;
  top: 18%;
  left: 10%;
  width: 120px;
  height: 20px;
  background: linear-gradient(90deg, rgba(255,220,180,.35), rgba(255,200,150,.1));
  border-radius: 50%;
  filter: blur(8px);
  animation: cf-drift-a 40s linear infinite;
}
.scn-cheirisophus-fear-of-enemies .cloud-hb {
  position: absolute;
  top: 26%;
  right: 15%;
  width: 90px;
  height: 16px;
  background: linear-gradient(90deg, rgba(255,220,180,.25), transparent);
  border-radius: 50%;
  filter: blur(6px);
  animation: cf-drift-b 50s linear infinite reverse;
}
.scn-cheirisophus-fear-of-enemies .ridge {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 22%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.6);
  animation: cf-ridge 18s ease-in-out infinite alternate;
}
.scn-cheirisophus-fear-of-enemies .figures {
  position: absolute;
  bottom: 22%;
  left: 30%;
  right: 30%;
  height: 14%;
  background: #1a1a1a;
  clip-path: polygon(0% 100%, 0% 20%, 10% 20%, 10% 0%, 20% 0%, 20% 20%, 30% 20%, 30% 0%, 40% 0%, 40% 20%, 50% 20%, 50% 0%, 60% 0%, 60% 20%, 70% 20%, 70% 0%, 80% 0%, 80% 20%, 90% 20%, 90% 0%, 100% 0%, 100% 20%, 100% 100%);
  animation: cf-figures 5s ease-in-out infinite alternate;
}
.scn-cheirisophus-fear-of-enemies .spears {
  position: absolute;
  bottom: 26%;
  left: 32%;
  right: 32%;
  height: 30%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #2a2a2a 8px, #2a2a2a 10px, transparent 10px, transparent 18px);
  mask-image: linear-gradient(to top, transparent 0%, #000 60%, #000 100%);
  animation: cf-spears 6s ease-in-out infinite alternate;
}
.scn-cheirisophus-fear-of-enemies .pillar {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 4px;
  transform: rotate(12deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: cf-pillar 10s ease-in-out infinite;
}
.scn-cheirisophus-fear-of-enemies .shadow-scar {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,.4) 100%);
  animation: cf-shadow 12s ease-in-out infinite alternate;
}
@keyframes cf-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes cf-sun { 0% { transform: translateX(-50%) scale(.95); opacity: .8 } 50% { transform: translateX(-50%) scale(1.05); opacity: 1 } 100% { transform: translateX(-50%) scale(.98); opacity: .9 } }
@keyframes cf-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes cf-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes cf-ridge { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cf-figures { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes cf-spears { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(1px) rotate(1deg) } }
@keyframes cf-pillar { 0%,100% { transform: rotate(12deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-4px) } }
@keyframes cf-shadow { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }

.scn-cleaner-speech-perjury {
  background: linear-gradient(180deg, #1e1e3a 0%, #2a2240 30%, #4a3a40 60%, #6a4a3a 100%), radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-cleaner-speech-perjury .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1e1e3a 0%, #3a2a4a 40%, #5a4a3a 80%, transparent 100%);
  animation: cp-sky 16s ease-in-out infinite alternate;
}
.scn-cleaner-speech-perjury .sun-glow {
  position: absolute;
  bottom: 45%;
  left: 50%;
  width: 50px;
  height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d09050 0%, #b07030 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(208,144,80,.4), 0 0 120px 50px rgba(176,112,48,.15);
  animation: cp-sun 9s ease-in-out infinite alternate;
}
.scn-cleaner-speech-perjury .cloud-ca {
  position: absolute;
  top: 20%;
  left: 12%;
  width: 100px;
  height: 18px;
  background: linear-gradient(90deg, rgba(255,200,160,.3), rgba(255,180,120,.08));
  border-radius: 50%;
  filter: blur(7px);
  animation: cp-drift-a 45s linear infinite;
}
.scn-cleaner-speech-perjury .cloud-cb {
  position: absolute;
  top: 28%;
  right: 20%;
  width: 80px;
  height: 14px;
  background: linear-gradient(90deg, rgba(255,200,160,.2), transparent);
  border-radius: 50%;
  filter: blur(5px);
  animation: cp-drift-b 55s linear infinite reverse;
}
.scn-cleaner-speech-perjury .figure-cp {
  position: absolute;
  bottom: 28%;
  left: 38%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-figure 6s ease-in-out infinite;
}
.scn-cleaner-speech-perjury .hand {
  position: absolute;
  bottom: 48%;
  left: 50%;
  width: 22px;
  height: 36px;
  margin-left: -11px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: cp-hand 4s ease-in-out infinite alternate;
}
.scn-cleaner-speech-perjury .scroll {
  position: absolute;
  bottom: 40%;
  left: 54%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: cp-scroll 5s ease-in-out infinite alternate;
}
.scn-cleaner-speech-perjury .lie-mark {
  position: absolute;
  bottom: 42%;
  left: 56%;
  width: 14px;
  height: 14px;
  background: #5e1a1d;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(94,26,29,.5);
  animation: cp-lie 3s ease-in-out infinite alternate;
}
.scn-cleaner-speech-perjury .ground-cp {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: cp-ground 20s ease-in-out infinite alternate;
}
@keyframes cp-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes cp-sun { 0% { transform: translateX(-50%) scale(.95); opacity: .7 } 50% { transform: translateX(-50%) scale(1.08); opacity: 1 } 100% { transform: translateX(-50%) scale(.98); opacity: .85 } }
@keyframes cp-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes cp-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes cp-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cp-hand { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(-22deg) translateY(0) } }
@keyframes cp-scroll { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(13deg) scaleY(1.02) } 100% { transform: rotate(17deg) scaleY(.98) } }
@keyframes cp-lie { 0% { opacity: .8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .7; transform: scale(.9) } }
@keyframes cp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }

.scn-cleaner-speech-tissaphernes-betrayal {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e2e 30%, #3a2a3a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-cleaner-speech-tissaphernes-betrayal .wall {
  position: absolute;
  inset: 0 20% 0 20%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-left: 4px solid #2a1a1a;
  border-right: 4px solid #2a1a1a;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: ct-wall 12s ease-in-out infinite alternate;
}
.scn-cleaner-speech-tissaphernes-betrayal .window-frame {
  position: absolute;
  top: 12%;
  left: 38%;
  right: 38%;
  height: 24%;
  border: 3px solid #2a2a2a;
  border-radius: 4px 4px 0 0;
  background: transparent;
  box-shadow: inset 0 0 15px rgba(0,0,0,.4);
  animation: ct-window 8s ease-in-out infinite alternate;
}
.scn-cleaner-speech-tissaphernes-betrayal .sky-ct {
  position: absolute;
  top: 12%;
  left: 38%;
  right: 38%;
  height: 24%;
  border-radius: 4px 4px 0 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #3a3a5a 40%, #5a4a3a 100%);
  animation: ct-sky 14s ease-in-out infinite alternate;
}
.scn-cleaner-speech-tissaphernes-betrayal .table {
  position: absolute;
  bottom: 22%;
  left: 35%;
  right: 35%;
  height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: ct-table 10s ease-in-out infinite alternate;
}
.scn-cleaner-speech-tissaphernes-betrayal .cup {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 16px;
  height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ct-cup 5s ease-in-out infinite alternate;
}
.scn-cleaner-speech-tissaphernes-betrayal .spill {
  position: absolute;
  bottom: 28%;
  left: 44%;
  width: 50px;
  height: 6px;
  background: linear-gradient(90deg, #5e1a1d, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: ct-spill 4s ease-in-out infinite alternate;
}
.scn-cleaner-speech-tissaphernes-betrayal .dagger {
  position: absolute;
  bottom: 30%;
  left: 52%;
  width: 8px;
  height: 30px;
  background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: ct-dagger 7s ease-in-out infinite alternate;
}
.scn-cleaner-speech-tissaphernes-betrayal .figure-ct {
  position: absolute;
  bottom: 12%;
  right: 30%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-figure 6s ease-in-out infinite alternate;
}
.scn-cleaner-speech-tissaphernes-betrayal .shadow-ct {
  position: absolute;
  bottom: 0;
  left: 20%;
  right: 20%;
  height: 40%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.7));
  animation: ct-shadow 9s ease-in-out infinite alternate;
}
@keyframes ct-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ct-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes ct-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ct-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ct-cup { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes ct-spill { 0% { width: 50px; opacity: .5 } 50% { width: 55px; opacity: .8 } 100% { width: 48px; opacity: .6 } }
@keyframes ct-dagger { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes ct-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ct-shadow { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }

.scn-cleaner-call-for-gods-requital {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2240 30%, #4a3a40 60%, #6a4a3a 100%), radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-cleaner-call-for-gods-requital .sky-cr {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a4a 30%, #5a4a3a 70%, transparent 100%);
  animation: cr-sky 15s ease-in-out infinite alternate;
}
.scn-cleaner-call-for-gods-requital .sun-burst {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 60px;
  height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d0a060 0%, #b08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 90px 30px rgba(208,160,96,.4), 0 0 140px 60px rgba(176,128,64,.15);
  animation: cr-sun 10s ease-in-out infinite alternate;
}
.scn-cleaner-call-for-gods-requital .cloud-cra {
  position: absolute;
  top: 15%;
  left: 8%;
  width: 130px;
  height: 22px;
  background: linear-gradient(90deg, rgba(255,210,170,.35), rgba(255,190,140,.08));
  border-radius: 50%;
  filter: blur(9px);
  animation: cr-drift-a 42s linear infinite;
}
.scn-cleaner-call-for-gods-requital .cloud-crb {
  position: absolute;
  top: 24%;
  right: 10%;
  width: 95px;
  height: 18px;
  background: linear-gradient(90deg, rgba(255,210,170,.25), transparent);
  border-radius: 50%;
  filter: blur(7px);
  animation: cr-drift-b 52s linear infinite reverse;
}
.scn-cleaner-call-for-gods-requital .ground-cr {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 60% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,.6);
  animation: cr-ground 20s ease-in-out infinite alternate;
}
.scn-cleaner-call-for-gods-requital .shield {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50%;
  border: 3px solid #4a3a2a;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: cr-shield 6s ease-in-out infinite alternate;
}
.scn-cleaner-call-for-gods-requital .spear {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 6px;
  height: 70px;
  background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  transform-origin: bottom center;
  animation: cr-spear 5s ease-in-out infinite alternate;
}
.scn-cleaner-call-for-gods-requital .soldier {
  position: absolute;
  bottom: 16%;
  left: 38%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-soldier 8s ease-in-out infinite alternate;
}
.scn-cleaner-call-for-gods-requital .light-ray {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(255,200,100,.08) 0%, transparent 50%, rgba(255,180,80,.05) 100%);
  pointer-events: none;
  animation: cr-ray 12s ease-in-out infinite alternate;
}
@keyframes cr-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes cr-sun { 0% { transform: translateX(-50%) scale(.95); opacity: .75 } 50% { transform: translateX(-50%) scale(1.1); opacity: 1 } 100% { transform: translateX(-50%) scale(.98); opacity: .85 } }
@keyframes cr-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(140vw) } }
@keyframes cr-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }
@keyframes cr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cr-shield { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cr-spear { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-4px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes cr-soldier { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cr-ray { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .2 } }

/* ======= Scene: agents-before-army (tag: aba) ======= */
.scn-agents-before-army {
  background: linear-gradient(180deg, #2a1a3e 0%, #4a3a5e 30%, #c07050 70%, #f0c080 100%), radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 70%);
}
.scn-agents-before-army .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a4e 0%, transparent 100%);
  animation: aba-sky 12s ease-in-out infinite alternate;
}
.scn-agents-before-army .sun {
  position: absolute; top: 20%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #f0a050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,160,80,.4);
  animation: aba-sunrise 18s ease-in-out infinite alternate;
}
.scn-agents-before-army .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: aba-ground 20s ease-in-out infinite alternate;
}
.scn-agents-before-army .army-silhouette {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.3);
  animation: aba-troops 8s ease-in-out infinite;
}
.scn-agents-before-army .agent {
  position: absolute; bottom: 30%; width: 14px; 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: aba-agent 5s ease-in-out infinite;
}
.scn-agents-before-army .agent.left { left: 38%; }
.scn-agents-before-army .agent.right { left: 46%; animation-delay: 1s; }
.scn-agents-before-army .spear {
  position: absolute; bottom: 30%; left: 50%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  transform-origin: bottom center;
  border-radius: 0;
  animation: aba-spear 4s ease-in-out infinite;
}
@keyframes aba-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes aba-sunrise { 0% { transform: translateY(10px) scale(1.1); opacity: .7 } 50% { transform: translateY(0) scale(1); opacity: 1 } 100% { transform: translateY(-5px) scale(.95); opacity: .8 } }
@keyframes aba-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes aba-troops { 0% { transform: translateX(0) scale(1); opacity: .9 } 50% { transform: translateX(-3px) scale(1.02); opacity: 1 } 100% { transform: translateX(2px) scale(.98); opacity: .85 } }
@keyframes aba-agent { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes aba-spear { 0% { transform: rotate(-3deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(-3deg) } }

/* ======= Scene: soldiers-cheer (tag: sc) ======= */
.scn-soldiers-cheer {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 30%, #c07050 70%, #f0c080 100%), radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 70%);
}
.scn-soldiers-cheer .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: sc-sky 14s ease-in-out infinite alternate;
}
.scn-soldiers-cheer .sun {
  position: absolute; top: 25%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #f0a050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,160,80,.3);
  animation: sc-sunrise 22s ease-in-out infinite alternate;
}
.scn-soldiers-cheer .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 80% 0 0 / 50% 90% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: sc-ground 18s ease-in-out infinite alternate;
}
.scn-soldiers-cheer .leader {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-leader 4s ease-in-out infinite;
}
.scn-soldiers-cheer .soldier1, .scn-soldiers-cheer .soldier2, .scn-soldiers-cheer .soldier3 {
  position: absolute; bottom: 20%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-soldiers-cheer .soldier1 { left: 30%; animation: sc-soldier 5s ease-in-out infinite 0.2s; }
.scn-soldiers-cheer .soldier2 { left: 38%; animation: sc-soldier 5s ease-in-out infinite 0.8s; }
.scn-soldiers-cheer .soldier3 { left: 54%; animation: sc-soldier 5s ease-in-out infinite 1.4s; }
.scn-soldiers-cheer .spear {
  position: absolute; bottom: 18%; left: 50%; width: 2px; height: 45px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  transform-origin: bottom center;
  animation: sc-spear 6s ease-in-out infinite;
}
@keyframes sc-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes sc-sunrise { 0% { transform: translateY(5px) scale(1.05); opacity: .8 } 50% { transform: translateY(-2px) scale(1); opacity: 1 } 100% { transform: translateY(-8px) scale(.95); opacity: .9 } }
@keyframes sc-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes sc-leader { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(-5px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sc-soldier { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sc-spear { 0% { transform: rotate(-4deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(5deg) } 100% { transform: rotate(-4deg) } }

/* ======= Scene: arcadian-accuses-xenophon (tag: aax) ======= */
.scn-arcadian-accuses-xenophon {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 60%, #c08040 0%, transparent 70%);
}
.scn-arcadian-accuses-xenophon .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: aax-wall 20s ease-in-out infinite alternate;
}
.scn-arcadian-accuses-xenophon .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-arcadian-accuses-xenophon .xenophon {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aax-xenophon 3s ease-in-out infinite;
}
.scn-arcadian-accuses-xenophon .arcadian {
  position: absolute; bottom: 20%; left: 60%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aax-arcadian 4s ease-in-out infinite;
}
.scn-arcadian-accuses-xenophon .lantern {
  position: absolute; bottom: 40%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,.5);
  animation: aax-lantern 2s ease-in-out infinite alternate;
}
.scn-arcadian-accuses-xenophon .table {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: aax-table 6s ease-in-out infinite;
}
.scn-arcadian-accuses-xenophon .cup {
  position: absolute; bottom: 18%; left: 44%; width: 6px; height: 8px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: aax-cup 3s ease-in-out infinite;
}
.scn-arcadian-accuses-xenophon .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: aax-shadow 10s ease-in-out infinite alternate;
}
@keyframes aax-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes aax-xenophon { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes aax-arcadian { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes aax-lantern { 0% { box-shadow: 0 0 20px 8px rgba(192,128,64,.4); opacity: .8 } 50% { box-shadow: 0 0 35px 14px rgba(255,208,96,.6); opacity: 1 } 100% { box-shadow: 0 0 25px 10px rgba(192,128,64,.5); opacity: .9 } }
@keyframes aax-table { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-1px) } 100% { transform: scale(1) } }
@keyframes aax-cup { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes aax-shadow { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }

/* ======= Scene: xenophon-speech-begins (tag: xsb) ======= */
.scn-xenophon-speech-begins {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 40%, #c07050 70%, #f0c080 100%), radial-gradient(ellipse at 50% 20%, #f0c080 0%, transparent 60%);
}
.scn-xenophon-speech-begins .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: xsb-sky 10s ease-in-out infinite alternate;
}
.scn-xenophon-speech-begins .sun {
  position: absolute; top: 15%; left: 50%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffe080 0%, #f0a050 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 100px 40px rgba(240,160,80,.3);
  animation: xsb-sunrise 20s ease-in-out infinite alternate;
}
.scn-xenophon-speech-begins .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: xsb-ground 22s ease-in-out infinite alternate;
}
.scn-xenophon-speech-begins .xenophon-silhouette {
  position: absolute; bottom: 25%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xsb-xenophon 6s ease-in-out infinite;
}
.scn-xenophon-speech-begins .army-silhouette {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.3);
  animation: xsb-army 12s ease-in-out infinite;
}
.scn-xenophon-speech-begins .rays {
  position: absolute; top: 0; left: 50%; width: 200px; height: 200px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,208,96,.15) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: xsb-rays 8s ease-in-out infinite;
}
.scn-xenophon-speech-begins .cloud {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: xsb-cloud 40s linear infinite;
}
.scn-xenophon-speech-begins .spear {
  position: absolute; bottom: 25%; left: 50%; width: 2px; height: 55px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  transform-origin: bottom center;
  animation: xsb-spear 5s ease-in-out infinite;
}
@keyframes xsb-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes xsb-sunrise { 0% { transform: translateX(-50%) translateY(8px) scale(1.1); opacity: .75 } 50% { transform: translateX(-50%) translateY(0) scale(1); opacity: 1 } 100% { transform: translateX(-50%) translateY(-6px) scale(.95); opacity: .85 } }
@keyframes xsb-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes xsb-xenophon { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(0) } 75% { transform: translateY(-4px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes xsb-army { 0% { transform: translateX(0) scale(1); opacity: .9 } 50% { transform: translateX(-4px) scale(1.02); opacity: 1 } 100% { transform: translateX(3px) scale(.98); opacity: .85 } }
@keyframes xsb-rays { 0% { opacity: .4; transform: translateX(-50%) scale(1) } 50% { opacity: .7; transform: translateX(-50%) scale(1.2) } 100% { opacity: .3; transform: translateX(-50%) scale(.9) } }
@keyframes xsb-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes xsb-spear { 0% { transform: rotate(-3deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(-3deg) } }

.scn-cyrus-envies-liberty {
  background: linear-gradient(180deg, #2c3e50 0%, #4a6670 30%, #8b7d5e 70%, #c9a96e 100%), radial-gradient(ellipse at 50% 100%, #c9a96e 0%, transparent 50%);
}
.scn-cyrus-envies-liberty .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3b4f5c 0%, #6a7b6e 60%, #c9a96e 100%); animation: cy-sky 10s ease-in-out infinite alternate; }
.scn-cyrus-envies-liberty .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.4); animation: cy-hills 15s ease-in-out infinite alternate; }
.scn-cyrus-envies-liberty .tent { position:absolute; bottom:20%; left:35%; width:120px; height:80px; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); background: linear-gradient(135deg, #6a5230 0%, #4a3a20 100%); box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: cy-tent 8s ease-in-out infinite; }
.scn-cyrus-envies-liberty .fire { position:absolute; bottom:22%; left:47%; width:20px; height:30px; background: radial-gradient(ellipse 50% 100% at 50% 100%, #ffb040 0%, #ff8040 50%, transparent 70%); border-radius: 50%; transform-origin: bottom center; animation: cy-fire 2s ease-in-out infinite alternate; }
.scn-cyrus-envies-liberty .figure-cyrus { position:absolute; bottom:18%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cy-fig1 6s ease-in-out infinite; }
.scn-cyrus-envies-liberty .figure-other { position:absolute; bottom:18%; left:52%; width:22px; height:38px; background: linear-gradient(180deg, #2a2a1a 0%, #12120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cy-fig2 7s ease-in-out infinite; }
.scn-cyrus-envies-liberty .spear-left { position:absolute; bottom:25%; left:32%; width:3px; height:60px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 2px; animation: cy-spear 4s ease-in-out infinite; }
.scn-cyrus-envies-liberty .spear-right { position:absolute; bottom:25%; left:60%; width:3px; height:60px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 2px; animation: cy-spear 4s ease-in-out infinite reverse; }
.scn-cyrus-envies-liberty .flag { position:absolute; bottom:32%; left:36%; width:12px; height:16px; background: linear-gradient(180deg, #8b3a3a 0%, #5a2020 100%); clip-path: polygon(0 0, 100% 25%, 100% 75%, 0 100%); filter: drop-shadow(0 2px 4px rgba(0,0,0,.4)); animation: cy-flag 3s ease-in-out infinite alternate; }
@keyframes cy-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cy-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cy-tent { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) translateY(-1px) } }
@keyframes cy-fire { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(0.9) } }
@keyframes cy-fig1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cy-fig2 { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cy-spear { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes cy-flag { 0% { transform: skewX(0deg) } 50% { transform: skewX(5deg) } 100% { transform: skewX(-3deg) } }

.scn-gaulites-questions {
  background: linear-gradient(90deg, #1a1a2e 0%, #2d2d44 40%, #4a4a5e 70%, #7a6e5e 100%), radial-gradient(ellipse at 30% 50%, #7a6e5e 0%, transparent 60%);
}
.scn-gaulites-questions .bg-deep { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3e 0%, #4a4a5e 100%); animation: ga-bg 12s ease-in-out infinite alternate; }
.scn-gaulites-questions .bg-mid { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); }
.scn-gaulites-questions .figure-gaulites-body { position:absolute; bottom:28%; left:45%; width:24px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ga-fig1 6s ease-in-out infinite; }
.scn-gaulites-questions .figure-gaulites-arm { position:absolute; bottom:40%; left:48%; width:18px; height:4px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50%; transform-origin: 0 50%; animation: ga-arm 4s ease-in-out infinite alternate; }
.scn-gaulites-questions .figure-cyrus { position:absolute; bottom:28%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ga-fig2 7s ease-in-out infinite; }
.scn-gaulites-questions .spear { position:absolute; bottom:35%; left:24%; width:3px; height:70px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 2px; animation: ga-spear 5s ease-in-out infinite; }
.scn-gaulites-questions .shield { position:absolute; bottom:32%; left:28%; width:24px; height:28px; background: radial-gradient(circle, #8a6a4a 0%, #5a3a2a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ga-shield 8s ease-in-out infinite alternate; }
.scn-gaulites-questions .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-gaulites-questions .shadow { position:absolute; bottom:25%; left:30%; width:80px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); animation: ga-shadow 6s ease-in-out infinite alternate; }
@keyframes ga-bg { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes ga-arm { 0% { transform: rotate(0deg) } 25% { transform: rotate(-20deg) } 50% { transform: rotate(-10deg) } 75% { transform: rotate(-30deg) } 100% { transform: rotate(0deg) } }
@keyframes ga-fig1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ga-fig2 { 0% { transform: translateX(0) } 50% { transform: translateX(-1px) } 100% { transform: translateX(0) } }
@keyframes ga-spear { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes ga-shield { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ga-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-cyrus-reassures-gaulites {
  background: linear-gradient(180deg, #f5d6a0 0%, #e8b86d 40%, #c88a4a 70%, #6e4a2a 100%), radial-gradient(ellipse at 50% 20%, #fff4d6 0%, transparent 60%);
}
.scn-cyrus-reassures-gaulites .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fbe9c8 0%, #e8c070 100%); animation: cr-sky 14s ease-in-out infinite alternate; }
.scn-cyrus-reassures-gaulites .sun { position:absolute; top:12%; left:65%; width:40px; height:40px; background: radial-gradient(circle, #fff4d6 0%, #f5d28a 50%, transparent 70%); border-radius: 50%; animation: cr-sun 20s ease-in-out infinite; }
.scn-cyrus-reassures-gaulites .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #a0885a 0%, #6a5030 100%); border-radius: 40% 60% 0 0 / 70% 50% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.3); animation: cr-hills 18s ease-in-out infinite alternate; }
.scn-cyrus-reassures-gaulites .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6a3a 0%, #4a3018 100%); }
.scn-cyrus-reassures-gaulites .figure-cyrus { position:absolute; bottom:22%; left:32%; width:28px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-fig1 8s ease-in-out infinite; }
.scn-cyrus-reassures-gaulites .figure-gaulites { position:absolute; bottom:20%; left:55%; width:24px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-fig2 9s ease-in-out infinite; }
.scn-cyrus-reassures-gaulites .fire { position:absolute; bottom:25%; left:43%; width:18px; height:28px; background: radial-gradient(ellipse 50% 100% at 50% 100%, #ffcc70 0%, #ff8030 40%, transparent 60%); border-radius: 50%; animation: cr-fire 2.5s ease-in-out infinite alternate; }
.scn-cyrus-reassures-gaulites .horse { position:absolute; bottom:22%; left:15%; width:50px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4020 100%); border-radius: 50% / 40% 60% 40% 60%; animation: cr-horse 10s ease-in-out infinite; }
.scn-cyrus-reassures-gaulites .chariot { position:absolute; bottom:20%; left:10%; width:40px; height:20px; background: linear-gradient(90deg, #6a4a2a 0%, #4a3018 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); animation: cr-chariot 10s ease-in-out infinite; }
@keyframes cr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cr-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes cr-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cr-fig1 { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(0) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-4px) rotate(0) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes cr-fig2 { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes cr-fire { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.3); opacity:1 } 100% { transform: scaleY(0.9); opacity:.9 } }
@keyframes cr-horse { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cr-chariot { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(0) } 75% { transform: translateX(-2px) } 100% { transform: translateX(0) } }

.scn-generals-encouraged {
  background: linear-gradient(180deg, #fbe9d2 0%, #efc89a 30%, #c8955e 60%, #7a5436 100%), radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 50%);
}
.scn-generals-encouraged .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f5e0c8 0%, #dfb882 100%); animation: ge-sky 16s ease-in-out infinite alternate; }
.scn-generals-encouraged .sun { position:absolute; top:8%; left:48%; width:50px; height:50px; background: radial-gradient(circle, #fff5e6 0%, #f5d49a 50%, transparent 70%); border-radius: 50%; animation: ge-sun 25s ease-in-out infinite; }
.scn-generals-encouraged .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #b09060 0%, #6a4a2a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.3); animation: ge-hills 20s ease-in-out infinite alternate; }
.scn-generals-encouraged .dais { position:absolute; bottom:18%; left:43%; width:70px; height:24px; background: linear-gradient(180deg, #a08050 0%, #604020 100%); border-radius: 10% 10% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: ge-dais 8s ease-in-out infinite; }
.scn-generals-encouraged .figure-cyrus { position:absolute; bottom:20%; left:47%; width:26px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ge-cyrus 8s ease-in-out infinite; }
.scn-generals-encouraged .figure-gen1 { position:absolute; bottom:20%; left:33%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ge-gen1 10s ease-in-out infinite; }
.scn-generals-encouraged .figure-gen2 { position:absolute; bottom:20%; left:60%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ge-gen2 10s ease-in-out infinite reverse; }
.scn-generals-encouraged .standard { position:absolute; bottom:30%; left:46%; width:4px; height:80px; background: linear-gradient(180deg, #8a6a3a 0%, #4a3018 100%); border-radius: 2px; }
.scn-generals-encouraged .standard::after { content:""; position:absolute; top:0; left:2px; width:30px; height:20px; background: linear-gradient(180deg, #c88a4a 0%, #8a5a2a 100%); clip-path: polygon(0 0, 100% 25%, 100% 75%, 0 100%); filter: drop-shadow(0 2px 4px rgba(0,0,0,.3)); animation: ge-flag 4s ease-in-out infinite alternate; }
.scn-generals-encouraged .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a6a3a 0%, #4a3018 100%); }
@keyframes ge-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ge-sun { 0% { transform: translateY(0) scale(1); opacity:.85 } 50% { transform: translateY(-4px) scale(1.03); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.9 } }
@keyframes ge-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ge-dais { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ge-cyrus { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ge-gen1 { 0% { transform: translateY(0) } 25% { transform: translateY(-1px) } 50% { transform: translateY(0) } 75% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ge-gen2 { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ge-flag { 0% { transform: skewX(0deg) } 50% { transform: skewX(8deg) } 100% { transform: skewX(-4deg) } }

/* Scene: city-sittace-park — calm, sunlit, wide horizon */
.scn-city-sittace-park {
  background: 
    linear-gradient(180deg, #7ec8e3 0%, #f9d976 40%, #f0c27a 70%, #8fbc8f 100%),
    radial-gradient(ellipse at 50% 0%, #f9d976 0%, transparent 60%);
}
.scn-city-sittace-park .sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #87ceeb 0%, #c3e3f0 100%); animation:csp-sky 15s ease-in-out infinite alternate; }
.scn-city-sittace-park .sun { position:absolute; top:12%; left:75%; width:40px; height:40px; background:radial-gradient(circle, #fff7b0 0%, #f9d976 50%, transparent 80%); border-radius:50%; box-shadow:0 0 80px 30px rgba(249,217,118,0.5); animation:csp-sun 18s ease-in-out infinite alternate; }
.scn-city-sittace-park .hills { position:absolute; bottom:40%; left:0; right:0; height:18%; background:linear-gradient(180deg, #8fbc8f 0%, #6b8e6b 100%); border-radius:30% 70% 0 0 / 60% 80% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,0.2); animation:csp-hills 20s ease-in-out infinite; }
.scn-city-sittace-park .river { position:absolute; bottom:20%; left:0; right:0; height:22%; background:linear-gradient(180deg, #4a90d9 0%, #2c6fb0 100%); border-radius:0 0 20% 20%; box-shadow:inset 0 5px 15px rgba(255,255,255,0.1); animation:csp-river 8s ease-in-out infinite alternate; }
.scn-city-sittace-park .meadow { position:absolute; bottom:0; left:0; right:0; height:22%; background:linear-gradient(0deg, #7c9e5a 0%, #8fbc8f 100%); border-radius:40% 40% 0 0; }
.scn-city-sittace-park .tree { position:absolute; bottom:22%; width:30px; height:100px; background:linear-gradient(90deg, #5c4033 0%, #3e2b23 100%); border-radius:10% 10% 20% 20%; }
.scn-city-sittace-park .tree::after { content:''; position:absolute; top:-40px; left:-15px; width:60px; height:50px; background:radial-gradient(ellipse, #7c9e5a 0%, #4f6e3a 100%); border-radius:50%; }
.scn-city-sittace-park .tree-left { left:12%; width:25px; height:85px; animation:csp-sway-l 10s ease-in-out infinite; }
.scn-city-sittace-park .tree-right { right:18%; width:35px; height:110px; animation:csp-sway-r 12s ease-in-out infinite reverse; }
.scn-city-sittace-park .tree-left::after { top:-35px; left:-12px; width:50px; height:45px; }
.scn-city-sittace-park .tree-right::after { top:-45px; left:-18px; width:70px; height:60px; background:radial-gradient(ellipse, #6b8e6b 0%, #3e5e3e 100%); }
.scn-city-sittace-park .tent { position:absolute; bottom:22%; left:42%; width:60px; height:40px; background:linear-gradient(135deg, #e8d5a3 0%, #b89a6b 100%); border-radius:20% 20% 5% 5%; clip-path:polygon(0% 100%, 50% 0%, 100% 100%); animation:csp-tent 6s ease-in-out infinite; }
.scn-city-sittace-park .figure { position:absolute; bottom:22%; left:56%; width:14px; height:30px; background:linear-gradient(180deg, #4a3b2c 0%, #2a1f14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:csp-figure 4s ease-in-out infinite; }
@keyframes csp-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes csp-sun { 0%{transform:scale(0.9);opacity:0.8} 50%{transform:scale(1.1);opacity:1} 100%{transform:scale(1);opacity:0.9} }
@keyframes csp-hills { 0%{transform:translateY(0)} 30%{transform:translateY(-2px)} 70%{transform:translateY(1px)} 100%{transform:translateY(0)} }
@keyframes csp-river { 0%{opacity:0.7;transform:translateY(0)} 50%{opacity:0.9;transform:translateY(-2px)} 100%{opacity:0.75;transform:translateY(0)} }
@keyframes csp-sway-l { 0%{transform:rotate(-1deg)} 30%{transform:rotate(1.5deg)} 60%{transform:rotate(-1deg)} 100%{transform:rotate(0deg)} }
@keyframes csp-sway-r { 0%{transform:rotate(1deg)} 30%{transform:rotate(-1.5deg)} 60%{transform:rotate(1deg)} 100%{transform:rotate(0deg)} }
@keyframes csp-tent { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes csp-figure { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(3px) rotate(1deg)} 50%{transform:translateX(6px) rotate(-1deg)} 75%{transform:translateX(3px) rotate(2deg)} 100%{transform:translateX(0) rotate(0deg)} }

/* Scene: warning-from-ariaeus — tense, dim interior, cutaway */
.scn-warning-from-ariaeus {
  background:
    linear-gradient(135deg, #1a1a2e 0%, #2c2c44 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 40% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-warning-from-ariaeus .wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #2e2a3a 0%, #1e1a2a 100%); box-shadow:inset 0 0 40px rgba(0,0,0,0.6); }
.scn-warning-from-ariaeus .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(0deg, #2a2218 0%, #3a2e20 100%); }
.scn-warning-from-ariaeus .side { position:absolute; top:0; left:0; width:30%; height:70%; background:linear-gradient(90deg, #1a1a2e 0%, transparent 100%); }
.scn-warning-from-ariaeus .lantern { position:absolute; top:25%; left:15%; width:16px; height:24px; background:radial-gradient(circle, #f0c068 0%, #e0a040 60%, transparent 100%); border-radius:20%; box-shadow:0 0 40px 15px #e0a040, 0 0 80px 30px rgba(224,160,64,0.3); animation:wfa-lantern 1.5s ease-in-out infinite alternate; }
.scn-warning-from-ariaeus .figure { position:absolute; bottom:30%; width:16px; height:36px; background:linear-gradient(180deg, #2e2a3a 0%, #1a1620 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; }
.scn-warning-from-ariaeus .figure-x { left:28%; animation:wfa-figure1 3s ease-in-out infinite; }
.scn-warning-from-ariaeus .figure-p { left:48%; animation:wfa-figure2 2.5s ease-in-out infinite reverse; }
.scn-warning-from-ariaeus .messenger { position:absolute; bottom:30%; right:10%; width:15px; height:32px; background:linear-gradient(180deg, #3a2e20 0%, #1e1610 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:wfa-messenger 5s ease-in-out infinite; }
@keyframes wfa-lantern { 0%{opacity:0.6;transform:scale(0.9)} 30%{opacity:1;transform:scale(1.1)} 60%{opacity:0.8;transform:scale(1)} 100%{opacity:0.7;transform:scale(0.95)} }
@keyframes wfa-figure1 { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-2px) rotate(2deg)} 50%{transform:translateY(1px) rotate(-1deg)} 75%{transform:translateY(-1px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes wfa-figure2 { 0%{transform:translateY(0) rotate(0deg)} 30%{transform:translateY(-1px) rotate(-2deg)} 60%{transform:translateY(2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes wfa-messenger { 0%{transform:translateX(20px) rotate(-3deg);opacity:0} 20%{opacity:1} 50%{transform:translateX(0) rotate(0deg)} 80%{transform:translateX(-5px) rotate(2deg)} 100%{transform:translateX(0) rotate(0deg)} }

/* Scene: clearchus-alarmed — tense, dim interior, close-up */
.scn-clearchus-alarmed {
  background:
    linear-gradient(0deg, #1a1210 0%, #2e2018 30%, #3a2a1a 70%, #1a1a2e 100%),
    radial-gradient(ellipse at 60% 60%, #4a3a2a 0%, transparent 80%);
}
.scn-clearchus-alarmed .wall { position:absolute; inset:0 0 25% 0; background:linear-gradient(180deg, #2e2018 0%, #1a1210 100%); }
.scn-clearchus-alarmed .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(0deg, #1a1210 0%, #2a1e16 100%); }
.scn-clearchus-alarmed .table { position:absolute; bottom:25%; left:35%; width:80px; height:20px; background:linear-gradient(180deg, #5c3a2a 0%, #3a2216 100%); border-radius:5%; box-shadow:0 4px 8px rgba(0,0,0,0.6); }
.scn-clearchus-alarmed .lamp { position:absolute; bottom:45%; left:38%; width:12px; height:18px; background:radial-gradient(circle, #f0c068 0%, #d09040 60%, transparent 100%); border-radius:30%; box-shadow:0 0 30px 10px #d09040, 0 0 60px 20px rgba(208,144,64,0.4); animation:cal-lamp 2s ease-in-out infinite alternate; }
.scn-clearchus-alarmed .figure { position:absolute; bottom:25%; max-width:20px; height:40px; background:linear-gradient(180deg, #2e2018 0%, #14100c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; }
.scn-clearchus-alarmed .clearchus { left:28%; width:18px; animation:cal-clearchus 1.5s ease-in-out infinite; }
.scn-clearchus-alarmed .young { left:55%; width:16px; height:36px; animation:cal-young 3s ease-in-out infinite; }
.scn-clearchus-alarmed .map { position:absolute; bottom:30%; left:40%; width:30px; height:10px; background:linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:10%; transform:rotate(-15deg); animation:cal-map 8s ease-in-out infinite alternate; }
@keyframes cal-lamp { 0%{transform:scale(0.95);opacity:0.7} 30%{transform:scale(1.05);opacity:1} 60%{transform:scale(1);opacity:0.8} 100%{transform:scale(0.9);opacity:0.6} }
@keyframes cal-clearchus { 0%{transform:translateY(0) rotate(0deg) scale(1)} 20%{transform:translateY(-3px) rotate(3deg) scale(1.02)} 40%{transform:translateY(2px) rotate(-2deg) scale(0.98)} 60%{transform:translateY(-1px) rotate(1deg) scale(1)} 80%{transform:translateY(1px) rotate(-1deg) scale(0.99)} 100%{transform:translateY(0) rotate(0deg) scale(1)} }
@keyframes cal-young { 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 cal-map { 0%{transform:rotate(-15deg) translateY(0)} 50%{transform:rotate(-13deg) translateY(-1px)} 100%{transform:rotate(-17deg) translateY(0)} }

/* Scene: clearchus-questions-messenger — tense, dim interior, dialogue */
.scn-clearchus-questions-messenger {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2e221a 40%, #3a2a1a 70%, #1a1210 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-clearchus-questions-messenger .wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #2e221a 0%, #1a1210 100%); }
.scn-clearchus-questions-messenger .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(0deg, #1a1210 0%, #2a1e16 100%); }
.scn-clearchus-questions-messenger .flap { position:absolute; top:0; right:0; width:20%; height:80%; background:linear-gradient(90deg, transparent 0%, #2e221a 60%, #1a1210 100%); clip-path:polygon(0% 0%, 100% 10%, 100% 90%, 0% 100%); }
.scn-clearchus-questions-messenger .lamp { position:absolute; top:20%; left:45%; width:14px; height:20px; background:radial-gradient(circle, #f0c068 0%, #d09040 60%, transparent 100%); border-radius:30%; box-shadow:0 0 35px 12px #d09040, 0 0 70px 25px rgba(208,144,64,0.4); animation:cqm-lamp 1.8s ease-in-out infinite alternate; }
.scn-clearchus-questions-messenger .figure { position:absolute; bottom:20%; width:16px; height:38px; background:linear-gradient(180deg, #2e2018 0%, #14100c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; }
.scn-clearchus-questions-messenger .clearchus { left:30%; animation:cqm-clearchus 2.5s ease-in-out infinite; }
.scn-clearchus-questions-messenger .messenger-cqm { right:25%; width:15px; height:34px; animation:cqm-messenger 3s ease-in-out infinite reverse; }
.scn-clearchus-questions-messenger .stool { position:absolute; bottom:20%; left:38%; width:20px; height:12px; background:linear-gradient(180deg, #5c3a2a 0%, #3a2216 100%); border-radius:10%; box-shadow:0 2px 6px rgba(0,0,0,0.5); }
@keyframes cqm-lamp { 0%{transform:scale(0.92);opacity:0.7} 30%{transform:scale(1.08);opacity:1} 60%{transform:scale(1);opacity:0.8} 100%{transform:scale(0.95);opacity:0.6} }
@keyframes cqm-clearchus { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-3px) rotate(2deg) scale(1.01)} 50%{transform:translateY(1px) rotate(-1deg)} 75%{transform:translateY(-2px) rotate(1deg) scale(0.99)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes cqm-messenger { 0%{transform:translateY(0) rotate(0deg)} 30%{transform:translateY(-2px) rotate(-2deg)} 60%{transform:translateY(1px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }

/* --- footnote-paradise --- */
.scn-footnote-paradise {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1f2a 50%, #1f1420 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a2a 0%, transparent 60%);
}
.scn-footnote-paradise .bg {
  inset:0; background: inherit; position:absolute;
  animation: fp-bg 20s ease-in-out infinite alternate;
}
.scn-footnote-paradise .window {
  position:absolute; top:12%; right:15%; width:60px; height:80px;
  background: radial-gradient(circle at top, #1c2a3a 0%, #0f151f 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,20,40,.6);
  animation: fp-window 12s ease-in-out infinite alternate;
}
.scn-footnote-paradise .desk {
  position:absolute; bottom:18%; left:10%; right:10%; height:6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2px 2px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.5);
  animation: fp-desk 15s ease-in-out infinite alternate;
}
.scn-footnote-paradise .lamp {
  position:absolute; bottom:28%; left:25%; width:20px; height:40px;
  background: linear-gradient(180deg, #605040 0%, #3a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-footnote-paradise .lamp::after {
  content:''; position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  width:18px; height:14px; background: radial-gradient(circle, #ffd080 0%, #b07030 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 8px #ffc060, 0 0 60px 16px rgba(255,192,96,.3);
  animation: fp-lamp 3s ease-in-out infinite alternate;
}
.scn-footnote-paradise .book1 {
  position:absolute; bottom:18%; left:32%; width:40px; height:8px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px; transform: rotate(-2deg); animation: fp-book 8s ease-in-out infinite;
}
.scn-footnote-paradise .book2 {
  position:absolute; bottom:18%; left:36%; width:36px; height:10px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2px; transform: rotate(3deg); animation: fp-book 8s ease-in-out infinite reverse;
  animation-delay: -4s;
}
.scn-footnote-paradise .figure {
  position:absolute; bottom:18%; right:20%; width:24px; height:42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: fp-figure 9s ease-in-out infinite;
}
@keyframes fp-bg { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fp-window { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes fp-desk { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes fp-lamp { 0% { box-shadow: 0 0 20px 4px #b07030, 0 0 40px 10px rgba(176,112,48,.2); opacity:.9 } 50% { box-shadow: 0 0 40px 12px #ffc060, 0 0 80px 20px rgba(255,192,96,.4); opacity:1 } 100% { box-shadow: 0 0 25px 6px #b07030, 0 0 50px 12px rgba(176,112,48,.3); opacity:.85 } }
@keyframes fp-book { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(2deg) translateX(2px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes fp-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(0) } 100% { transform: translateX(0) rotate(-1deg) } }

/* --- caystru-pedion-halt --- */
.scn-caystru-pedion-halt {
  background:
    linear-gradient(180deg, #7a9aba 0%, #b0c4d8 30%, #e0d8b0 60%, #c0a070 100%),
    radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 50%);
}
.scn-caystru-pedion-halt .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a6a9a 0%, #8aacd4 50%, transparent 100%);
  animation: cph-sky 25s ease-in-out infinite alternate;
}
.scn-caystru-pedion-halt .palace-wall {
  position:absolute; bottom:20%; left:10%; width:35%; height:60%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 0 0 4px 4px; box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: cph-wall 20s ease-in-out infinite alternate;
}
.scn-caystru-pedion-halt .gate {
  position:absolute; bottom:20%; left:25%; width:40px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 20px 20px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: cph-gate 15s ease-in-out infinite alternate;
}
.scn-caystru-pedion-halt .soldier1 {
  position:absolute; bottom:20%; left:18%; width:12px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px 4px 2px 2px; transform-origin: bottom center;
  animation: cph-soldier 4s ease-in-out infinite;
}
.scn-caystru-pedion-halt .soldier2 {
  position:absolute; bottom:20%; left:36%; width:12px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px 4px 2px 2px; transform-origin: bottom center;
  animation: cph-soldier 4s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-caystru-pedion-halt .cyrus {
  position:absolute; bottom:20%; left:55%; width:20px; height:60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 6px 6px 4px 4px; transform-origin: bottom center;
  animation: cph-cyrus 6s ease-in-out infinite;
}
.scn-caystru-pedion-halt .banner {
  position:absolute; bottom:42%; left:58%; width:16px; height:30px;
  background: linear-gradient(180deg, #a08030 0%, #704820 100%);
  border-radius: 2px 8px 8px 2px; transform-origin: top left;
  animation: cph-banner 3s ease-in-out infinite alternate;
}
@keyframes cph-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cph-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cph-gate { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes cph-soldier { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cph-cyrus { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(1deg) } 60% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes cph-banner { 0% { transform: rotate(0) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(.95) } }

/* --- epyaxa-visit-pay --- */
.scn-epyaxa-visit-pay {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #4a3a2a 80%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 60%, #6a4a2a 0%, transparent 70%);
}
.scn-epyaxa-visit-pay .bg-chamber {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 70%, #5a3a1a 0%, transparent 60%);
  animation: evp-bg 30s ease-in-out infinite alternate;
}
.scn-epyaxa-visit-pay .throne {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%);
  width:40px; height:60px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 6px 6px 2px 2px; box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: evp-throne 20s ease-in-out infinite alternate;
}
.scn-epyaxa-visit-pay .queen {
  position:absolute; bottom:20%; left:45%; width:18px; height:48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: evp-queen 7s ease-in-out infinite;
}
.scn-epyaxa-visit-pay .attendant {
  position:absolute; bottom:20%; left:38%; width:14px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px 4px 2px 2px; transform-origin: bottom center;
  animation: evp-attendant 5s ease-in-out infinite;
}
.scn-epyaxa-visit-pay .coin-chest {
  position:absolute; bottom:20%; left:58%; width:30px; height:20px;
  background: linear-gradient(180deg, #805020 0%, #503010 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: evp-chest 12s ease-in-out infinite alternate;
}
.scn-epyaxa-visit-pay .brazier {
  position:absolute; bottom:30%; left:30%; width:28px; height:24px;
  background: radial-gradient(circle at 50% 30%, #c06020 0%, #4a1a0a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 8px #c05020, 0 0 60px 16px rgba(192,80,32,.3);
  animation: evp-brazier 2s ease-in-out infinite alternate;
}
.scn-epyaxa-visit-pay .tapestry {
  position:absolute; bottom:20%; left:70%; width:40px; height:70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%);
  border-radius: 0 0 4px 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: evp-tapestry 18s ease-in-out infinite;
}
@keyframes evp-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes evp-throne { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes evp-queen { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes evp-attendant { 0% { transform: translateX(0) scaleY(1) } 30% { transform: translateX(3px) scaleY(1.02) } 70% { transform: translateX(-3px) scaleY(1) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes evp-chest { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes evp-brazier { 0% { box-shadow: 0 0 20px 4px #c05020, 0 0 40px 10px rgba(192,80,32,.2); } 50% { box-shadow: 0 0 40px 12px #e07030, 0 0 80px 20px rgba(224,112,48,.4); } 100% { box-shadow: 0 0 25px 6px #c05020, 0 0 50px 12px rgba(192,80,32,.3); } }
@keyframes evp-tapestry { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(0) } 75% { transform: translateX(-2px) } 100% { transform: translateX(0) } }

/* --- thymbrium-midas-spring --- */
.scn-thymbrium-midas-spring {
  background:
    linear-gradient(180deg, #7ab0c0 0%, #b0d8e0 30%, #d8e8c0 60%, #b0c080 100%),
    radial-gradient(ellipse at 70% 40%, #e0f0d0 0%, transparent 50%);
}
.scn-thymbrium-midas-spring .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4a80a0 0%, #8ac0d0 50%, transparent 100%);
  animation: tms-sky 25s ease-in-out infinite alternate;
}
.scn-thymbrium-midas-spring .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #6a9a5a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: tms-ground 30s ease-in-out infinite alternate;
}
.scn-thymbrium-midas-spring .spring {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%);
  width:80px; height:16px;
  background: radial-gradient(ellipse, #1a6a8a 0%, #3a9aba 60%, transparent 80%);
  border-radius: 50%; box-shadow: inset 0 0 20px rgba(26,106,138,.4);
  animation: tms-spring 4s ease-in-out infinite alternate;
}
.scn-thymbrium-midas-spring .reeds {
  position:absolute; bottom:23%; left:40%; width:4px; height:50px;
  background: linear-gradient(180deg, #5a8a3a 0%, #2a4a1a 100%);
  border-radius: 2px 2px 0 0; transform-origin: bottom center;
  animation: tms-reeds 6s ease-in-out infinite;
}
.scn-thymbrium-midas-spring .reeds::before {
  content:''; position:absolute; top:0; left:10px; width:3px; height:40px;
  background: linear-gradient(180deg, #5a8a3a 0%, #2a4a1a 100%);
  border-radius: 2px 2px 0 0; animation: tms-reeds 6s ease-in-out infinite reverse;
  animation-delay: -3s;
}
.scn-thymbrium-midas-spring .tree {
  position:absolute; bottom:30%; left:20%; width:50px; height:70px;
  background: radial-gradient(ellipse at 50% 40%, #5a8a3a 0%, #3a6a2a 60%, #1a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  animation: tms-tree 12s ease-in-out infinite alternate;
}
.scn-thymbrium-midas-spring .satyr {
  position:absolute; bottom:22%; left:45%; width:20px; height:34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tms-satyr 8s ease-in-out infinite;
}
.scn-thymbrium-midas-spring .midas {
  position:absolute; bottom:22%; right:25%; width:18px; height:38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tms-midas 10s ease-in-out infinite;
}
@keyframes tms-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes tms-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tms-spring { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.03) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes tms-reeds { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes tms-tree { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes tms-satyr { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(3deg) } 75% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes tms-midas { 0% { transform: translateX(0) translateY(0) } 30% { transform: translateX(3px) translateY(-2px) } 70% { transform: translateX(-3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }

/* ------------------------------------------------
   Scene: hieronymus-calls-for-speech  (dark/tense)
   ------------------------------------------------ */
.scn-hieronymus-calls-for-speech {
  background: linear-gradient(180deg, #0a0a1a 0%, #191936 40%, #2a1a2a 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a3a 0%, transparent 60%);
}

.scn-hieronymus-calls-for-speech .bg-deep,
.scn-hieronymus-calls-for-speech .bg-mid {
  position: absolute;
  inset: 0;
}
.scn-hieronymus-calls-for-speech .bg-deep {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 100%);
  animation: hi1-deep 15s ease-in-out infinite alternate;
}
.scn-hieronymus-calls-for-speech .bg-mid {
  background: radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 60%);
  opacity: 0.6;
  animation: hi1-mid 12s ease-in-out infinite alternate;
}
.scn-hieronymus-calls-for-speech .speaker-head {
  position: absolute;
  left: 48%; bottom: 58%;
  width: 32px; height: 38px;
  margin-left: -16px;
  background: radial-gradient(circle at 50% 40%, #252540, #0a0a1a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hi1-speak 4s ease-in-out infinite;
}
.scn-hieronymus-calls-for-speech .speaker-body {
  position: absolute;
  left: 45%; bottom: 28%;
  width: 50px; height: 70px;
  margin-left: -25px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hi1-bob 5s ease-in-out infinite;
}
.scn-hieronymus-calls-for-speech .listener-1,
.scn-hieronymus-calls-for-speech .listener-2 {
  position: absolute;
  bottom: 18%;
  width: 18px; height: 48px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hi1-listen 6s ease-in-out infinite;
}
.scn-hieronymus-calls-for-speech .listener-1 { left: 20%; }
.scn-hieronymus-calls-for-speech .listener-2 { right: 20%; animation-delay: -2s; }
.scn-hieronymus-calls-for-speech .light-glow {
  position: absolute;
  left: 50%; bottom: 50%;
  width: 8px; height: 8px;
  margin-left: -4px;
  background: radial-gradient(circle, #806040 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(128, 96, 64, 0.3);
  animation: hi1-glow 3s ease-in-out infinite alternate;
}

@keyframes hi1-deep {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hi1-mid {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.02); }
  100% { opacity: 0.4; transform: scale(0.98); }
}
@keyframes hi1-speak {
  0% { transform: translateY(0) rotate(-2deg); }
  40% { transform: translateY(-2px) rotate(0deg); }
  60% { transform: translateY(0px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hi1-bob {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes hi1-listen {
  0% { transform: rotate(-3deg); opacity: 0.6; }
  50% { transform: rotate(3deg); opacity: 0.9; }
  100% { transform: rotate(-3deg); opacity: 0.6; }
}
@keyframes hi1-glow {
  0% { box-shadow: 0 0 15px 5px rgba(128,96,64,0.3); }
  50% { box-shadow: 0 0 30px 12px rgba(128,96,64,0.5); }
  100% { box-shadow: 0 0 20px 8px rgba(128,96,64,0.3); }
}

/* ------------------------------------------------
   Scene: xenophon-addresses-gathered  (dark/tense)
   ------------------------------------------------ */
.scn-xenophon-addresses-gathered {
  background: linear-gradient(180deg, #0b0b1e 0%, #1a1a35 50%, #2a1a30 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a35 0%, transparent 80%);
}

.scn-xenophon-addresses-gathered .bg-night {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0f0f22 0%, #15152a 100%);
  animation: xe2-bg 20s ease-in-out infinite alternate;
}
.scn-xenophon-addresses-gathered .stage {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a2a3e 0%, #3a3a4e 50%, #2a2a3e 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-xenophon-addresses-gathered .speaker {
  position: absolute; left: 50%; bottom: 26%;
  width: 40px; height: 80px;
  margin-left: -20px;
  background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: xe2-speak 4s ease-in-out infinite;
}
.scn-xenophon-addresses-gathered .crowd-left,
.scn-xenophon-addresses-gathered .crowd-right {
  position: absolute; bottom: 12%;
  width: 100px; height: 70px;
  background: repeating-linear-gradient(
    90deg,
    #1a1a30 0px, #1a1a30 8px,
    transparent 8px, transparent 18px
  );
  mask-image: radial-gradient(ellipse at 50% 100%, black 30%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 30%, transparent 70%);
  animation: xe2-crowd 8s ease-in-out infinite alternate;
}
.scn-xenophon-addresses-gathered .crowd-left {
  left: 5%;
  transform: scaleX(-1); /* left side */
}
.scn-xenophon-addresses-gathered .crowd-right {
  right: 5%;
}
.scn-xenophon-addresses-gathered .shadow-blanket {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%);
  pointer-events: none;
}
.scn-xenophon-addresses-gathered .light-source {
  position: absolute; left: 50%; bottom: 38%;
  width: 10px; height: 10px;
  margin-left: -5px;
  background: radial-gradient(circle, #705030 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 10px rgba(112,80,48,0.3);
  animation: xe2-light 3s ease-in-out infinite alternate;
}

@keyframes xe2-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes xe2-speak {
  0% { transform: translateX(-50%) rotate(-1deg); }
  40% { transform: translateX(-50%) rotate(2deg); }
  70% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes xe2-crowd {
  0% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.7; transform: translateY(0); }
}
@keyframes xe2-light {
  0% { box-shadow: 0 0 20px 6px rgba(112,80,48,0.2); }
  50% { box-shadow: 0 0 35px 14px rgba(112,80,48,0.5); }
  100% { box-shadow: 0 0 20px 6px rgba(112,80,48,0.2); }
}

/* ------------------------------------------------
   Scene: xenophon-speech-appoint-officers  (tense/sunlit)
   ------------------------------------------------ */
.scn-xenophon-speech-appoint-officers {
  background: linear-gradient(180deg, #7ec8e3 0%, #c2dbe0 40%, #f0e6c0 100%),
              radial-gradient(ellipse at 50% 20%, #fff4d0 0%, transparent 60%);
}

.scn-xenophon-speech-appoint-officers .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a90d9 0%, #a0c8e8 100%);
  animation: xs3-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-speech-appoint-officers .sun {
  position: absolute; top: 8%; left: 70%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd080 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,208,128,0.4);
  animation: xs3-sun 12s ease-in-out infinite;
}
.scn-xenophon-speech-appoint-officers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8b080 0%, #a09060 100%);
}
.scn-xenophon-speech-appoint-officers .podium {
  position: absolute; bottom: 20%; left: 50%; width: 70px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a878 0%, #9a8258 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-xenophon-speech-appoint-officers .speaker {
  position: absolute; left: 50%; bottom: 30%;
  width: 36px; height: 90px;
  margin-left: -18px;
  background: linear-gradient(180deg, #c8b080 0%, #7a6840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xs3-speaker 4s ease-in-out infinite;
}
.scn-xenophon-speech-appoint-officers .soldier-1,
.scn-xenophon-speech-appoint-officers .soldier-2 {
  position: absolute; bottom: 12%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #b0a070 0%, #7a6840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xs3-soldier 5s ease-in-out infinite alternate;
}
.scn-xenophon-speech-appoint-officers .soldier-1 { left: 18%; }
.scn-xenophon-speech-appoint-officers .soldier-2 { right: 18%; animation-delay: -2.5s; }
.scn-xenophon-speech-appoint-officers .shadow-cast {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
}

@keyframes xs3-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes xs3-sun {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(8px) scale(1.05); box-shadow: 0 0 80px 40px rgba(255,208,128,0.5); }
  100% { transform: translateX(-4px) scale(0.98); }
}
@keyframes xs3-speaker {
  0% { transform: translateX(-50%) rotate(-1deg); }
  30% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
  60% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  100% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes xs3-soldier {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}

/* ------------------------------------------------
   Scene: xenophon-speech-encourage-troops  (tense/sunlit)
   ------------------------------------------------ */
.scn-xenophon-speech-encourage-troops {
  background: linear-gradient(180deg, #ffeedd 0%, #f5d8b0 40%, #c8a880 100%),
              radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 70%);
}

.scn-xenophon-speech-encourage-troops .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a9ad4 0%, #b0d4e8 100%);
  animation: xe4-sky 18s ease-in-out infinite alternate;
}
.scn-xenophon-speech-encourage-troops .sun {
  position: absolute; top: 5%; left: 30%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #ffcc70 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 30px rgba(255,204,112,0.4);
  animation: xe4-sun 14s ease-in-out infinite;
}
.scn-xenophon-speech-encourage-troops .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8a078 0%, #8a7048 100%);
}
.scn-xenophon-speech-encourage-troops .speaker-fg {
  position: absolute; left: 50%; bottom: 36%;
  width: 70px; height: 110px;
  margin-left: -35px;
  background: linear-gradient(180deg, #c8b080 0%, #6a5838 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: xe4-speaker 3.5s ease-in-out infinite;
}
.scn-xenophon-speech-encourage-troops .soldier-1,
.scn-xenophon-speech-encourage-troops .soldier-2 {
  position: absolute; bottom: 12%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #a09060 0%, #6a5838 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xe4-soldier 6s ease-in-out infinite alternate;
}
.scn-xenophon-speech-encourage-troops .soldier-1 { left: 12%; }
.scn-xenophon-speech-encourage-troops .soldier-2 { right: 12%; animation-delay: -3s; }
.scn-xenophon-speech-encourage-troops .speaker-arm {
  position: absolute; left: 58%; bottom: 62%;
  width: 10px; height: 40px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #c8b080 0%, #7a6840 100%);
  border-radius: 30% 30% 10% 10%;
  animation: xe4-arm 2s ease-in-out infinite;
}

@keyframes xe4-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes xe4-sun {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-6px) scale(1.03); box-shadow: 0 0 90px 40px rgba(255,204,112,0.5); }
  100% { transform: translateX(4px) scale(0.97); }
}
@keyframes xe4-speaker {
  0% { transform: translateX(-50%) rotate(-1deg); }
  40% { transform: translateX(-50%) rotate(2deg) translateY(-4px); }
  70% { transform: translateX(-50%) rotate(-1deg) translateY(1px); }
  100% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes xe4-soldier {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes xe4-arm {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(30deg); }
  100% { transform: rotate(-20deg); }
}

.scn-xenophon-calls-officers { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a4a 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 70%); }
.scn-xenophon-calls-officers .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 60%, #2a1a1a 100%); animation: xco-bg 12s ease-in-out infinite alternate; }
.scn-xenophon-calls-officers .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 20% 20% 0 0; }
.scn-xenophon-calls-officers .tent-wall { position:absolute; top:0; left:10%; right:10%; height:70%; background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: xco-wall 20s ease-in-out infinite alternate; }
.scn-xenophon-calls-officers .campfire { position:absolute; bottom:25%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #ff8c00 0%, #ff4500 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #ff4500, 0 0 60px 20px rgba(255,69,0,.5); animation: xco-fire 2s ease-in-out infinite alternate; }
.scn-xenophon-calls-officers .officer { position:absolute; bottom:25%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-xenophon-calls-officers .officer1 { left:30%; animation: xco-bob 5s ease-in-out infinite; }
.scn-xenophon-calls-officers .officer2 { left:40%; animation: xco-bob 5s ease-in-out infinite 1s; }
.scn-xenophon-calls-officers .officer3 { left:60%; animation: xco-bob 5s ease-in-out infinite 2s; }
.scn-xenophon-calls-officers .xenophon-silhouette { position:absolute; bottom:25%; left:48%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: xco-speak 3s ease-in-out infinite alternate; }
.scn-xenophon-calls-officers .ember { position:absolute; width:4px; height:4px; background: #ffa500; border-radius:50%; }
.scn-xenophon-calls-officers .ember1 { bottom:28%; left:45%; animation: xco-ember 3s linear infinite; }
.scn-xenophon-calls-officers .ember2 { bottom:30%; left:55%; animation: xco-ember 3s linear infinite 1.5s; }
@keyframes xco-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes xco-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes xco-fire { 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 xco-bob { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes xco-speak { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes xco-ember { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(10px,-20px) scale(0.5); opacity:0.5 } 100% { transform: translate(20px,-40px) scale(0); opacity:0 } }

.scn-xenophon-fate-if-captured { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%); }
.scn-xenophon-fate-if-captured .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 100%); animation: xfc-bg 15s ease-in-out infinite alternate; }
.scn-xenophon-fate-if-captured .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.5); }
.scn-xenophon-fate-if-captured .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,.5); }
.scn-xenophon-fate-if-captured .table { position:absolute; bottom:20%; left:35%; right:35%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: xfc-table 8s ease-in-out infinite alternate; }
.scn-xenophon-fate-if-captured .lamp { position:absolute; bottom:30%; left:48%; width:16px; height:20px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 5px #ff8c00, 0 0 40px 10px rgba(255,140,0,.5); animation: xfc-lamp 3s ease-in-out infinite alternate; }
.scn-xenophon-fate-if-captured .figure { position:absolute; bottom:22%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-xenophon-fate-if-captured .figure1 { left:40%; animation: xfc-figure 5s ease-in-out infinite; transform-origin: bottom; }
.scn-xenophon-fate-if-captured .figure2 { left:52%; animation: xfc-figure 5s ease-in-out infinite 1.5s; transform-origin: bottom; }
.scn-xenophon-fate-if-captured .shadow { position:absolute; bottom:20%; left:38%; width:30%; height:2%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.5) 50%, transparent 100%); animation: xfc-shadow 7s ease-in-out infinite alternate; }
@keyframes xfc-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes xfc-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes xfc-lamp { 0% { transform: scale(0.9); opacity:0.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.9 } }
@keyframes xfc-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes xfc-shadow { 0% { transform: scaleX(0.9) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

.scn-xenophon-truce-false-hope { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a2a2a 100%), radial-gradient(ellipse at 50% 70%, #4a3a3a 0%, transparent 70%); }
.scn-xenophon-truce-false-hope .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); animation: xtf-bg 18s ease-in-out infinite alternate; }
.scn-xenophon-truce-false-hope .column { position:absolute; top:0; width:8%; height:100%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 2px 0 5px rgba(0,0,0,.4); }
.scn-xenophon-truce-false-hope .column:nth-child(2) { left:20%; }
.scn-xenophon-truce-false-hope .column:nth-child(3) { right:20%; }
.scn-xenophon-truce-false-hope .arch { position:absolute; top:5%; left:15%; right:15%; height:40%; background: radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 70%); border-radius: 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: xtf-arch 12s ease-in-out infinite alternate; }
.scn-xenophon-truce-false-hope .window { position:absolute; top:15%; left:40%; right:40%; height:20%; background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%); clip-path: polygon(25% 0%, 75% 0%, 100% 25%, 100% 75%, 75% 100%, 25% 100%, 0% 75%, 0% 25%); box-shadow: 0 0 30px 10px #ff8c00; animation: xtf-window 5s ease-in-out infinite alternate; }
.scn-xenophon-truce-false-hope .table-map { position:absolute; bottom:20%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: xtf-table 10s ease-in-out infinite alternate; }
.scn-xenophon-truce-false-hope .figure { position:absolute; bottom:22%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: xtf-figure 6s ease-in-out infinite; }
.scn-xenophon-truce-false-hope .dust { position:absolute; top:30%; left:30%; width:2px; height:2px; background: rgba(255,255,255,0.1); border-radius:50%; animation: xtf-dust 20s linear infinite; }
@keyframes xtf-bg { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes xtf-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes xtf-window { 0% { transform: scale(0.9) rotate(-2deg); opacity:0.8 } 50% { transform: scale(1) rotate(2deg); opacity:1 } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.9 } }
@keyframes xtf-table { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes xtf-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes xtf-dust { 0% { transform: translate(0,0) scale(1); opacity:0 } 50% { transform: translate(20px,-10px) scale(2); opacity:0.3 } 100% { transform: translate(40px,-20px) scale(0); opacity:0 } }

.scn-xenophon-war-better { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 50%, #4a2a1a 0%, transparent 70%); }
.scn-xenophon-war-better .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 100%); animation: xwb-bg 14s ease-in-out infinite alternate; }
.scn-xenophon-war-better .podium { position:absolute; bottom:20%; left:40%; right:40%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-xenophon-war-better .figure-standing { position:absolute; bottom:30%; left:47%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: xwb-stand 4s ease-in-out infinite alternate; }
.scn-xenophon-war-better .arm-right { position:absolute; bottom:55%; left:53%; width:18px; height:4px; background: linear-gradient(90deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 2px; transform-origin: left; animation: xwb-arm 3s ease-in-out infinite alternate; }
.scn-xenophon-war-better .arm-left { position:absolute; bottom:55%; left:40%; width:15px; height:3px; background: linear-gradient(90deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 2px; transform-origin: right; animation: xwb-arm 3s ease-in-out infinite alternate-reverse; }
.scn-xenophon-war-better .torch { position:absolute; bottom:45%; left:53%; width:8px; height:12px; background: radial-gradient(circle, #ff4500 0%, #ff8c00 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 5px #ff8c00, 0 0 40px 10px rgba(255,140,0,.5); animation: xwb-torch 2s ease-in-out infinite alternate; }
.scn-xenophon-war-better .shadow { position:absolute; bottom:20%; left:40%; width:20%; height:4%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.6) 50%, transparent 100%); animation: xwb-shadow 6s ease-in-out infinite alternate; }
@keyframes xwb-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes xwb-stand { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes xwb-arm { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes xwb-torch { 0% { transform: scale(0.9) rotate(-3deg); opacity:0.8 } 50% { transform: scale(1.1) rotate(3deg); opacity:1 } 100% { transform: scale(0.95) rotate(-2deg); opacity:0.9 } }
@keyframes xwb-shadow { 0% { transform: scaleX(0.9) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* aristarchus-sells-soldiers - Dark, Overcast Harbor */
.scn-aristarchus-sells-soldiers {
  background: linear-gradient(180deg, #1a1e26 0%, #2b313a 40%, #3a404a 70%, #1f242c 100%), radial-gradient(ellipse at 50% 100%, #2b313a 0%, transparent 60%);
 }
.scn-aristarchus-sells-soldiers .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2b313a 0%, #434b56 40%, #5a6370 70%, #3a404a 100%); animation: arist-sky 12s ease-in-out infinite alternate; }
.scn-aristarchus-sells-soldiers .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1e26 0%, #15181f 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,.6); animation: arist-sea 8s ease-in-out infinite alternate; }
.scn-aristarchus-sells-soldiers .city-wall { position:absolute; bottom:40%; left:8%; width:40%; height:30%; background: linear-gradient(90deg, #11141a 0%, #1a1e26 100%); clip-path: polygon(0% 100%, 5% 10%, 15% 10%, 18% 30%, 30% 30%, 33% 10%, 60% 10%, 65% 60%, 100% 60%, 100% 100%); animation: arist-wall 20s ease-in-out infinite alternate; }
.scn-aristarchus-sells-soldiers .aristarchus { position:absolute; bottom:44%; left:35%; width:8%; height:28%; background: #0d0f13; clip-path: polygon(40% 0%, 60% 0%, 70% 20%, 65% 80%, 55% 100%, 45% 100%, 35% 80%, 30% 20%); box-shadow: -6px 0 12px rgba(0,0,0,.8); animation: arist-command 6s ease-in-out infinite; }
.scn-aristarchus-sells-soldiers .soldiers { position:absolute; bottom:42%; left:55%; width:30%; height:20%; background: #15181f; mask-image: repeating-linear-gradient(90deg, #000 0% 4%, transparent 4% 10%); -webkit-mask-image: repeating-linear-gradient(90deg, #000 0% 4%, transparent 4% 10%); mask-size: 18% 100%; animation: arist-sway 4s ease-in-out infinite; }
.scn-aristarchus-sells-soldiers .ship { position:absolute; bottom:38%; right:12%; width:20%; height:12%; background: #0d0f13; clip-path: polygon(10% 80%, 90% 80%, 100% 100%, 0% 100%); border-radius: 20% 20% 0 0 / 80% 80% 0 0; animation: arist-rock 15s ease-in-out infinite; }
.scn-aristarchus-sells-soldiers .fog { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(150,160,170,.15) 0%, transparent 70%); filter: blur(20px); animation: arist-fog 25s linear infinite alternate; }
@keyframes arist-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes arist-sea { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-2px) } }
@keyframes arist-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(.97) } 100% { transform: scaleY(1.02) } }
@keyframes arist-command { 0% { transform: translateX(0) } 30% { transform: translateX(2px) } 70% { transform: translateX(-1px) } 100% { transform: translateX(0) } }
@keyframes arist-sway { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(-2px) rotate(0deg) } }
@keyframes arist-rock { 0% { transform: rotate(-2deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-3deg) } }
@keyframes arist-fog { 0% { opacity:.3; transform: translateX(-10px) } 50% { opacity:.8; transform: translateX(20px) } 100% { opacity:.4; transform: translateX(-15px) } }

/* pharnabazus-switches-sides - Tense, Dim Interior */
.scn-pharnabazus-switches-sides {
  background: linear-gradient(135deg, #1a1412 0%, #2a201a 30%, #3a2e26 70%, #1a1412 100%), radial-gradient(ellipse at 20% 50%, #4a3a30 0%, transparent 50%);
 }
.scn-pharnabazus-switches-sides .walls-bg { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0%, transparent 5%, rgba(0,0,0,.1) 5%, rgba(0,0,0,.1) 6%); animation: pharn-walls 10s ease-in-out infinite alternate; }
.scn-pharnabazus-switches-sides .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a201a 0%, #1a1412 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-pharnabazus-switches-sides .table { position:absolute; bottom:15%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #4a3a30 0%, #2a201a 100%); box-shadow: 0 8px 20px rgba(0,0,0,.7); border-radius: 4px; }
.scn-pharnabazus-switches-sides .lamp { position:absolute; bottom:55%; left:45%; width:12px; height:20px; background: radial-gradient(circle at 50% 50%, #f0c068 0%, #c89650 40%, #8a6030 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 20px rgba(200,150,80,.5), 0 0 80px 40px rgba(200,150,80,.2); animation: pharn-lamp 2s ease-in-out infinite alternate; }
.scn-pharnabazus-switches-sides .figure-left { position:absolute; bottom:15%; left:22%; width:18%; height:40%; background: linear-gradient(90deg, #1a1412 0%, #2a211c 100%); clip-path: polygon(10% 20%, 60% 20%, 70% 40%, 80% 100%, 0% 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; animation: pharn-turn 6s ease-in-out infinite alternate; }
.scn-pharnabazus-switches-sides .figure-right { position:absolute; bottom:15%; right:22%; width:15%; height:40%; background: #2a201a; clip-path: polygon(30% 10%, 90% 10%, 100% 100%, 20% 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; animation: pharn-gesture 4s ease-in-out infinite alternate; }
.scn-pharnabazus-switches-sides .shadow { position:absolute; bottom:15%; left:30%; right:30%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.8) 0%, transparent 70%); filter: blur(8px); animation: pharn-shadow 8s ease-in-out infinite alternate; }
@keyframes pharn-walls { 0% { opacity:.5 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes pharn-lamp { 0% { box-shadow: 0 0 30px 15px rgba(200,150,80,.4), 0 0 60px 30px rgba(200,150,80,.1); } 50% { box-shadow: 0 0 60px 30px rgba(200,150,80,.6), 0 0 100px 50px rgba(200,150,80,.3); } 100% { box-shadow: 0 0 40px 20px rgba(200,150,80,.5), 0 0 80px 40px rgba(200,150,80,.2); } }
@keyframes pharn-turn { 0% { transform: rotateY(0deg) translateX(0); } 50% { transform: rotateY(8deg) translateX(4px); } 100% { transform: rotateY(-5deg) translateX(-2px); } }
@keyframes pharn-gesture { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-3deg); } 100% { transform: translateY(2px) rotate(2deg); } }
@keyframes pharn-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:.6; } 50% { transform: scaleX(1.2) scaleY(1.1); opacity:.9; } 100% { transform: scaleX(.9) scaleY(1); opacity:.5; } }

/* xenophon-sent-to-army - Tense, Overcast Landscape */
.scn-xenophon-sent-to-army {
  background: linear-gradient(180deg, #2f3632 0%, #4e5853 30%, #6b7670 60%, #4e5853 100%), radial-gradient(ellipse at 50% 0%, #6b7670 0%, transparent 70%);
 }
.scn-xenophon-sent-to-army .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1e1c 0%, #3a423e 50%, #5a6560 100%); animation: xen-sky 15s ease-in-out infinite alternate; }
.scn-xenophon-sent-to-army .horizon-line { position:absolute; bottom:30%; left:0; right:0; height:2px; background: #8a9590; filter: blur(1px); animation: xen-horizon 10s ease-in-out infinite; }
.scn-xenophon-sent-to-army .hills-far { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a423e 0%, #2a322e 100%); clip-path: polygon(0% 60%, 20% 20%, 40% 50%, 60% 10%, 80% 40%, 100% 0%, 100% 100%, 0% 100%); animation: xen-hills 25s ease-in-out infinite alternate; }
.scn-xenophon-sent-to-army .hills-near { position:absolute; bottom:15%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a322e 0%, #1a221e 100%); clip-path: polygon(0% 40%, 30% 80%, 50% 30%, 80% 70%, 100% 20%, 100% 100%, 0% 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-xenophon-sent-to-army .road { position:absolute; bottom:5%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, transparent 0%, #4a534e 50%, #111411 100%); clip-path: polygon(45% 0%, 55% 0%, 60% 100%, 40% 100%); filter: blur(1px); }
.scn-xenophon-sent-to-army .xenophon { position:absolute; bottom:25%; left:45%; width:6%; height:25%; background: #111411; clip-path: polygon(45% 0%, 55% 0%, 60% 20%, 55% 60%, 70% 70%, 65% 100%, 35% 100%, 30% 70%, 45% 60%, 40% 20%); animation: xen-orate 3s ease-in-out infinite alternate; }
.scn-xenophon-sent-to-army .soldiers { position:absolute; bottom:20%; left:25%; right:25%; height:15%; background: #1a221e; mask-image: repeating-linear-gradient(90deg, #000 0% 3%, transparent 3% 8%); -webkit-mask-image: repeating-linear-gradient(90deg, #000 0% 3%, transparent 3% 8%); mask-size: 15% 100%; animation: xen-gather 12s ease-in-out infinite alternate; }
.scn-xenophon-sent-to-army .wind-lines { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0%, transparent 3%, rgba(200,210,205,.1) 3%, rgba(200,210,205,.1) 3.2%, transparent 3.2%, transparent 6%); filter: blur(1px); animation: xen-wind 4s linear infinite; }
@keyframes xen-sky { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes xen-horizon { 0% { opacity:.3 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes xen-hills { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(.98) } }
@keyframes xen-orate { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes xen-gather { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(-5px) } }
@keyframes xen-wind { 0% { transform: translateX(-10px) } 50% { transform: translateX(15px) } 100% { transform: translateX(-20px) } }

/* seuthes-pursues-alliance - Tense, Dim Firelight */
.scn-seuthes-pursues-alliance {
  background: linear-gradient(180deg, #0d0806 0%, #1c0f0b 40%, #2b130c 70%, #3d1a12 100%), radial-gradient(ellipse at 50% 60%, #3d1a12 0%, transparent 50%);
 }
.scn-seuthes-pursues-alliance .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #2b130c 0%, #0d0806 70%); animation: seut-bg 20s ease-in-out infinite alternate; }
.scn-seuthes-pursues-alliance .hearth-glow { position:absolute; bottom:10%; left:25%; width:40%; height:30%; background: radial-gradient(ellipse at bottom center, #c86a3a 0%, #8a4020 40%, transparent 70%); filter: blur(15px); animation: seut-fire 2s ease-in-out infinite alternate; }
.scn-seuthes-pursues-alliance .hearth-core { position:absolute; bottom:8%; left:35%; width:10%; height:10%; background: radial-gradient(circle at 50% 100%, #f0a060 0%, #c86a3a 50%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: seut-core 1.5s ease-in-out infinite alternate; }
.scn-seuthes-pursues-alliance .seuthes { position:absolute; bottom:10%; left:20%; width:25%; height:55%; background: linear-gradient(90deg, #1c0f0b 0%, #2a1812 100%); clip-path: polygon(0% 20%, 60% 20%, 100% 50%, 90% 100%, 0% 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; animation: seut-persuade 4s ease-in-out infinite alternate; }
.scn-seuthes-pursues-alliance .xenophon { position:absolute; bottom:10%; right:15%; width:15%; height:60%; background: #0d0806; clip-path: polygon(20% 0%, 80% 0%, 80% 70%, 60% 90%, 60% 100%, 20% 100%, 20% 80%, 40% 70%, 40% 20%); animation: seut-xen 6s ease-in-out infinite alternate; }
.scn-seuthes-pursues-alliance .scroll { position:absolute; bottom:0%; left:45%; width:8%; height:4%; background: #5a4030; border-radius: 10% 10% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
@keyframes seut-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes seut-fire { 0% { transform: scale(1) scaleX(1); opacity:.6; } 50% { transform: scale(1.1) scaleX(1.2); opacity:1; } 100% { transform: scale(.95) scaleX(.9); opacity:.7; } }
@keyframes seut-core { 0% { transform: scale(1); } 50% { transform: scale(1.3); } 100% { transform: scale(.9); } }
@keyframes seut-persuade { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(6px) translateY(-4px) rotate(4deg); } 100% { transform: translateX(-2px) translateY(2px) rotate(-2deg); } }
@keyframes seut-xen { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }

.scn-tissaphernes-why-not-destroy {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%), radial-gradient(ellipse at 50% 80%, #3a2a24 0%, transparent 80%);
}
.scn-tissaphernes-why-not-destroy .tnd-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1614 0%, #0a0808 100%);
  animation: tnd-bg 8s ease-in-out infinite alternate;
}
.scn-tissaphernes-why-not-destroy .tnd-tent-left {
  position: absolute; left: 0; top: 0; width: 45%; height: 100%;
  background: linear-gradient(135deg, #3a2a24 0%, #2a1e1a 100%);
  clip-path: polygon(0 0, 100% 0, 50% 100%, 0 100%);
  animation: tnd-tent 12s ease-in-out infinite alternate;
}
.scn-tissaphernes-why-not-destroy .tnd-tent-right {
  position: absolute; right: 0; top: 0; width: 45%; height: 100%;
  background: linear-gradient(-135deg, #3a2a24 0%, #2a1e1a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 100%);
  animation: tnd-tent 12s ease-in-out infinite alternate-reverse;
}
.scn-tissaphernes-why-not-destroy .tnd-table {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 12%;
  background: #4a3a30; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tnd-table 6s ease-in-out infinite alternate;
}
.scn-tissaphernes-why-not-destroy .tnd-lamp {
  position: absolute; bottom: 45%; left: 45%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #ffa040;
  animation: tnd-flicker 0.3s infinite alternate;
}
.scn-tissaphernes-why-not-destroy .tnd-figure-sit {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 60px;
  background: #1a1210; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom; animation: tnd-sit 4s ease-in-out infinite;
}
.scn-tissaphernes-why-not-destroy .tnd-figure-stand {
  position: absolute; bottom: 30%; right: 30%; width: 25px; height: 70px;
  background: #1a1210; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom; animation: tnd-stand 5s ease-in-out infinite;
}
.scn-tissaphernes-why-not-destroy .tnd-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 70%);
  animation: tnd-shadow 6s ease-in-out infinite alternate;
}
@keyframes tnd-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes tnd-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes tnd-table { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes tnd-flicker { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.7; transform: scale(0.95) } }
@keyframes tnd-sit { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tnd-stand { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes tnd-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }

.scn-clearchus-impressed {
  background: linear-gradient(180deg, #1f1a16 0%, #140f0c 100%), radial-gradient(ellipse at 30% 50%, #2a221e 0%, transparent 70%);
}
.scn-clearchus-impressed .ci-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1815 0%, #0f0c0a 100%);
  animation: ci-bg 12s ease-in-out infinite alternate;
}
.scn-clearchus-impressed .ci-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a20 0%, #1f1814 100%);
  animation: ci-floor 20s ease-in-out infinite alternate;
}
.scn-clearchus-impressed .ci-fire {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 60%, #ffa040 0%, #ff6000 40%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(255,160,64,0.3);
  animation: ci-fire 5s ease-in-out infinite alternate;
}
.scn-clearchus-impressed .ci-figure-left {
  position: absolute; bottom: 25%; left: 15%; width: 35px; height: 55px;
  background: #1a1412; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ci-fig-left 8s ease-in-out infinite;
}
.scn-clearchus-impressed .ci-figure-right {
  position: absolute; bottom: 25%; right: 15%; width: 30px; height: 50px;
  background: #1a1412; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(-1); animation: ci-fig-right 9s ease-in-out infinite;
}
.scn-clearchus-impressed .ci-cushion {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 15px;
  background: #3a2a20; border-radius: 20px;
  animation: ci-cushion 15s linear infinite;
}
@keyframes ci-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ci-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ci-fire { 0% { transform: scale(1); opacity: 0.9 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.8 } }
@keyframes ci-fig-left { 0% { transform: rotate(0) translateX(0) } 50% { transform: rotate(-2deg) translateX(3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes ci-fig-right { 0% { transform: rotate(0) translateX(0) } 50% { transform: rotate(2deg) translateX(-2px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes ci-cushion { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }

.scn-clearchus-dines-with-tissaphernes {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%), radial-gradient(ellipse at 50% 60%, #241c18 0%, transparent 80%);
}
.scn-clearchus-dines-with-tissaphernes .cdt-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1815 0%, #0f0c0a 100%);
  animation: cdt-bg 10s ease-in-out infinite alternate;
}
.scn-clearchus-dines-with-tissaphernes .cdt-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e18 0%, #140c08 100%);
  animation: cdt-floor 15s linear infinite;
}
.scn-clearchus-dines-with-tissaphernes .cdt-table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: cdt-table 12s ease-in-out infinite;
}
.scn-clearchus-dines-with-tissaphernes .cdt-couch-left {
  position: absolute; bottom: 20%; left: 5%; width: 25%; height: 25%;
  background: linear-gradient(135deg, #3a2820 0%, #1e1410 100%);
  border-radius: 20% 20% 0 0; transform: rotate(5deg);
  animation: cdt-couch 8s ease-in-out infinite alternate;
}
.scn-clearchus-dines-with-tissaphernes .cdt-couch-right {
  position: absolute; bottom: 20%; right: 5%; width: 25%; height: 25%;
  background: linear-gradient(225deg, #3a2820 0%, #1e1410 100%);
  border-radius: 20% 20% 0 0; transform: rotate(-5deg);
  animation: cdt-couch 8s ease-in-out infinite alternate-reverse;
}
.scn-clearchus-dines-with-tissaphernes .cdt-food {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 6%;
  background: #6a4a30; border-radius: 20% 20% 0 0;
  box-shadow: inset 0 2px 4px rgba(255,200,100,0.3);
  animation: cdt-food 20s linear infinite;
}
.scn-clearchus-dines-with-tissaphernes .cdt-lamp {
  position: absolute; bottom: 35%; left: 45%; width: 10px; height: 15px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%);
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.4);
  animation: cdt-lamp 4s ease-in-out infinite alternate;
}
.scn-clearchus-dines-with-tissaphernes .cdt-servant {
  position: absolute; bottom: 15%; left: 50%; width: 20px; height: 45px;
  background: #1a1412; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(-50%); animation: cdt-servant 6s ease-in-out infinite;
}
@keyframes cdt-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cdt-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cdt-table { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cdt-couch { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(3deg) scale(0.98) } 100% { transform: rotate(5deg) scale(1) } }
@keyframes cdt-food { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cdt-lamp { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cdt-servant { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }

.scn-menon-suspected {
  background: linear-gradient(180deg, #0a0a12 0%, #14101e 100%), radial-gradient(ellipse at 80% 50%, #1a1628 0%, transparent 70%);
}
.scn-menon-suspected .ms-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0e1a 0%, #050412 100%);
  animation: ms-bg 8s ease-in-out infinite alternate;
}
.scn-menon-suspected .ms-pillar {
  position: absolute; left: 20%; top: 0; width: 10%; height: 100%;
  background: linear-gradient(90deg, #1a1620 0%, #2a2430 50%, #1a1620 100%);
  box-shadow: 4px 0 8px rgba(0,0,0,0.8);
  animation: ms-pillar 10s linear infinite;
}
.scn-menon-suspected .ms-figure-fore {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 60px;
  background: #0a0810; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom; animation: ms-fore 3s ease-in-out infinite;
}
.scn-menon-suspected .ms-figure-back {
  position: absolute; bottom: 25%; right: 20%; width: 25px; height: 50px;
  background: #1a1420; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom; animation: ms-back 5s ease-in-out infinite alternate;
}
.scn-menon-suspected .ms-lamp {
  position: absolute; top: 40%; right: 15%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffa040 0%, #c07020 40%, transparent 70%);
  box-shadow: 0 0 30px 15px rgba(255,160,64,0.3);
  animation: ms-lamp 0.4s infinite alternate;
}
.scn-menon-suspected .ms-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.9) 0%, transparent 60%);
  animation: ms-shadow 4s ease-in-out infinite alternate;
}
@keyframes ms-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ms-pillar { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ms-fore { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ms-back { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ms-lamp { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ms-shadow { 0% { transform: scale(1); opacity: 0.5 } 50% { transform: scale(1.1); opacity: 0.8 } 100% { transform: scale(1); opacity: 0.5 } }

.scn-summary-previous-book { background: linear-gradient(180deg, #2c1a0e 0%, #4a2a1a 40%, #3a1a0a 100%), radial-gradient(ellipse at 70% 30%, #6a4a2a 0%, transparent 60%); }
.scn-summary-previous-book .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2c1a0e, #1a0e06); }
.scn-summary-previous-book .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e06, #2c1a0e); }
.scn-summary-previous-book .desk { position:absolute; bottom:25%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #5a3a1a, #3a2010); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-summary-previous-book .book { position:absolute; bottom:30%; left:35%; width:25%; height:12%; background: linear-gradient(180deg, #6a4a2a, #4a2a1a); border-radius: 10% 10% 2% 2% / 40% 40% 10% 10%; transform-origin: left center; animation: spb-flip 8s ease-in-out infinite; }
.scn-summary-previous-book .lamp { position:absolute; bottom:40%; right:25%; width:8%; height:12%; background: radial-gradient(circle, #c09060 0%, #a07040 60%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 15px rgba(192,144,96,.5); animation: spb-glow 3s ease-in-out infinite alternate; }
.scn-summary-previous-book .chair { position:absolute; bottom:23%; left:10%; width:15%; height:20%; background: linear-gradient(180deg, #3a2010, #1a0e06); border-radius: 60% 60% 30% 30% / 70% 70% 40% 40%; animation: spb-chair 6s ease-in-out infinite; }
.scn-summary-previous-book .window { position:absolute; top:10%; left:5%; width:20%; height:25%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%); border: 4px solid #4a2a1a; border-radius: 2%; box-shadow: inset 0 0 10px #1a1a3a; }
.scn-summary-previous-book .curtain { position:absolute; top:8%; left:4%; width:22%; height:28%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 0 0; transform-origin: top center; animation: spb-sway 12s ease-in-out infinite alternate; }
@keyframes spb-flip { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.3) scaleY(1.1); } 100% { transform: scaleX(1); } }
@keyframes spb-glow { 0% { opacity: .7; box-shadow: 0 0 20px 8px rgba(192,144,96,.3); } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(192,144,96,.6); } 100% { opacity: .8; box-shadow: 0 0 30px 10px rgba(192,144,96,.4); } }
@keyframes spb-chair { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } }
@keyframes spb-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) scaleX(0.98); } 100% { transform: rotate(-2deg); } }

.scn-generals-meet-dawn { background: linear-gradient(180deg, #1a3a5a 0%, #4a6a7a 30%, #c0a060 70%, #e0c080 100%), radial-gradient(ellipse at 40% 0%, #ffd080 0%, transparent 50%); }
.scn-generals-meet-dawn .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a4a6a 0%, #c0a060 100%); }
.scn-generals-meet-dawn .hills-dawn { position:absolute; bottom:35%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; }
.scn-generals-meet-dawn .tent { position:absolute; bottom:25%; left:30%; width:25%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); }
.scn-generals-meet-dawn .general-a { position:absolute; bottom:20%; left:20%; width:12%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: gmd-fig-a 4s ease-in-out infinite alternate; }
.scn-generals-meet-dawn .general-b { position:absolute; bottom:20%; right:20%; width:12%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: gmd-fig-b 4.5s ease-in-out infinite alternate; }
.scn-generals-meet-dawn .fire { position:absolute; bottom:28%; left:45%; width:8%; height:10%; background: radial-gradient(circle, #ffa040 0%, #e06020 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,160,64,.6); animation: gmd-fire 2s ease-in-out infinite alternate; }
.scn-generals-meet-dawn .banner { position:absolute; bottom:30%; left:38%; width:6%; height:20%; background: #4a2a1a; border-radius: 0 0 20% 20%; transform-origin: top; animation: gmd-flag 3s ease-in-out infinite alternate; }
@keyframes gmd-fig-a { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-3deg); } }
@keyframes gmd-fig-b { 0% { transform: rotate(2deg); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(2deg); } }
@keyframes gmd-fire { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: .7; } }
@keyframes gmd-flag { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-5deg); } }

.scn-news-of-cyrus-death { background: linear-gradient(180deg, #4a7a9a 0%, #80a0c0 40%, #e0c080 70%, #f0e0a0 100%), radial-gradient(ellipse at 60% 20%, #ffe0a0 0%, transparent 50%); }
.scn-news-of-cyrus-death .sky-bright { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #80b0d0 0%, #e0c080 100%); }
.scn-news-of-cyrus-death .sun { position:absolute; top:5%; left:50%; width:12%; padding-bottom:12%; background: radial-gradient(circle, #fff0c0 0%, #e0c040 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,240,192,.5); animation: ncd-sun 8s ease-in-out infinite alternate; }
.scn-news-of-cyrus-death .ground-dry { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); }
.scn-news-of-cyrus-death .messenger { position:absolute; bottom:15%; left:40%; width:14%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ncd-messenger 6s ease-in-out infinite; }
.scn-news-of-cyrus-death .shadow-cast { position:absolute; bottom:15%; left:35%; width:25%; height:4%; background: #1a1a1a; border-radius: 50%; opacity: .4; animation: ncd-shadow 6s ease-in-out infinite; }
.scn-news-of-cyrus-death .road { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(0deg, #5a3a1a, #8a6a3a 50%, #5a3a1a); border-radius: 0% 0% 50% 50% / 0% 0% 20% 20%; }
.scn-news-of-cyrus-death .cloud-drift { position:absolute; top:15%; left:10%; width:20%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(6px); animation: ncd-cloud 30s linear infinite; }
@keyframes ncd-sun { 0% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: .8; } }
@keyframes ncd-messenger { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-2deg); } 50% { transform: translateY(5px) rotate(2deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ncd-shadow { 0% { transform: scaleX(1); opacity: .3; } 50% { transform: scaleX(1.2); opacity: .5; } 100% { transform: scaleX(0.9); opacity: .4; } }
@keyframes ncd-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

.scn-generals-distressed { background: linear-gradient(180deg, #4a7a9a 0%, #80a0c0 40%, #c0a060 70%, #e0c080 100%), radial-gradient(ellipse at 20% 50%, #c0a060 0%, transparent 60%); }
.scn-generals-distressed .sky-bright { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #80b0d0 0%, #c0a060 100%); }
.scn-generals-distressed .ground-dry { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%); }
.scn-generals-distressed .general-x { position:absolute; bottom:15%; left:15%; width:12%; height:28%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-gesture 4s ease-in-out infinite alternate; }
.scn-generals-distressed .general-y { position:absolute; bottom:15%; left:35%; width:12%; height:28%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-gesture 4.2s ease-in-out infinite alternate; }
.scn-generals-distressed .general-z { position:absolute; bottom:15%; left:55%; width:12%; height:28%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gds-gesture 3.8s ease-in-out infinite alternate; }
.scn-generals-distressed .banner-droop { position:absolute; bottom:30%; left:70%; width:4%; height:25%; background: #4a2a1a; border-radius: 0 0 20% 20%; transform-origin: top; animation: gds-banner 5s ease-in-out infinite; }
.scn-generals-distressed .spear-down { position:absolute; bottom:20%; left:65%; width:2%; height:15%; background: #3a2a1a; border-radius: 50%; transform: rotate(30deg); animation: gds-spear 6s ease-in-out infinite alternate; }
@keyframes gds-gesture { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-5px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes gds-banner { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(0.8); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes gds-spear { 0% { transform: rotate(30deg); } 50% { transform: rotate(20deg) translateY(5px); } 100% { transform: rotate(30deg); } }

.scn-odrysian-shamed {
  background: linear-gradient(180deg, #2a2040 0%, #604840 40%, #a08060 100%), radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 70%);
}
.scn-odrysian-shamed .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a3a6a 0%, #9a7a5a 100%); animation: odr-sky 15s ease-in-out infinite alternate; }
.scn-odrysian-shamed .distant-hills { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,.4); animation: odr-hills 20s ease-in-out infinite; }
.scn-odrysian-shamed .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-odrysian-shamed .figure-shame { position:absolute; bottom:20%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: odr-shame 4s ease-in-out infinite; }
.scn-odrysian-shamed .shadow-exaggerated { position:absolute; bottom:18%; left:42%; width:60px; height:10px; background: rgba(0,0,0,.3); border-radius: 50%; transform: skewX(-20deg); animation: odr-shadow 4s ease-in-out infinite; }
.scn-odrysian-shamed .mist { position:absolute; bottom:40%; width:100px; height:15px; background: radial-gradient(ellipse, rgba(200,180,160,.2), transparent); filter: blur(8px); animation: odr-mist 25s linear infinite; }
.scn-odrysian-shamed .mist-a { left:10%; animation-delay:0s; }
.scn-odrysian-shamed .mist-b { right:15%; width:80px; animation-delay:-10s; animation-direction: reverse; }
@keyframes odr-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes odr-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes odr-shame { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 30% { transform: translateX(-50%) rotate(-10deg) scaleY(0.9); } 60% { transform: translateX(-50%) rotate(10deg) scaleY(0.95); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes odr-shadow { 0%,100% { transform: skewX(-20deg) scaleX(1); opacity:.3; } 50% { transform: skewX(-20deg) scaleX(1.1); opacity:.5; } }
@keyframes odr-mist { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-medosades-persists {
  background: linear-gradient(180deg, #2a2030 0%, #504030 30%, #806050 70%, #a09070 100%), radial-gradient(ellipse at 30% 0%, #e0b060 0%, transparent 60%);
}
.scn-medosades-persists .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a4a 0%, #7a5a3a 100%); animation: med-sky 18s ease-in-out infinite alternate; }
.scn-medosades-persists .sunrise { position:absolute; top:20%; right:30%; width:40px; height:40px; background: radial-gradient(circle, #ffd080, #e0a050 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,208,128,.5); animation: med-sun 12s ease-in-out infinite; }
.scn-medosades-persists .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-medosades-persists .figure-medosades { position:absolute; bottom:20%; left:40%; width:25px; height:55px; background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: med-gesture 3s ease-in-out infinite; }
.scn-medosades-persists .staff { position:absolute; bottom:22%; left:38%; width:4px; height:70px; background: #2a1a0a; border-radius: 2px; transform: rotate(15deg); animation: med-staff 3s ease-in-out infinite; }
.scn-medosades-persists .tent { position:absolute; bottom:30%; right:15%; width:80px; height:60px; background: linear-gradient(135deg, #4a3a2a, #2a1a0a); clip-path: polygon(20% 100%, 80% 100%, 100% 30%, 50% 0%, 0% 30%); animation: med-tent 20s ease-in-out infinite; }
.scn-medosades-persists .dust { position:absolute; bottom:15%; width:20px; height:20px; background: radial-gradient(circle, rgba(180,140,100,.3), transparent 70%); border-radius:50%; filter: blur(4px); animation: med-dust 8s ease-in-out infinite; }
.scn-medosades-persists .dust-a { left:30%; animation-delay:0s; }
.scn-medosades-persists .dust-b { left:55%; animation-delay:-4s; }
@keyframes med-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes med-sun { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-5px); } }
@keyframes med-gesture { 0% { transform: rotate(0deg); } 25% { transform: rotate(-15deg) translateX(-5px); } 50% { transform: rotate(15deg) translateX(5px); } 75% { transform: rotate(-10deg) translateX(-3px); } 100% { transform: rotate(0deg); } }
@keyframes med-staff { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(20deg) translateY(-2px); } }
@keyframes med-tent { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes med-dust { 0%,100% { transform: translateY(0) scale(1); opacity:0; } 50% { transform: translateY(-20px) scale(2); opacity:.6; } }

.scn-xenophon-advises-laconians {
  background: linear-gradient(180deg, #1a2030 0%, #3a2a4a 30%, #605040 70%, #807060 100%), radial-gradient(ellipse at 70% 0%, #d0a060 0%, transparent 60%);
}
.scn-xenophon-advises-laconians .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a3a 0%, #6a4a2a 100%); animation: xen-sky 20s ease-in-out infinite alternate; }
.scn-xenophon-advises-laconians .campfire { position:absolute; bottom:35%; left:25%; width:30px; height:30px; background: radial-gradient(circle, #ff8040, #ff6020 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(255,128,64,.6); animation: xen-fire 2s ease-in-out infinite; }
.scn-xenophon-advises-laconians .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1a0a, #0a0500 100%); }
.scn-xenophon-advises-laconians .figure-xenophon { position:absolute; bottom:20%; left:30%; width:22px; height:52px; background: linear-gradient(180deg, #1a1020, #0a0810); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xen-speak 5s ease-in-out infinite; }
.scn-xenophon-advises-laconians .figure-laconian-a { position:absolute; bottom:20%; left:45%; width:20px; height:48px; background: linear-gradient(180deg, #1a1030, #0a0818); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xen-listen 5s ease-in-out infinite; animation-delay:-2s; }
.scn-xenophon-advises-laconians .figure-laconian-b { position:absolute; bottom:20%; left:55%; width:20px; height:48px; background: linear-gradient(180deg, #1a1030, #0a0818); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xen-listen 5s ease-in-out infinite; animation-delay:-4s; }
.scn-xenophon-advises-laconians .tent-close { position:absolute; bottom:30%; right:10%; width:70px; height:50px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); clip-path: polygon(30% 100%, 70% 100%, 90% 20%, 50% 0%, 10% 20%); animation: xen-tent 15s ease-in-out infinite; }
.scn-xenophon-advises-laconians .smoke { position:absolute; bottom:40%; left:20%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,200,180,.2), transparent); filter: blur(6px); animation: xen-smoke 8s linear infinite; }
.scn-xenophon-advises-laconians .smoke-a { animation-delay:0s; }
.scn-xenophon-advises-laconians .smoke-b { left:28%; animation-delay:-4s; }
@keyframes xen-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes xen-fire { 0%,100% { transform: scale(1) rotate(0deg); opacity:.8; } 50% { transform: scale(1.2) rotate(5deg); opacity:1; } }
@keyframes xen-speak { 0% { transform: rotate(0deg); } 25% { transform: rotate(-8deg) translateY(-2px); } 50% { transform: rotate(8deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes xen-listen { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes xen-tent { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes xen-smoke { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-30px) scale(1.5); opacity:0; } 100% { transform: translateY(-60px) scale(2); opacity:0; } }

.scn-charminus-confronts {
  background: linear-gradient(180deg, #1a1a2a 0%, #3a2a3a 40%, #6a5040 80%, #8a7060 100%), radial-gradient(ellipse at 50% 0%, #e0a060 0%, transparent 70%);
}
.scn-charminus-confronts .dawn-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a1a3a 0%, #6a4a3a 100%); animation: cha-sky 16s ease-in-out infinite alternate; }
.scn-charminus-confronts .sun-glow { position:absolute; top:10%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080, #e0a050 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 15px rgba(255,208,128,.4); animation: cha-sun 20s ease-in-out infinite; }
.scn-charminus-confronts .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); }
.scn-charminus-confronts .figure-charminus { position:absolute; bottom:20%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #1a1020, #0a0810); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cha-charm 4s ease-in-out infinite; }
.scn-charminus-confronts .figure-medosades-submit { position:absolute; bottom:20%; left:55%; width:20px; height:48px; background: linear-gradient(180deg, #1a0a10, #0a0508); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cha-submit 4s ease-in-out infinite; }
.scn-charminus-confronts .archway { position:absolute; bottom:30%; left:45%; width:40px; height:70px; border: 3px solid #5a3a2a; border-radius: 50% 50% 0 0 / 40% 40% 0 0; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: cha-arch 15s ease-in-out infinite; }
.scn-charminus-confronts .shadow-arch { position:absolute; bottom:25%; left:45%; width:30px; height:40px; background: rgba(0,0,0,.3); border-radius: 50% 50% 0 0 / 40% 40% 0 0; animation: cha-shadow 5s ease-in-out infinite; }
@keyframes cha-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes cha-sun { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } }
@keyframes cha-charm { 0% { transform: rotate(0deg); } 25% { transform: rotate(-5deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes cha-submit { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(0.9); } }
@keyframes cha-arch { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cha-shadow { 0%,100% { opacity:.3; } 50% { opacity:.6; } }

.scn-clearchus-responds-to-tissaphernes {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%, #0a0500 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-clearchus-responds-to-tissaphernes .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 50%, #2a1a0a 100%); animation: ct-bg 12s ease-in-out infinite alternate;
}
.scn-clearchus-responds-to-tissaphernes .torch-left {
  position: absolute; bottom: 30%; left: 20%; width: 10px; height: 20px; background: linear-gradient(180deg, #ffa060 0%, #ff6030 50%, #4a1a00 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 15px rgba(255,96,48,0.5); animation: ct-torch 2s ease-in-out infinite alternate;
}
.scn-clearchus-responds-to-tissaphernes .torch-glow {
  position: absolute; bottom: 25%; left: 15%; width: 80px; height: 80px; background: radial-gradient(circle, rgba(255,160,96,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: ct-glow 3s ease-in-out infinite alternate;
}
.scn-clearchus-responds-to-tissaphernes .figure-clearchus {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ct-fig-l 4s ease-in-out infinite;
}
.scn-clearchus-responds-to-tissaphernes .figure-tissaphernes {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 65px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ct-fig-r 4s ease-in-out infinite reverse;
}
.scn-clearchus-responds-to-tissaphernes .shadow {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%); filter: blur(4px); animation: ct-shadow 5s ease-in-out infinite;
}
@keyframes ct-bg { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes ct-torch { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.05) scaleX(0.95); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.7; } }
@keyframes ct-glow { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.5; } 100% { transform: scale(0.9); opacity: 0.2; } }
@keyframes ct-fig-l { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ct-fig-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ct-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.5; } }

.scn-tissaphernes-promises-boone {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 50%, #0a0805 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-tissaphernes-promises-boone .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #3a2a1a 0%, #1a120a 50%, #3a2a1a 100%); animation: tp-bg 15s ease-in-out infinite alternate;
}
.scn-tissaphernes-promises-boone .hearth {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 50px; height: 30px; background: linear-gradient(180deg, #ffa060 0%, #ff6030 50%, #3a1a00 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 60px 20px rgba(255,96,48,0.4); animation: tp-hearth 4s ease-in-out infinite alternate;
}
.scn-tissaphernes-promises-boone .hearth-glow {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 100px; background: radial-gradient(circle, rgba(255,160,96,0.3) 0%, transparent 60%); border-radius: 50%; filter: blur(15px); animation: tp-glow 5s ease-in-out infinite alternate;
}
.scn-tissaphernes-promises-boone .figure-tissaphernes {
  position: absolute; bottom: 25%; left: 35%; width: 35px; height: 65px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tp-fig 8s ease-in-out infinite;
}
.scn-tissaphernes-promises-boone .arm-raised {
  position: absolute; bottom: 60%; left: 38%; width: 8px; height: 25px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%; transform: rotate(-30deg); transform-origin: bottom center; animation: tp-arm 3s ease-in-out infinite alternate;
}
.scn-tissaphernes-promises-boone .shadow {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(3px); animation: tp-shadow 10s ease-in-out infinite;
}
@keyframes tp-bg { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes tp-hearth { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05) rotate(3deg); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.7; } }
@keyframes tp-glow { 0% { transform: scale(1); opacity: 0.2; } 50% { transform: scale(1.3); opacity: 0.4; } 100% { transform: scale(0.8); opacity: 0.15; } }
@keyframes tp-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tp-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-35deg); } }
@keyframes tp-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-oaths-exchanged {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a120a 50%, #0a0805 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-oaths-exchanged .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a0a 0%, #1a120a 50%, #2a1a0a 100%); animation: oe-bg 12s ease-in-out infinite alternate;
}
.scn-oaths-exchanged .altar {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 60px; height: 20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: oe-altar 6s ease-in-out infinite alternate;
}
.scn-oaths-exchanged .glow {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 100px; height: 100px; background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 60%); border-radius: 50%; filter: blur(10px); animation: oe-glow 8s ease-in-out infinite alternate;
}
.scn-oaths-exchanged .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: oe-fig-l 6s ease-in-out infinite;
}
.scn-oaths-exchanged .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: oe-fig-r 6s ease-in-out infinite reverse;
}
.scn-oaths-exchanged .hands {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); width: 20px; height: 15px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; animation: oe-hands 4s ease-in-out infinite alternate;
}
.scn-oaths-exchanged .shadow {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%); filter: blur(3px); animation: oe-shadow 8s ease-in-out infinite;
}
@keyframes oe-bg { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes oe-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes oe-glow { 0% { transform: translateX(-50%) scale(1); opacity: 0.2; } 50% { transform: translateX(-50%) scale(1.1); opacity: 0.4; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.15; } }
@keyframes oe-fig-l { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-1px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes oe-fig-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes oe-hands { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.1) rotate(5deg); } 100% { transform: translateX(-50%) scaleX(0.9); } }
@keyframes oe-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-tissaphernes-returns-to-king {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a120a 50%, #0a0805 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-tissaphernes-returns-to-king .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a0a 0%, #1a120a 50%, #2a1a0a 100%); animation: trk-bg 14s ease-in-out infinite alternate;
}
.scn-tissaphernes-returns-to-king .doorway {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 60px; height: 80px; background: #0a0500; border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: trk-door 8s ease-in-out infinite alternate;
}
.scn-tissaphernes-returns-to-king .figure-departing {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%); width: 28px; height: 60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: trk-fig 6s ease-in-out infinite;
}
.scn-tissaphernes-returns-to-king .torch-left {
  position: absolute; bottom: 30%; left: 15%; width: 10px; height: 20px; background: linear-gradient(180deg, #ffa060 0%, #ff6030 50%, #4a1a00 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,96,48,0.5); animation: trk-torch 3s ease-in-out infinite alternate;
}
.scn-tissaphernes-returns-to-king .torch-glow {
  position: absolute; bottom: 25%; left: 10%; width: 80px; height: 80px; background: radial-gradient(circle, rgba(255,160,96,0.2) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: trk-glow 4s ease-in-out infinite alternate;
}
.scn-tissaphernes-returns-to-king .shadow {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 10px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.7) 0%, transparent 70%); filter: blur(3px); animation: trk-shadow 7s ease-in-out infinite;
}
@keyframes trk-bg { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes trk-door { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes trk-fig { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes trk-torch { 0% { transform: scaleY(1); opacity: 0.7; } 50% { transform: scaleY(1.05) scaleX(0.95); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.6; } }
@keyframes trk-glow { 0% { transform: scale(1); opacity: 0.2; } 50% { transform: scale(1.2); opacity: 0.4; } 100% { transform: scale(0.8); opacity: 0.15; } }
@keyframes trk-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene 1: merchants-carry-tale (mct) - Tense, Overcast, Wide Horizon */
.scn-merchants-carry-tale {
  background:
    linear-gradient(180deg, #3b4d5c 0%, #607080 40%, #8a9ca8 100%),
    radial-gradient(ellipse at 50% 100%, #4a5b6b 0%, transparent 70%);
}
.scn-merchants-carry-tale .mct-overcast-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 100%);
  animation: mct-haze 15s ease-in-out infinite alternate;
}
.scn-merchants-carry-tale .mct-cloud-a {
  position: absolute; top: 12%; left: -20%; width: 130%; height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(180,195,210,0.6) 30%, rgba(140,160,180,0.4) 70%, transparent 100%);
  filter: blur(12px);
  animation: mct-drift-a 45s linear infinite;
}
.scn-merchants-carry-tale .mct-cloud-b {
  position: absolute; top: 25%; left: -10%; width: 120%; height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(160,175,190,0.5) 40%, rgba(120,140,160,0.3) 80%, transparent 100%);
  filter: blur(18px);
  animation: mct-drift-b 60s linear infinite reverse;
}
.scn-merchants-carry-tale .mct-cloud-c {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,210,220,0.7) 50%, transparent 100%);
  filter: blur(8px);
  animation: mct-drift-c 35s linear infinite;
}
.scn-merchants-carry-tale .mct-hills {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 50%, #0d1a1a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: mct-hills-swell 20s ease-in-out infinite alternate;
}
.scn-merchants-carry-tale .mct-path {
  position: absolute; bottom: 10%; left: 10%; right: 40%; height: 15%;
  background: linear-gradient(90deg, #4a5a4a 0%, #5a6a5a 30%, #6a7a6a 70%, #5a6a5a 100%);
  border-radius: 20% 80% 50% 50% / 50% 100% 50% 50%;
  transform: perspective(500px) rotateX(40deg);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
}
.scn-merchants-carry-tale .mct-gate {
  position: absolute; bottom: 25%; left: 65%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 15px 30px rgba(0,0,0,0.5);
  transform: perspective(800px) rotateY(-15deg);
}
.scn-merchants-carry-tale .mct-figure-a {
  position: absolute; bottom: 14%; left: 25%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mct-walk-a 6s ease-in-out infinite;
}
.scn-merchants-carry-tale .mct-figure-b {
  position: absolute; bottom: 15%; left: 35%; width: 14px; height: 26px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mct-walk-b 7s ease-in-out infinite 1s;
}
@keyframes mct-haze { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes mct-drift-a { 0% { transform: translateX(-30%); } 50% { transform: translateX(10%); } 100% { transform: translateX(50%); } }
@keyframes mct-drift-b { 0% { transform: translateX(-20%); } 50% { transform: translateX(15%); } 100% { transform: translateX(-10%); } }
@keyframes mct-drift-c { 0% { transform: translateX(0); } 50% { transform: translateX(-15%); } 100% { transform: translateX(10%); } }
@keyframes mct-hills-swell { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.01); } 100% { transform: translateY(2px) scale(0.99); } }
@keyframes mct-walk-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes mct-walk-b { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-6px) rotate(-1deg); } 50% { transform: translateX(-12px) rotate(2deg); } 75% { transform: translateX(-18px) rotate(-2deg); } 100% { transform: translateX(-24px) rotate(0deg); } }

/* Scene 2: timasion-promises-pay (tpp) - Tense, Dim Interior, Cutaway */
.scn-timasion-promises-pay {
  background:
    linear-gradient(180deg, #1c1410 0%, #2c201a 40%, #3d2e26 100%),
    radial-gradient(ellipse at 50% 60%, #4a3525 0%, transparent 70%);
}
.scn-timasion-promises-pay .tpp-tent-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1f18 0%, #3d2e26 25%, #2a1f18 50%, #3d2e26 75%, #2a1f18 100%);
  background-size: 200% 200%;
  animation: tpp-canvas-shift 20s ease-in-out infinite alternate;
}
.scn-timasion-promises-pay .tpp-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-timasion-promises-pay .tpp-table {
  position: absolute; bottom: 15%; left: 35%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #4a3525 0%, #2a1f18 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(20deg);
}
.scn-timasion-promises-pay .tpp-lamp {
  position: absolute; bottom: 25%; left: 45%; width: 16px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.6), 0 0 60px 20px rgba(192,128,64,0.3);
  transform-origin: bottom center;
  animation: tpp-lamp-sway 4s ease-in-out infinite, tpp-lamp-glow 1.5s ease-in-out infinite alternate;
}
.scn-timasion-promises-pay .tpp-timasion {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: tpp-speak 6s ease-in-out infinite;
}
.scn-timasion-promises-pay .tpp-soldier-a {
  position: absolute; bottom: 10%; left: 60%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: tpp-shift-a 8s ease-in-out infinite;
}
.scn-timasion-promises-pay .tpp-soldier-b {
  position: absolute; bottom: 12%; left: 72%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: tpp-shift-b 7s ease-in-out infinite 1s;
}
.scn-timasion-promises-pay .tpp-soldier-c {
  position: absolute; bottom: 14%; right: 5%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: tpp-shift-c 9s ease-in-out infinite 2s;
}
@keyframes tpp-canvas-shift { 0% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } 100% { background-position: 50% 50%; } }
@keyframes tpp-lamp-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes tpp-lamp-glow { 0% { box-shadow: 0 0 20px 6px rgba(192,128,64,0.5), 0 0 40px 12px rgba(192,128,64,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 40px 15px rgba(255,208,96,0.8), 0 0 80px 25px rgba(255,208,96,0.4); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(192,128,64,0.6), 0 0 50px 15px rgba(192,128,64,0.3); opacity: 0.9; } }
@keyframes tpp-speak { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes tpp-shift-a { 0% { transform: translateY(0) rotate(1deg); } 33% { transform: translateY(-2px) rotate(-2deg); } 66% { transform: translateY(1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tpp-shift-b { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(2px) rotate(2deg); } 66% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes tpp-shift-c { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(1px) rotate(2deg); } }

/* Scene 3: timasion-promises-leadership (tpl) - Tense, Dim Interior, Close-up */
.scn-timasion-promises-leadership {
  background:
    linear-gradient(180deg, #0a0806 0%, #1a1410 50%, #2a201a 100%),
    radial-gradient(ellipse at 50% 30%, #3d2a1a 0%, transparent 80%);
}
.scn-timasion-promises-leadership .tpl-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0d0a08 0%, #1a1411 50%, #0d0a08 100%);
  background-size: 300% 300%;
  animation: tpl-bg-shift 30s ease-in-out infinite alternate;
}
.scn-timasion-promises-leadership .tpl-light-ray {
  position: absolute; top: 0; left: 20%; right: 40%; bottom: 20%;
  background: linear-gradient(135deg, rgba(200,180,150,0.15) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: tpl-light-pulse 8s ease-in-out infinite alternate;
}
.scn-timasion-promises-leadership .tpl-timasion {
  position: absolute; bottom: 10%; left: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: -20px 0 30px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: tpl-breath 5s ease-in-out infinite;
}
.scn-timasion-promises-leadership .tpl-map-table {
  position: absolute; bottom: 5%; left: 30%; width: 100px; height: 15px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 4px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.8);
  transform: perspective(400px) rotateX(30deg);
}
.scn-timasion-promises-leadership .tpl-soldier {
  position: absolute; bottom: 15%; right: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: tpl-attend 12s ease-in-out infinite;
}
.scn-timasion-promises-leadership .tpl-shadow-wall {
  position: absolute; bottom: 0; left: 5%; right: 20%; height: 90%;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(10px);
  animation: tpl-shadow-creep 20s ease-in-out infinite alternate;
}
@keyframes tpl-bg-shift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 50% 0%; } }
@keyframes tpl-light-pulse { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes tpl-breath { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.02) translateY(-3px); } 50% { transform: scaleY(1) translateY(0); } 75% { transform: scaleY(0.98) translateY(2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes tpl-attend { 0% { transform: translateY(0) rotate(1deg); } 33% { transform: translateY(-2px) rotate(-2deg); } 66% { transform: translateY(1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tpl-shadow-creep { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(-10px) scale(1.05); opacity: 0.8; } 100% { transform: translateX(5px) scale(0.95); opacity: 0.5; } }

/* Scene 4: thorax-speaks-chersonese (tsc) - Tense, Dim Interior, Action Moment */
.scn-thorax-speaks-chersonese {
  background:
    linear-gradient(180deg, #120c08 0%, #241a14 40%, #352820 100%),
    radial-gradient(ellipse at 30% 50%, #3d2a1a 0%, transparent 70%);
}
.scn-thorax-speaks-chersonese .tsc-tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1410 0%, #2a1f18 50%, #1a1410 100%);
  background-size: 400% 400%;
  animation: tsc-bg-shift 25s ease-in-out infinite alternate;
}
.scn-thorax-speaks-chersonese .tsc-thorax {
  position: absolute; bottom: 10%; left: 35%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -15px 0 25px rgba(0,0,0,0.7);
  animation: tsc-stance 4s ease-in-out infinite;
}
.scn-thorax-speaks-chersonese .tsc-arm {
  position: absolute; bottom: 55%; left: 55%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  transform-origin: left center;
  animation: tsc-gesture 3s ease-in-out infinite;
}
.scn-thorax-speaks-chersonese .tsc-soldier-a {
  position: absolute; bottom: 12%; left: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: tsc-listen-a 7s ease-in-out infinite;
}
.scn-thorax-speaks-chersonese .tsc-soldier-b {
  position: absolute; bottom: 15%; right: 15%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: tsc-listen-b 8s ease-in-out infinite 1s;
}
.scn-thorax-speaks-chersonese .tsc-spear-a {
  position: absolute; bottom: 0%; left: 20%; width: 4px; height: 100%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  transform-origin: bottom center;
  animation: tsc-spear-sway-a 5s ease-in-out infinite;
}
.scn-thorax-speaks-chersonese .tsc-spear-b {
  position: absolute; bottom: 0%; right: 25%; width: 4px; height: 90%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  transform-origin: bottom center;
  animation: tsc-spear-sway-b 6s ease-in-out infinite 2s;
}
.scn-thorax-speaks-chersonese .tsc-scroll {
  position: absolute; bottom: 5%; left: 5%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 80% 80%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.5);
  animation: tsc-scroll-idle 15s ease-in-out infinite;
}
@keyframes tsc-bg-shift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 50% 0%; } }
@keyframes tsc-stance { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes tsc-gesture { 0% { transform: rotate(-15deg) scaleY(1); } 25% { transform: rotate(25deg) scaleY(1.1); } 50% { transform: rotate(-10deg) scaleY(0.9); } 75% { transform: rotate(20deg) scaleY(1); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes tsc-listen-a { 0% { transform: translateX(0) rotate(2deg); } 33% { transform: translateX(3px) rotate(-1deg); } 66% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes tsc-listen-b { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(-3px) rotate(1deg); } 66% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes tsc-spear-sway-a { 0% { transform: rotate(-2deg); } 33% { transform: rotate(4deg); } 66% { transform: rotate(-1deg); } 100% { transform: rotate(2deg); } }
@keyframes tsc-spear-sway-b { 0% { transform: rotate(3deg); } 33% { transform: rotate(-2deg); } 66% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes tsc-scroll-idle { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* ---- palm-cabbage ---- */
.scn-palm-cabbage {
  background:
    linear-gradient(180deg, #4a90d9 0%, #87CEEB 40%, #ffd700 80%, #ffeb3b 100%),
    radial-gradient(circle at 70% 30%, #fff9c4 0%, transparent 40%);
}
.scn-palm-cabbage .sun {
  position:absolute; top:8%; left:70%; width:60px; height:60px;
  background:radial-gradient(circle, #fff9c4 0%, #ffd700 40%, transparent 80%);
  border-radius:50%; box-shadow:0 0 40px 10px rgba(255,215,0,0.4);
  animation:pc-sun 6s ease-in-out infinite alternate;
}
.scn-palm-cabbage .ocean {
  position:absolute; bottom:20%; left:0; right:0; height:45%;
  background:linear-gradient(180deg, #1e90ff 0%, #4169e1 100%);
  border-radius:20% 30% 0 0 / 40% 50% 0 0;
  animation:pc-ocean 12s ease-in-out infinite alternate;
}
.scn-palm-cabbage .sand {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background:linear-gradient(180deg, #f4a460 0%, #deb887 100%);
  border-radius:40% 60% 0 0 / 80% 80% 0 0;
}
.scn-palm-cabbage .trunk {
  position:absolute; bottom:20%; left:50%; width:18px; height:120px;
  background:linear-gradient(180deg, #8B4513 0%, #5c3a21 100%);
  border-radius:6px; transform-origin:bottom center;
  transform:translateX(-50%) rotate(2deg);
  animation:pc-trunk 8s ease-in-out infinite alternate;
}
.scn-palm-cabbage .frond {
  position:absolute; bottom:calc(20% + 120px); left:50%; width:80px; height:30px;
  margin-left:-40px;
  background:linear-gradient(180deg, #228B22 0%, #006400 100%);
  border-radius:50% 50% 0 0; clip-path:polygon(0 30%, 50% 0, 100% 30%, 80% 100%, 20% 100%);
  transform-origin:bottom center;
  animation:pc-frond 5s ease-in-out infinite alternate;
}
.scn-palm-cabbage .frond::before {
  content:''; position:absolute; top:-10px; left:-30px; width:60px; height:20px;
  background:linear-gradient(180deg, #2e8b2e 0%, #006400 100%);
  border-radius:50% 50% 0 0; transform:rotate(-30deg); transform-origin:bottom right;
}
.scn-palm-cabbage .frond::after {
  content:''; position:absolute; top:-10px; right:-30px; width:60px; height:20px;
  background:linear-gradient(180deg, #2e8b2e 0%, #006400 100%);
  border-radius:50% 50% 0 0; transform:rotate(30deg); transform-origin:bottom left;
}
.scn-palm-cabbage .plate {
  position:absolute; bottom:25%; left:40%; width:80px; height:16px;
  background:radial-gradient(ellipse at 50% 50%, #f5f5dc 0%, #d2b48c 100%);
  border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,0.3);
  animation:pc-plate 10s ease-in-out infinite alternate;
}
.scn-palm-cabbage .brain {
  position:absolute; bottom:28%; left:44%; width:28px; height:18px;
  background:radial-gradient(ellipse at 40% 40%, #fff9c4 0%, #ffd700 70%);
  border-radius:50% 40% 40% 60% / 60% 50% 50% 40%;
  box-shadow:0 0 12px 4px rgba(255,215,0,0.3);
  animation:pc-brain 4s ease-in-out infinite alternate;
}
.scn-palm-cabbage .figure {
  position:absolute; bottom:20%; right:30%; width:22px; height:42px;
  background:linear-gradient(180deg, #2f1e0e 0%, #1a0f06 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation:pc-fig 7s ease-in-out infinite alternate;
}
@keyframes pc-sun { 0%{transform:scale(1);opacity:0.9} 50%{transform:scale(1.05);opacity:1} 100%{transform:scale(0.95);opacity:0.85} }
@keyframes pc-ocean { 0%{background-position:0 0;transform:translateY(0)} 50%{background-position:10% 5%;transform:translateY(-3px)} 100%{background-position:0 0;transform:translateY(0)} }
@keyframes pc-trunk { 0%{transform:translateX(-50%) rotate(1deg)} 50%{transform:translateX(-50%) rotate(3deg)} 100%{transform:translateX(-50%) rotate(1.5deg)} }
@keyframes pc-frond { 0%{transform:rotate(-4deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes pc-plate { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes pc-brain { 0%{opacity:0.8;transform:scale(1)} 50%{opacity:1;transform:scale(1.1)} 100%{opacity:0.85;transform:scale(0.95)} }
@keyframes pc-fig { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }

/* ---- tissaphernes-deputation ---- */
.scn-tissaphernes-deputation {
  background:
    linear-gradient(180deg, #2c1e1e 0%, #4a2a2a 30%, #3a1e1e 100%),
    radial-gradient(ellipse at 50% 100%, #5a3a3a 0%, transparent 70%);
}
.scn-tissaphernes-deputation .bg-deep {
  position:absolute; inset:0; background:linear-gradient(180deg, #1a0e0e 0%, transparent 80%);
  pointer-events:none;
}
.scn-tissaphernes-deputation .bg-mid {
  position:absolute; top:0; left:0; right:0; bottom:30%;
  background:linear-gradient(180deg, #3a2222 0%, #2a1616 100%);
}
.scn-tissaphernes-deputation .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background:linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius:20% 20% 0 0 / 40% 40% 0 0;
}
.scn-tissaphernes-deputation .brazier {
  position:absolute; bottom:35%; left:15%; width:30px; height:40px;
  background:radial-gradient(ellipse at 50% 60%, #ff8c00 0%, #ff4500 40%, transparent 80%);
  border-radius:50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow:0 0 30px 10px #ff8c00, 0 0 60px 20px rgba(255,140,0,0.3);
  animation:td-fire 2s ease-in-out infinite alternate;
}
.scn-tissaphernes-deputation .tissaphernes {
  position:absolute; bottom:20%; left:30%; width:40px; height:90px;
  background:linear-gradient(180deg, #1a0e0e 0%, #2a1616 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin:bottom center;
  animation:td-fig 4s ease-in-out infinite alternate;
}
.scn-tissaphernes-deputation .persian-dep {
  position:absolute; bottom:20%; left:42%; width:36px; height:80px;
  background:linear-gradient(180deg, #1a0e0e 0%, #2a1616 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin:bottom center;
  animation:td-fig 4.5s ease-in-out infinite alternate;
}
.scn-tissaphernes-deputation .greek-fig {
  position:absolute; bottom:20%; right:28%; width:38px; height:85px;
  background:linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin:bottom center;
  animation:td-fig 5s ease-in-out infinite alternate;
}
.scn-tissaphernes-deputation .curtain {
  position:absolute; top:0; left:5%; width:20%; height:100%;
  background:linear-gradient(180deg, #5a3a3a 0%, #3a1e1e 100%);
  border-radius:0 20% 20% 0 / 0 50% 50% 0;
  filter:blur(2px);
  animation:td-curtain 10s ease-in-out infinite alternate;
}
@keyframes td-fire { 0%{opacity:0.8;transform:scaleY(0.95)} 50%{opacity:1;transform:scaleY(1.05)} 100%{opacity:0.85;transform:scaleY(0.98)} }
@keyframes td-fig { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes td-curtain { 0%{transform:translateX(0)} 50%{transform:translateX(4px)} 100%{transform:translateX(-2px)} }

/* ---- tissaphernes-claims-merit ---- */
.scn-tissaphernes-claims-merit {
  background:
    linear-gradient(180deg, #1a0e0e 0%, #2c1e1e 40%, #3a1e1e 100%),
    radial-gradient(ellipse at 40% 50%, #5a3a3a 0%, transparent 60%);
}
.scn-tissaphernes-claims-merit .bg-deep {
  position:absolute; inset:0; background:linear-gradient(180deg, #0e0808 0%, transparent 60%);
}
.scn-tissaphernes-claims-merit .bg-mid {
  position:absolute; top:0; left:0; right:0; bottom:25%;
  background:linear-gradient(180deg, #2a1616 0%, #1a0e0e 100%);
}
.scn-tissaphernes-claims-merit .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background:linear-gradient(180deg, #3a1e1e 0%, #1a0e0e 100%);
  border-radius:30% 30% 0 0 / 50% 50% 0 0;
}
.scn-tissaphernes-claims-merit .brazier {
  position:absolute; bottom:30%; left:70%; width:25px; height:35px;
  background:radial-gradient(ellipse at 50% 60%, #ff8c00 0%, #ff4500 30%, transparent 80%);
  border-radius:50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow:0 0 25px 8px #ff8c00, 0 0 50px 15px rgba(255,140,0,0.3);
  animation:tc-fire 1.8s ease-in-out infinite alternate;
}
.scn-tissaphernes-claims-merit .tissaphernes {
  position:absolute; bottom:15%; left:35%; width:50px; height:110px;
  background:linear-gradient(180deg, #1a0e0e 0%, #2a1616 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin:bottom center;
  animation:tc-fig 4s ease-in-out infinite alternate;
}
.scn-tissaphernes-claims-merit .hand {
  position:absolute; bottom:55%; left:45%; width:12px; height:20px;
  background:linear-gradient(180deg, #2a1616 0%, #1a0e0e 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom left;
  animation:tc-hand 3s ease-in-out infinite alternate;
}
.scn-tissaphernes-claims-merit .cushion {
  position:absolute; bottom:10%; left:38%; width:60px; height:20px;
  background:linear-gradient(180deg, #5a3a3a 0%, #3a1e1e 100%);
  border-radius:30% 30% 40% 40% / 40% 40% 60% 60%;
  box-shadow:0 2px 4px rgba(0,0,0,0.5);
  animation:tc-cushion 6s ease-in-out infinite alternate;
}
.scn-tissaphernes-claims-merit .scroll {
  position:absolute; bottom:15%; left:48%; width:10px; height:30px;
  background:linear-gradient(180deg, #d2b48c 0%, #a08060 100%);
  border-radius:20% 20% 10% 10% / 30% 30% 20% 20%;
  transform:rotate(15deg);
  animation:tc-scroll 8s ease-in-out infinite alternate;
}
@keyframes tc-fire { 0%{opacity:0.7;transform:scaleY(0.9)} 50%{opacity:1;transform:scaleY(1.1)} 100%{opacity:0.75;transform:scaleY(0.95)} }
@keyframes tc-fig { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-4px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes tc-hand { 0%{transform:rotate(-20deg) translateX(0)} 50%{transform:rotate(-10deg) translateX(3px)} 100%{transform:rotate(-15deg) translateX(1px)} }
@keyframes tc-cushion { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes tc-scroll { 0%{transform:rotate(10deg) translateY(0)} 50%{transform:rotate(15deg) translateY(-2px)} 100%{transform:rotate(12deg) translateY(0)} }

/* ---- hellenes-deliberate ---- */
.scn-hellenes-deliberate {
  background:
    linear-gradient(180deg, #1a1212 0%, #2c1c1c 40%, #3a2424 100%),
    radial-gradient(ellipse at 50% 80%, #4a2e2e 0%, transparent 70%);
}
.scn-hellenes-deliberate .bg-deep {
  position:absolute; inset:0; background:linear-gradient(180deg, #0e0a0a 0%, transparent 60%);
}
.scn-hellenes-deliberate .bg-mid {
  position:absolute; top:0; left:0; right:0; bottom:20%;
  background:linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
}
.scn-hellenes-deliberate .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background:linear-gradient(180deg, #3a2222 0%, #1a0e0e 100%);
  border-radius:40% 40% 0 0 / 60% 60% 0 0;
}
.scn-hellenes-deliberate .table {
  position:absolute; bottom:20%; left:30%; width:40%; height:30px;
  background:linear-gradient(180deg, #5a3a2a 0%, #3a2216 100%);
  border-radius:8% 8% 4% 4% / 20% 20% 10% 10%;
  box-shadow:0 4px 8px rgba(0,0,0,0.5);
  animation:hd-table 10s ease-in-out infinite alternate;
}
.scn-hellenes-deliberate .brazier {
  position:absolute; bottom:25%; left:15%; width:28px; height:38px;
  background:radial-gradient(ellipse at 50% 60%, #ff8c00 0%, #cc6600 30%, transparent 80%);
  border-radius:50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow:0 0 25px 8px #ff8c00, 0 0 50px 15px rgba(255,140,0,0.3);
  animation:hd-fire 2.2s ease-in-out infinite alternate;
}
.scn-hellenes-deliberate .clearchus {
  position:absolute; bottom:15%; left:25%; width:42px; height:95px;
  background:linear-gradient(180deg, #1a0e0e 0%, #2a1616 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin:bottom center;
  animation:hd-fig 4s ease-in-out infinite alternate;
}
.scn-hellenes-deliberate .greek1 {
  position:absolute; bottom:12%; right:30%; width:38px; height:80px;
  background:linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin:bottom center;
  animation:hd-fig 4.3s ease-in-out infinite alternate;
}
.scn-hellenes-deliberate .greek2 {
  position:absolute; bottom:10%; right:15%; width:36px; height:75px;
  background:linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin:bottom center;
  animation:hd-fig 4.7s ease-in-out infinite alternate;
}
@keyframes hd-fire { 0%{opacity:0.8;transform:scaleY(0.95)} 50%{opacity:1;transform:scaleY(1.08)} 100%{opacity:0.85;transform:scaleY(0.98)} }
@keyframes hd-table { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes hd-fig { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }

/* charmande-raft-crossing (calm, sunlit) */
.scn-charmande-raft-crossing { background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 40%, #e0f0ff 60%), radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 50%); }
.scn-charmande-raft-crossing .sky  { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 100%); animation: cm-sky 12s ease-in-out infinite alternate; }
.scn-charmande-raft-crossing .sun  { position:absolute; bottom:50%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #fff 0%, #ffd700 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); animation: cm-sun 8s ease-in-out infinite alternate; }
.scn-charmande-raft-crossing .river-bank { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #c2b280 0%, #8b7355 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: cm-bank 20s ease-in-out infinite alternate; }
.scn-charmande-raft-crossing .raft { position:absolute; bottom:30%; left:10%; width:60px; height:15px; background: #8b4513; border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: cm-raft 6s ease-in-out infinite; }
.scn-charmande-raft-crossing .figure { position:absolute; bottom:30%; left:15%; width:12px; height:25px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40%; animation: cm-figure 6s ease-in-out infinite; }
.scn-charmande-raft-crossing .spear { position:absolute; bottom:30%; left:18%; width:2px; height:30px; background: #34495e; transform: rotate(15deg); animation: cm-spear 6s ease-in-out infinite; }
.scn-charmande-raft-crossing .ripple { position:absolute; bottom:28%; left:10%; width:80px; height:10px; background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(2px); animation: cm-ripple 4s ease-in-out infinite alternate; }
@keyframes cm-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cm-sun { 0% { transform:scale(.9); opacity:.8 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(.95); opacity:.85 } }
@keyframes cm-bank { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes cm-raft { 0%,100% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(20px) rotate(2deg) } 50% { transform:translateX(40px) rotate(0deg) } 75% { transform:translateX(60px) rotate(-2deg) } }
@keyframes cm-figure { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(2deg) } }
@keyframes cm-spear { 0%,100% { transform:rotate(15deg) } 50% { transform:rotate(10deg) } }
@keyframes cm-ripple { 0% { transform:scaleX(1); opacity:.3 } 50% { transform:scaleX(1.5); opacity:.5 } 100% { transform:scaleX(1); opacity:.2 } }

/* quarrel-menon-clearchus (tense, sunlit) */
.scn-quarrel-menon-clearchus { background: linear-gradient(180deg, #d4c3a3 0%, #e8dcc8 50%, #c9b99a 100%), radial-gradient(ellipse at 50% 100%, #8b7355 0%, transparent 70%); }
.scn-quarrel-menon-clearchus .bg-ground { position:absolute; inset:auto 0 0 0; height:40%; background: linear-gradient(180deg, #6b5b45 0%, #4a3d2e 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,0.5); }
.scn-quarrel-menon-clearchus .tent-wall { position:absolute; bottom:20%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(135deg, #c2a878 0%, #a38b5c 100%); border-radius:4px; box-shadow:0 10px 20px rgba(0,0,0,0.4); animation:qm-tent 15s ease-in-out infinite alternate; }
.scn-quarrel-menon-clearchus .clearchus { position:absolute; bottom:20%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #a03a2a 0%, #5c1a1a 100%); border-radius:40% 40% 30% 30%; transform:rotate(10deg); animation:qm-clearchus 3s ease-in-out infinite alternate; }
.scn-quarrel-menon-clearchus .menon-man { position:absolute; bottom:20%; right:30%; width:16px; height:36px; background: linear-gradient(180deg, #4a3d2e 0%, #2c231a 100%); border-radius:40% 40% 30% 30%; transform:rotate(-5deg); animation:qm-menon 3s ease-in-out infinite alternate; }
.scn-quarrel-menon-clearchus .lash { position:absolute; bottom:30%; left:40%; width:30px; height:2px; background:#2c231a; transform-origin:left center; transform:rotate(20deg); animation:qm-lash 1.5s ease-in-out infinite; }
.scn-quarrel-menon-clearchus .shadow-1 { position:absolute; bottom:15%; left:30%; width:40px; height:15px; background:rgba(0,0,0,0.4); border-radius:50%; filter:blur(4px); animation:qm-shadow 3s ease-in-out infinite alternate; }
.scn-quarrel-menon-clearchus .shadow-2 { position:absolute; bottom:15%; right:25%; width:40px; height:15px; background:rgba(0,0,0,0.4); border-radius:50%; filter:blur(4px); animation:qm-shadow 3s ease-in-out infinite alternate-reverse; }
@keyframes qm-tent { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.02) } 100% { transform:translateX(-50%) scaleY(0.98) } }
@keyframes qm-clearchus { 0% { transform:translateX(0) rotate(10deg) } 50% { transform:translateX(3px) rotate(15deg) } 100% { transform:translateX(0) rotate(10deg) } }
@keyframes qm-menon { 0% { transform:translateX(0) rotate(-5deg) } 50% { transform:translateX(-3px) rotate(-10deg) } 100% { transform:translateX(0) rotate(-5deg) } }
@keyframes qm-lash { 0%,100% { transform:rotate(20deg); opacity:.8 } 25% { transform:rotate(-10deg); opacity:1 } 50% { transform:rotate(30deg); opacity:1 } 75% { transform:rotate(0deg); opacity:.9 } }
@keyframes qm-shadow { 0% { transform:scaleX(1); opacity:.4 } 50% { transform:scaleX(1.2); opacity:.5 } 100% { transform:scaleX(0.9); opacity:.3 } }

/* attack-on-clearchus (tense, sunlit) */
.scn-attack-on-clearchus { background: linear-gradient(180deg, #f0d9b5 0%, #e8cfa0 40%, #d4b080 100%), radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 60%); }
.scn-attack-on-clearchus .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8dcc8 0%, #fdf5e6 100%); animation: ac-sky 10s ease-in-out infinite alternate; }
.scn-attack-on-clearchus .ground { position:absolute; inset:auto 0 0 0; height:45%; background: linear-gradient(180deg, #a38b5c 0%, #6b5b45 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); animation: ac-ground 15s ease-in-out infinite alternate; }
.scn-attack-on-clearchus .horseman { position:absolute; bottom:35%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #4a3d2e 0%, #2c231a 100%); border-radius: 50% 50% 30% 30%; animation: ac-horseman 1s ease-in-out infinite alternate; }
.scn-attack-on-clearchus .woodcutter { position:absolute; bottom:25%; left:25%; width:20px; height:35px; background: linear-gradient(180deg, #6b5b45 0%, #3d3224 100%); border-radius: 40% 40% 30% 30%; transform: rotate(30deg); animation: ac-woodcutter 1.5s ease-in-out infinite alternate; }
.scn-attack-on-clearchus .axe { position:absolute; bottom:38%; left:22%; width:25px; height:4px; background: #2c231a; transform-origin: right center; transform: rotate(-60deg); animation: ac-axe 0.8s ease-in-out infinite alternate; }
.scn-attack-on-clearchus .stone { position:absolute; bottom:40%; left:30%; width:8px; height:8px; background: #5c4a32; border-radius: 50%; animation: ac-stone 0.6s linear infinite; }
.scn-attack-on-clearchus .dust { position:absolute; bottom:25%; left:35%; width:40px; height:20px; background: rgba(200,180,150,0.5); border-radius: 50%; filter: blur(6px); animation: ac-dust 2s ease-in-out infinite alternate; }
@keyframes ac-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ac-ground { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes ac-horseman { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-10px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ac-woodcutter { 0% { transform: rotate(30deg) } 50% { transform: rotate(45deg) } 100% { transform: rotate(25deg) } }
@keyframes ac-axe { 0% { transform: rotate(-60deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-50deg) } }
@keyframes ac-stone { 0% { transform: translateY(0) translateX(0); opacity:1 } 30% { opacity:1 } 100% { transform: translateY(-30px) translateX(20px); opacity:0 } }
@keyframes ac-dust { 0% { transform: scale(1); opacity:.5 } 50% { transform: scale(1.5); opacity:.3 } 100% { transform: scale(0.8); opacity:.6 } }

/* proxenus-intervenes (tense, sunlit) */
.scn-proxenus-intervenes { background: linear-gradient(180deg, #d4b080 0%, #e8cfa0 40%, #fdf5e6 80%), radial-gradient(ellipse at 50% 100%, #8b7355 0%, transparent 60%); }
.scn-proxenus-intervenes .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fdf5e6 0%, #fff 100%); animation: px-sky 15s ease-in-out infinite alternate; }
.scn-proxenus-intervenes .ground { position:absolute; inset:auto 0 0 0; height:35%; background: linear-gradient(180deg, #8b7355 0%, #5c4a32 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-proxenus-intervenes .proxenus { position:absolute; bottom:25%; left:20%; width:60px; height:50px; background: linear-gradient(180deg, #4a6741 0%, #2c4226 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 5px 10px rgba(0,0,0,0.4); animation: px-proxenus 5s ease-in-out infinite alternate; }
.scn-proxenus-intervenes .clearchus { position:absolute; bottom:25%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #a03a2a 0%, #5c1a1a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(5deg); animation: px-clearchus 3s ease-in-out infinite alternate; }
.scn-proxenus-intervenes .menon-mob { position:absolute; bottom:25%; right:10%; width:50px; height:40px; background: linear-gradient(180deg, #5c4a32 0%, #3d3224 100%); border-radius: 30% 30% 20% 20%; animation: px-mob 4s ease-in-out infinite alternate; }
.scn-proxenus-intervenes .shield { position:absolute; bottom:30%; left:22%; width:15px; height:25px; background: radial-gradient(circle at 40% 40%, #c2a878, #8b7355); border-radius: 50%; box-shadow: inset 0 0 5px rgba(0,0,0,0.5); animation: px-shield 5s ease-in-out infinite alternate; }
.scn-proxenus-intervenes .spear { position:absolute; bottom:40%; left:18%; width:3px; height:35px; background: #4a3d2e; transform: rotate(-15deg); animation: px-spear 5s ease-in-out infinite alternate; }
@keyframes px-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes px-proxenus { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.02) } 100% { transform: translateX(0) scale(0.98) } }
@keyframes px-clearchus { 0% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes px-mob { 0% { transform: translateX(0); opacity:.8 } 50% { transform: translateX(-5px); opacity:1 } 100% { transform: translateX(0); opacity:.7 } }
@keyframes px-shield { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes px-spear { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-15deg) } }

.scn-clearchus-army-chersonese { background: linear-gradient(180deg, #0a0a1a 0%, #1a1420 50%, #2a1a20 100%), radial-gradient(ellipse at 50% 60%, #4a2a20 0%, transparent 60%); }
.scn-clearchus-army-chersonese .tent-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #1a1420 0px, #1a1420 20px, #2a1a20 20px, #2a1a20 22px); animation: ca-tent 8s ease-in-out infinite alternate; }
.scn-clearchus-army-chersonese .candle-glow { position:absolute; bottom:40%; left:70%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle, #ffa050 0%, #804020 50%, transparent 100%); box-shadow: 0 0 30px 15px #804020; animation: ca-glow 2s ease-in-out infinite alternate; }
.scn-clearchus-army-chersonese .map { position:absolute; bottom:30%; left:10%; width:80px; height:60px; background: linear-gradient(135deg, #c8a850 0%, #a08040 100%); border-radius:5%/10%; transform: rotate(-5deg); animation: ca-map 15s ease-in-out infinite alternate; }
.scn-clearchus-army-chersonese .coin-stack { position:absolute; bottom:20%; right:20%; width:20px; height:30px; background: linear-gradient(0deg, #d4a040 0%, #f0d070 50%, #d4a040 100%); border-radius:50%/30%; box-shadow:0 2px 4px rgba(0,0,0,0.5); animation: ca-coin 4s ease-in-out infinite; }
.scn-clearchus-army-chersonese .figure-clea { position:absolute; bottom:10%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a20 0%, #0a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-figure 6s ease-in-out infinite; }
.scn-clearchus-army-chersonese .shadow-clea { position:absolute; bottom:8%; left:28%; width:40px; height:10px; background: radial-gradient(ellipse, #000 0%, transparent 80%); opacity:0.5; animation: ca-shadow 6s ease-in-out infinite; }
.scn-clearchus-army-chersonese .sword { position:absolute; bottom:25%; left:50%; width:8px; height:40px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius:20%/10%; transform: rotate(30deg); animation: ca-sword 10s ease-in-out infinite; }
.scn-clearchus-army-chersonese .parchment { position:absolute; bottom:15%; right:10%; width:40px; height:30px; background:#e8d8b0; border-radius:5%/10%; transform: rotate(10deg); animation: ca-parch 12s ease-in-out infinite; }
@keyframes ca-tent { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ca-glow { 0% { transform: scale(0.9) rotate(0deg); opacity:0.8 } 50% { transform: scale(1.1) rotate(10deg); opacity:1 } 100% { transform: scale(0.95) rotate(-5deg); opacity:0.85 } }
@keyframes ca-map { 0% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(0deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(1px) } }
@keyframes ca-coin { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(1px) scale(0.98) } }
@keyframes ca-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ca-shadow { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.1) } 100% { opacity:0.5; transform: scaleX(0.95) } }
@keyframes ca-sword { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(32deg) translateY(2px) } 100% { transform: rotate(28deg) translateY(-1px) } }
@keyframes ca-parch { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(12deg) translateX(2px) } 100% { transform: rotate(8deg) translateX(-1px) } }

.scn-footnote-daric { background: linear-gradient(180deg, #120c14 0%, #1a1420 50%, #2a1a1e 100%), radial-gradient(ellipse at 60% 50%, #3a2a20 0%, transparent 70%); }
.scn-footnote-daric .table-daric { position:absolute; bottom:5%; left:10%; right:10%; height:15%; background: linear-gradient(0deg, #2a1a10 0%, #3a2a1a 100%); border-radius:5%/10%; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-footnote-daric .coin-daric { position:absolute; bottom:15%; left:40%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #f0d060 0%, #c09030 50%, #a07020 100%); border-radius:50%; box-shadow: 0 0 8px rgba(240,208,96,0.5); animation: fd-coin 6s ease-in-out infinite alternate; }
.scn-footnote-daric .candle-daric { position:absolute; bottom:15%; left:20%; width:6px; height:40px; background: linear-gradient(0deg, #d0d0d0 0%, #f0f0f0 50%, #d0d0d0 100%); border-radius:20%/20%; box-shadow: 0 0 4px #fff; }
.scn-footnote-daric .flame-glow { position:absolute; bottom:35%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #ffb060 0%, #a06020 40%, transparent 70%); border-radius:50%; animation: fd-flame 4s ease-in-out infinite alternate; }
.scn-footnote-daric .bag-daric { position:absolute; bottom:10%; right:20%; width:30px; height:20px; background:#4a3a2a; border-radius:50%/40%; box-shadow:0 2px 4px #000; animation: fd-bag 10s ease-in-out infinite; }
.scn-footnote-daric .spear-daric { position:absolute; bottom:5%; left:5%; width:4px; height:60px; background: linear-gradient(180deg, #8a7050 0%, #5a3a20 100%); border-radius:10%; transform: rotate(15deg); animation: fd-spear 12s ease-in-out infinite; }
.scn-footnote-daric .floor-plank { position:absolute; bottom:0; left:0; right:0; height:5%; background: repeating-linear-gradient(90deg, #1a1010 0px, #1a1010 40px, #2a1810 40px, #2a1810 42px); opacity:0.6; }
@keyframes fd-coin { 0% { transform: scale(1) rotate(0deg); opacity:0.9 } 50% { transform: scale(1.03) rotate(5deg); opacity:1 } 100% { transform: scale(0.97) rotate(-3deg); opacity:0.95 } }
@keyframes fd-flame { 0% { transform: scale(0.9) translate(1px, 0); opacity:0.8 } 50% { transform: scale(1.1) translate(-2px, -1px); opacity:1 } 100% { transform: scale(0.95) translate(0, 2px); opacity:0.85 } }
@keyframes fd-bag { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes fd-spear { 0% { transform: rotate(15deg) } 50% { transform: rotate(17deg) } 100% { transform: rotate(13deg) } }

.scn-aristippus-mercenaries { background: linear-gradient(180deg, #0a0a1a 0%, #1a1018 50%, #2a1820 100%), radial-gradient(ellipse at 30% 70%, #4a2a20 0%, transparent 60%), radial-gradient(ellipse at 70% 40%, #3a1a10 0%, transparent 50%); }
.scn-aristippus-mercenaries .brazier { position:absolute; bottom:30%; left:20%; width:30px; height:20px; background: linear-gradient(180deg, #a05020 0%, #7a3010 50%, #5a1000 100%); border-radius:50%/30%; box-shadow: 0 0 20px #a04020; animation: am-braze 1.5s ease-in-out infinite alternate; }
.scn-aristippus-mercenaries .brazier-glow { position:absolute; bottom:30%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #ff8030 0%, #c04010 30%, transparent 70%); border-radius:50%; animation: am-brage 1.5s ease-in-out infinite alternate; }
.scn-aristippus-mercenaries .table-mercenaries { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%); border-radius:5%/10%; box-shadow: 0 -6px 12px #000; }
.scn-aristippus-mercenaries .coins-scattered { position:absolute; bottom:20%; left:30%; width:60px; height:15px; background:transparent; box-shadow: 5px 0 #d4a040, 15px 3px #c09030, 25px 0 #f0d060, 35px 5px #b08030, 45px 8px #e0b050; animation: am-coins 3s ease-in-out infinite; }
.scn-aristippus-mercenaries .figure-mercenary { position:absolute; bottom:10%; left:50%; width:28px; height:55px; background: linear-gradient(180deg, #1a0a10 0%, #0a0008 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: am-merc 4s ease-in-out infinite; }
.scn-aristippus-mercenaries .figure-aristippus { position:absolute; bottom:10%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a20 0%, #1a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: am-aris 5s ease-in-out infinite alternate; }
.scn-aristippus-mercenaries .scroll-mercenaries { position:absolute; bottom:25%; left:45%; width:30px; height:20px; background:#e8d8b0; border-radius:5%/20%; transform: rotate(-10deg); animation: am-scroll 8s ease-in-out infinite; }
.scn-aristippus-mercenaries .shadow-pool { position:absolute; bottom:8%; left:20%; right:20%; height:15px; background: radial-gradient(ellipse, #000 0%, transparent 80%); opacity:0.4; }
@keyframes am-braze { 0% { transform: scaleX(0.9) translateY(0); opacity:0.8 } 50% { transform: scaleX(1.1) translateY(-2px); opacity:1 } 100% { transform: scaleX(0.95) translateY(1px); opacity:0.7 } }
@keyframes am-brage { 0% { transform: scale(0.8); opacity:0.6 } 50% { transform: scale(1.1); opacity:0.9 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes am-coins { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(1px) scale(0.98) } }
@keyframes am-merc { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(2px) rotate(1deg) } 40% { transform: translateX(-1px) rotate(-1deg) } 60% { transform: translateX(3px) rotate(0.5deg) } 80% { transform: translateX(-2px) rotate(-0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes am-aris { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(2px) rotate(-1deg) } }
@keyframes am-scroll { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(2px) } 100% { transform: rotate(-12deg) translateX(-1px) } }

.scn-footnote-aristippus { background: linear-gradient(180deg, #1a1410 0%, #2a1e18 50%, #3a2a20 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%); }
.scn-footnote-aristippus .desk { position:absolute; bottom:5%; left:10%; right:10%; height:25%; background: linear-gradient(0deg, #2a1a10 0%, #3a2a1a 100%); border-radius:5%/10%; }
.scn-footnote-aristippus .lamp { position:absolute; bottom:30%; left:20%; width:15px; height:30px; background: linear-gradient(180deg, #d0a060 0%, #a07040 100%); border-radius:20%/20%; box-shadow: 0 0 10px #d0a060; }
.scn-footnote-aristippus .lamp-glow { position:absolute; bottom:30%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #ffc070 0%, #a05020 40%, transparent 80%); border-radius:50%; animation: fa-lamp 6s ease-in-out infinite alternate; }
.scn-footnote-aristippus .inkwell { position:absolute; bottom:15%; left:40%; width:12px; height:15px; background:#0a0a0a; border-radius:30%/20%; box-shadow: inset 0 2px 4px #3a3a3a; }
.scn-footnote-aristippus .quill { position:absolute; bottom:20%; left:35%; width:4px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius:10%; transform: rotate(110deg); transform-origin: bottom left; animation: fa-quill 10s ease-in-out infinite; }
.scn-footnote-aristippus .parchment-note { position:absolute; bottom:10%; left:50%; width:60px; height:40px; background:#e8d8b0; border-radius:5%/10%; box-shadow: 0 2px 4px #000; transform: rotate(2deg); animation: fa-parch 14s ease-in-out infinite; }
.scn-footnote-aristippus .mote-1 { position:absolute; top:30%; left:10%; width:4px; height:4px; background: rgba(255,230,180,0.6); border-radius:50%; box-shadow:0 0 6px rgba(255,230,180,0.3); animation: fa-mote1 25s linear infinite; }
.scn-footnote-aristippus .mote-2 { position:absolute; top:60%; left:60%; width:4px; height:4px; background: rgba(255,230,180,0.6); border-radius:50%; box-shadow:0 0 6px rgba(255,230,180,0.3); animation: fa-mote2 30s linear infinite reverse; }
@keyframes fa-lamp { 0% { opacity:0.8; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.85; transform: scale(0.98) } }
@keyframes fa-quill { 0% { transform: rotate(110deg) } 50% { transform: rotate(115deg) } 100% { transform: rotate(108deg) } }
@keyframes fa-parch { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(1px) } }
@keyframes fa-mote1 { 0% { transform: translate(0,0); opacity:0 } 10% { opacity:0.6 } 90% { opacity:0.4 } 100% { transform: translate(200px, -100px); opacity:0 } }
@keyframes fa-mote2 { 0% { transform: translate(0,0); opacity:0 } 10% { opacity:0.5 } 90% { opacity:0.3 } 100% { transform: translate(-150px, 80px); opacity:0 } }

.scn-waiting-suspicions {
  background: linear-gradient(180deg, #5b8cbe 0%, #d4a76a 60%, #b8894a 100%), radial-gradient(circle at 60% 20%, #ffd27f 0%, transparent 50%);
}
.scn-waiting-suspicions .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #89c4f4 0%, #bfd8ff 40%, transparent 100%);
  animation: ws-sky 6s ease-in-out infinite alternate;
}
.scn-waiting-suspicions .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #8b7a5a 0%, #b8a77a 30%, #c8b88a 50%);
  border-radius: 20% 30% 0 0 / 10% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: ws-ground 12s ease-in-out infinite;
}
.scn-waiting-suspicions .mountains {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6d7a5a 0%, #8a9a6a 100%);
  border-radius: 40% 50% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.3);
  animation: ws-mountains 20s ease-in-out infinite alternate;
}
.scn-waiting-suspicions .tent-a {
  position: absolute; bottom: 20%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  box-shadow: 10px 5px 15px rgba(0,0,0,0.5);
  animation: ws-tent 8s ease-in-out infinite;
}
.scn-waiting-suspicions .tent-b {
  position: absolute; bottom: 18%; right: 20%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #b89858 0%, #907438 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  box-shadow: -5px 5px 10px rgba(0,0,0,0.4);
  animation: ws-tent 10s ease-in-out infinite reverse;
}
.scn-waiting-suspicions .figure-a {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure 5s ease-in-out infinite alternate;
}
.scn-waiting-suspicions .figure-b {
  position: absolute; bottom: 26%; left: 50%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure 6s ease-in-out infinite alternate-reverse;
}
.scn-waiting-suspicions .flag {
  position: absolute; bottom: 50%; left: 25%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  clip-path: polygon(0% 100%, 0% 0%, 100% 50%);
  animation: ws-flag 4s ease-in-out infinite;
}
.scn-waiting-suspicions .cloud {
  position: absolute; top: 10%; left: -10%; width: 100px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: ws-cloud 30s linear infinite;
}
@keyframes ws-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ws-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ws-mountains { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes ws-tent { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes ws-figure { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes ws-flag { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1) rotate(2deg); } 100% { transform: scaleX(0.9); } }
@keyframes ws-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-soldiers-fear-king-trick {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(circle at 50% 80%, #3a3a4e 0%, transparent 70%);
}
.scn-soldiers-fear-king-trick .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2c3c 0%, #1e1e2e 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: sf-wall 8s ease-in-out infinite alternate;
}
.scn-soldiers-fear-king-trick .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.6);
  animation: sf-table 6s ease-in-out infinite;
}
.scn-soldiers-fear-king-trick .lamp {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd27f 0%, #c08040 60%, #7a4a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #ffd27f, 0 0 60px 20px rgba(255,210,127,0.4);
  animation: sf-lamp 3s ease-in-out infinite alternate;
}
.scn-soldiers-fear-king-trick .soldier-l {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-soldier 7s ease-in-out infinite;
}
.scn-soldiers-fear-king-trick .soldier-r {
  position: absolute; bottom: 25%; right: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-soldier 9s ease-in-out infinite alternate-reverse;
}
.scn-soldiers-fear-king-trick .map {
  position: absolute; bottom: 28%; left: 35%; right: 35%; height: 12%;
  background: linear-gradient(135deg, #c8b88a 0%, #a8986a 100%);
  border-radius: 5%;
  box-shadow: 0 2px 5px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: sf-map 4s ease-in-out infinite;
}
.scn-soldiers-fear-king-trick .shadow-l {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 40px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: sf-shadow 5s ease-in-out infinite alternate;
}
.scn-soldiers-fear-king-trick .shadow-r {
  position: absolute; bottom: 10%; right: 20%; width: 80px; height: 40px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: sf-shadow 6s ease-in-out infinite alternate-reverse;
}
@keyframes sf-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sf-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sf-lamp { 0% { box-shadow: 0 0 20px 5px #ffd27f, 0 0 40px 10px rgba(255,210,127,0.3); } 50% { box-shadow: 0 0 40px 15px #ffd27f, 0 0 80px 25px rgba(255,210,127,0.5); } 100% { box-shadow: 0 0 25px 8px #ffd27f, 0 0 50px 15px rgba(255,210,127,0.35); } }
@keyframes sf-soldier { 0% { transform: rotate(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes sf-map { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes sf-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }

.scn-clearchus-reasons-against-flight {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%), radial-gradient(circle at 50% 40%, #2a2a3a 0%, transparent 60%);
}
.scn-clearchus-reasons-against-flight .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: cr-wall 10s ease-in-out infinite alternate;
}
.scn-clearchus-reasons-against-flight .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #2a2a1a 0%, #3a3a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-clearchus-reasons-against-flight .clearchus-figure {
  position: absolute; bottom: 20%; left: 40%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 5px 0 15px rgba(0,0,0,0.6);
  animation: cr-figure 6s ease-in-out infinite;
}
.scn-clearchus-reasons-against-flight .chair {
  position: absolute; bottom: 15%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 3px 3px 10px rgba(0,0,0,0.6);
  animation: cr-chair 8s ease-in-out infinite;
}
.scn-clearchus-reasons-against-flight .lantern {
  position: absolute; bottom: 45%; left: 30%; width: 15px; height: 20px;
  background: radial-gradient(circle, #ffd27f 0%, #c08040 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 25px 8px #ffd27f, 0 0 50px 15px rgba(255,210,127,0.5);
  animation: cr-lantern 4s ease-in-out infinite alternate;
}
.scn-clearchus-reasons-against-flight .wall-shadow {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 80px;
  background: rgba(0,0,0,0.3);
  filter: blur(15px);
  animation: cr-shadow 7s ease-in-out infinite alternate;
}
.scn-clearchus-reasons-against-flight .door {
  position: absolute; bottom: 35%; right: 10%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
  animation: cr-door 12s ease-in-out infinite;
}
@keyframes cr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cr-figure { 0% { transform: rotate(0); } 25% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(-2deg) translateX(-2px); } 75% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(0); } }
@keyframes cr-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cr-lantern { 0% { opacity: 0.9; box-shadow: 0 0 20px 5px #ffd27f; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #ffd27f, 0 0 60px 20px rgba(255,210,127,0.6); } 100% { opacity: 0.85; box-shadow: 0 0 15px 3px #ffd27f; } }
@keyframes cr-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes cr-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }

.scn-clearchus-argues-king-wont-break-oath {
  background: linear-gradient(180deg, #141422 0%, #242434 40%, #343444 100%), radial-gradient(circle at 50% 70%, #242434 0%, transparent 60%);
}
.scn-clearchus-argues-king-wont-break-oath .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 100%);
  animation: ca-bg 8s ease-in-out infinite alternate;
}
.scn-clearchus-argues-king-wont-break-oath .table-top {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.6);
  animation: ca-table 6s ease-in-out infinite;
}
.scn-clearchus-argues-king-wont-break-oath .hand-left {
  position: absolute; bottom: 25%; left: 25%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 30% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.5);
  animation: ca-hand-l 5s ease-in-out infinite alternate;
}
.scn-clearchus-argues-king-wont-break-oath .hand-right {
  position: absolute; bottom: 25%; right: 25%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 30% 50% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  box-shadow: -2px 2px 5px rgba(0,0,0,0.5);
  animation: ca-hand-r 6s ease-in-out infinite alternate;
}
.scn-clearchus-argues-king-wont-break-oath .lamp {
  position: absolute; bottom: 55%; left: 50%; width: 20px; height: 25px;
  background: radial-gradient(circle, #ffd27f 0%, #b08040 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #ffd27f, 0 0 60px 20px rgba(255,210,127,0.4);
  animation: ca-lamp 3s ease-in-out infinite alternate;
}
.scn-clearchus-argues-king-wont-break-oath .scroll {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 16px;
  background: linear-gradient(135deg, #c8b88a 0%, #a8986a 100%);
  border-radius: 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  transform: rotate(5deg);
  animation: ca-scroll 7s ease-in-out infinite;
}
.scn-clearchus-argues-king-wont-break-oath .cup {
  position: absolute; bottom: 18%; right: 35%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.5);
  animation: ca-cup 8s ease-in-out infinite;
}
@keyframes ca-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ca-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ca-hand-l { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ca-hand-r { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ca-lamp { 0% { box-shadow: 0 0 20px 5px #ffd27f, 0 0 40px 10px rgba(255,210,127,0.3); } 50% { box-shadow: 0 0 40px 15px #ffd27f, 0 0 80px 25px rgba(255,210,127,0.6); } 100% { box-shadow: 0 0 25px 8px #ffd27f, 0 0 50px 15px rgba(255,210,127,0.35); } }
@keyframes ca-scroll { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(8deg) scale(1.02); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes ca-cup { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.scn-trial-of-orontas { background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 60%, #0a0505 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-trial-of-orontas .tent { position:absolute; inset:10% 10% 30% 10%; background:linear-gradient(135deg,#4a2a1a 0%,#2a1a0a 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow:inset 0 0 30px rgba(0,0,0,.8); }
.scn-trial-of-orontas .opening { position:absolute; bottom:30%; left:50%; width:30%; height:40%; transform:translateX(-50%); background:radial-gradient(ellipse,#c08040 0%,#804020 60%,transparent 100%); border-radius:50% 50% 30% 30% / 80% 80% 20% 20%; animation:to-glow 3s ease-in-out infinite alternate; }
.scn-trial-of-orontas .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg,#1a0a0a 0%,#0a0505 100%); }
.scn-trial-of-orontas .soldier1, .scn-trial-of-orontas .soldier2, .scn-trial-of-orontas .soldier3 { position:absolute; bottom:30%; width:6%; height:30%; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-trial-of-orontas .soldier1 { left:20%; animation:to-sway 6s ease-in-out infinite; }
.scn-trial-of-orontas .soldier2 { right:20%; animation:to-sway 6s ease-in-out infinite 2s; }
.scn-trial-of-orontas .soldier3 { left:45%; width:5%; height:28%; animation:to-sway 7s ease-in-out infinite 1s; }
.scn-trial-of-orontas .spear1, .scn-trial-of-orontas .spear2 { position:absolute; bottom:35%; width:2%; height:40%; background:linear-gradient(180deg,#5a4a3a 0%,#3a2a1a 100%); border-radius:10% / 50%; animation:to-spear 10s ease-in-out infinite alternate; }
.scn-trial-of-orontas .spear1 { left:21%; }
.scn-trial-of-orontas .spear2 { right:21%; }
.scn-trial-of-orontas .glow { position:absolute; inset:0; background:radial-gradient(circle at 50% 40%, rgba(192,128,64,.15) 0%, transparent 70%); animation:to-glow 4s ease-in-out infinite alternate; }
@keyframes to-glow { 0% { opacity:.7; box-shadow:0 0 20px 5px rgba(192,128,64,.3); } 50% { opacity:1; box-shadow:0 0 40px 10px rgba(255,200,100,.5); } 100% { opacity:.8; box-shadow:0 0 25px 6px rgba(192,128,64,.4); } }
@keyframes to-sway { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes to-spear { 0% { transform:rotate(0deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(0deg); } }

.scn-cyrus-interrogates-orontas { background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 60%, #0a0505 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%); }
.scn-cyrus-interrogates-orontas .tent-wall { position:absolute; inset:5% 10% 20% 10%; background:linear-gradient(135deg,#4a2a1a 0%,#2a1a0a 100%); border-radius:20% 20% 5% 5% / 40% 40% 10% 10%; box-shadow:inset 0 0 20px rgba(0,0,0,.8); }
.scn-cyrus-interrogates-orontas .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg,#1a0a0a 0%,#0a0505 100%); }
.scn-cyrus-interrogates-orontas .throne { position:absolute; bottom:18%; left:40%; width:20%; height:30%; background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%); border-radius:10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow:0 5px 10px rgba(0,0,0,.5); animation:ci-breathe 8s ease-in-out infinite; }
.scn-cyrus-interrogates-orontas .cyrus { position:absolute; bottom:18%; left:45%; width:8%; height:25%; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ci-sit 5s ease-in-out infinite alternate; }
.scn-cyrus-interrogates-orontas .orontas { position:absolute; bottom:18%; left:60%; width:7%; height:28%; background:linear-gradient(180deg,#2a1a2a 0%,#1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ci-stand 4s ease-in-out infinite alternate; }
.scn-cyrus-interrogates-orontas .attendant1, .scn-cyrus-interrogates-orontas .attendant2 { position:absolute; bottom:18%; width:6%; height:26%; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-cyrus-interrogates-orontas .attendant1 { left:30%; animation:ci-stand 6s ease-in-out infinite 1s; }
.scn-cyrus-interrogates-orontas .attendant2 { left:70%; animation:ci-stand 6s ease-in-out infinite 2s; }
.scn-cyrus-interrogates-orontas .lamp { position:absolute; top:30%; left:50%; width:4%; height:6%; background:radial-gradient(circle,#ffd060 0%,#c08040 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,208,96,.5); animation:ci-lamp 2s ease-in-out infinite alternate; }
@keyframes ci-breathe { 0% { transform:scale(1); } 50% { transform:scale(1.02); } 100% { transform:scale(1); } }
@keyframes ci-sit { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ci-stand { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ci-lamp { 0% { opacity:.8; box-shadow:0 0 20px 5px rgba(255,208,96,.4); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(255,208,96,.7); } 100% { opacity:.9; box-shadow:0 0 25px 8px rgba(255,208,96,.5); } }

.scn-orontas-confesses { background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 60%, #0a0505 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%); }
.scn-orontas-confesses .tent-bg { position:absolute; inset:5% 15% 15% 15%; background:linear-gradient(135deg,#4a2a1a 0%,#2a1a0a 100%); border-radius:20% 20% 5% 5% / 40% 40% 10% 10%; box-shadow:inset 0 0 20px rgba(0,0,0,.8); }
.scn-orontas-confesses .altar { position:absolute; bottom:20%; left:50%; width:12%; height:15%; transform:translateX(-50%); background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%); border-radius:5%; box-shadow:0 4px 8px rgba(0,0,0,.6); animation:oc-altar 10s ease-in-out infinite alternate; }
.scn-orontas-confesses .fire { position:absolute; bottom:33%; left:50%; width:6%; height:10%; transform:translateX(-50%); background:radial-gradient(circle,#ffd060 0%,#c08040 50%,transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,208,96,.6); animation:oc-fire 1.5s ease-in-out infinite alternate; }
.scn-orontas-confesses .cyrus { position:absolute; bottom:15%; left:35%; width:8%; height:28%; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:oc-sit 6s ease-in-out infinite alternate; }
.scn-orontas-confesses .orontas { position:absolute; bottom:15%; left:55%; width:7%; height:30%; background:linear-gradient(180deg,#2a1a2a 0%,#1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:oc-kneel 4s ease-in-out infinite; }
.scn-orontas-confesses .guard1, .scn-orontas-confesses .guard2 { position:absolute; bottom:15%; width:6%; height:26%; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-orontas-confesses .guard1 { left:22%; animation:oc-stand 7s ease-in-out infinite .5s; }
.scn-orontas-confesses .guard2 { left:72%; animation:oc-stand 7s ease-in-out infinite 1.5s; }
.scn-orontas-confesses .smoke { position:absolute; top:20%; left:48%; width:4%; height:20%; background:radial-gradient(circle,rgba(200,180,140,.3) 0%,transparent 100%); border-radius:50%; filter:blur(4px); animation:oc-smoke 6s ease-in-out infinite; }
@keyframes oc-altar { 0% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.01); } 100% { transform:translateX(-50%) scale(1); } }
@keyframes oc-fire { 0% { opacity:.8; transform:translateX(-50%) scale(1); box-shadow:0 0 20px 5px rgba(255,208,96,.5); } 50% { opacity:1; transform:translateX(-50%) scale(1.1); box-shadow:0 0 40px 15px rgba(255,208,96,.8); } 100% { opacity:.7; transform:translateX(-50%) scale(.9); box-shadow:0 0 15px 3px rgba(255,208,96,.4); } }
@keyframes oc-sit { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes oc-kneel { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(2px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes oc-stand { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(1px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes oc-smoke { 0% { opacity:.3; transform:translateY(0) scale(1); } 50% { opacity:.6; transform:translateY(-20px) scale(1.5); } 100% { opacity:0; transform:translateY(-40px) scale(2); } }

.scn-clearchus-advises-execution { background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 60%, #0a0505 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%); }
.scn-clearchus-advises-execution .tent-bg { position:absolute; inset:5% 10% 20% 10%; background:linear-gradient(135deg,#4a2a1a 0%,#2a1a0a 100%); border-radius:20% 20% 5% 5% / 40% 40% 10% 10%; box-shadow:inset 0 0 20px rgba(0,0,0,.8); }
.scn-clearchus-advises-execution .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg,#1a0a0a 0%,#0a0505 100%); }
.scn-clearchus-advises-execution .cyrus { position:absolute; bottom:18%; left:40%; width:8%; height:25%; background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ca-sit 5s ease-in-out infinite alternate; }
.scn-clearchus-advises-execution .clearchus { position:absolute; bottom:18%; left:52%; width:7%; height:24%; background:linear-gradient(180deg,#2a2a1a 0%,#1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ca-lean 4s ease-in-out infinite alternate; }
.scn-clearchus-advises-execution .orontas { position:absolute; bottom:18%; left:65%; width:6%; height:28%; background:linear-gradient(180deg,#2a1a2a 0%,#1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ca-stand 6s ease-in-out infinite 2s; }
.scn-clearchus-advises-execution .lamp { position:absolute; top:30%; left:48%; width:4%; height:6%; background:radial-gradient(circle,#ffd060 0%,#c08040 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,208,96,.5); animation:ca-lamp 2s ease-in-out infinite alternate; }
.scn-clearchus-advises-execution .table { position:absolute; bottom:18%; left:46%; width:10%; height:5%; background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%); border-radius:5%; box-shadow:0 2px 4px rgba(0,0,0,.5); }
.scn-clearchus-advises-execution .shadow { position:absolute; bottom:18%; left:40%; width:20%; height:10%; background:radial-gradient(ellipse,rgba(0,0,0,.4) 0%,transparent 100%); border-radius:50%; filter:blur(3px); animation:ca-shadow 6s ease-in-out infinite; }
@keyframes ca-sit { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ca-lean { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ca-stand { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ca-lamp { 0% { opacity:.8; box-shadow:0 0 20px 5px rgba(255,208,96,.4); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(255,208,96,.7); } 100% { opacity:.9; box-shadow:0 0 25px 8px rgba(255,208,96,.5); } }
@keyframes ca-shadow { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.5; transform:scale(1.05); } 100% { opacity:.3; transform:scale(1); } }

.scn-cyrus-arms-himself {
  background: linear-gradient(180deg, #4a7a8a 0%, #8ab4c4 35%, #d4c8a0 70%, #b89a5a 100%), radial-gradient(ellipse at 50% 20%, #d4e8f0 0%, transparent 60%);
}
.scn-cyrus-arms-himself .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a9aaa 0%, #aac8d4 100%); }
.scn-cyrus-arms-himself .sun-glint { position:absolute; top:15%; right:30%; width:40px; height:40px; background: radial-gradient(circle, #fff8e0 0%, #ffd680 40%, transparent 70%); border-radius:50%; filter: blur(4px); animation: si1-glint 2s ease-in-out infinite alternate; }
.scn-cyrus-arms-himself .horse-body { position:absolute; bottom:30%; right:15%; width:140px; height:90px; background: radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, #1a1a2a 100%); border-radius: 45% 55% 50% 50% / 60% 60% 40% 40%; box-shadow: inset -10px -10px 20px rgba(0,0,0,.6); animation: si1-horse 3s ease-in-out infinite; }
.scn-cyrus-arms-himself .horse-leg-f { position:absolute; bottom:30%; right:23%; width:10px; height:55px; background: #1a1a2a; border-radius: 30% 30% 10% 10%; transform-origin: top center; animation: si1-leg-f 1.5s ease-in-out infinite; }
.scn-cyrus-arms-himself .horse-leg-b { position:absolute; bottom:30%; right:12%; width:10px; height:55px; background: #1a1a2a; border-radius: 30% 30% 10% 10%; transform-origin: top center; animation: si1-leg-b 1.5s ease-in-out infinite; }
.scn-cyrus-arms-himself .rider-torso { position:absolute; bottom:52%; right:25%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(15deg); animation: si1-rider 3s ease-in-out infinite; }
.scn-cyrus-arms-himself .rider-arm { position:absolute; bottom:58%; right:28%; width:45px; height:8px; background: #2a2a1a; border-radius: 40% 10% 10% 40%; transform-origin: right center; transform: rotate(-45deg); animation: si1-arm 1.5s ease-in-out infinite alternate; }
.scn-cyrus-arms-himself .javelin { position:absolute; bottom:62%; right:38%; width:60px; height:3px; background: linear-gradient(to right, #a08050 0%, #d4b478 40%, #f0e0c0 100%); transform-origin: right center; transform: rotate(-30deg); animation: si1-javelin 1.5s ease-in-out infinite alternate; border-radius: 0 50% 50% 0; }
.scn-cyrus-arms-himself .dust { position:absolute; bottom:25%; left:10%; right:10%; height:30px; background: radial-gradient(ellipse at 30% 100%, #c4a060 0%, transparent 70%); filter: blur(8px); animation: si1-dust 2s ease-in-out infinite alternate; }
@keyframes si1-glint { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(0.9); } }
@keyframes si1-horse { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes si1-leg-f { 0% { transform: rotate(10deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(10deg); } }
@keyframes si1-leg-b { 0% { transform: rotate(-15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-15deg); } }
@keyframes si1-rider { 0% { transform: translateY(0) rotate(15deg); } 50% { transform: translateY(-2px) rotate(18deg); } 100% { transform: translateY(0) rotate(15deg); } }
@keyframes si1-arm { 0% { transform: rotate(-60deg); } 50% { transform: rotate(-30deg); } 100% { transform: rotate(-45deg); } }
@keyframes si1-javelin { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-30deg); } }
@keyframes si1-dust { 0% { opacity:0.3; transform: scale(0.9) translateY(0); } 50% { opacity:0.8; transform: scale(1.1) translateY(-5px); } 100% { opacity:0.4; transform: scale(1) translateY(2px); } }

.scn-asiatic-cavalry-positions {
  background: linear-gradient(180deg, #8ab4c4 0%, #c4d8de 40%, #e8d8a0 70%, #b89a5a 100%), radial-gradient(ellipse at 50% 0%, #d4e8f0 0%, transparent 60%);
}
.scn-asiatic-cavalry-positions .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9aaa 0%, #c4d8de 100%); }
.scn-asiatic-cavalry-positions .horizon-haze { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(232,216,160,.8) 0%, rgba(232,216,160,.2) 100%); filter: blur(10px); animation: si2-haze 12s ease-in-out infinite alternate; }
.scn-asiatic-cavalry-positions .cavalry-line { position:absolute; bottom:30%; left:0; right:0; height:15%; background: radial-gradient(ellipse 8px 20px at 10% 80%, #1a1a2a 0%, transparent 100%), radial-gradient(ellipse 8px 20px at 20% 80%, #1a1a2a 0%, transparent 100%), radial-gradient(ellipse 8px 20px at 30% 80%, #1a1a2a 0%, transparent 100%), radial-gradient(ellipse 8px 20px at 40% 80%, #1a1a2a 0%, transparent 100%), radial-gradient(ellipse 8px 20px at 50% 80%, #1a1a2a 0%, transparent 100%), radial-gradient(ellipse 8px 20px at 60% 80%, #1a1a2a 0%, transparent 100%), radial-gradient(ellipse 8px 20px at 70% 80%, #1a1a2a 0%, transparent 100%), radial-gradient(ellipse 8px 20px at 80% 80%, #1a1a2a 0%, transparent 100%), radial-gradient(ellipse 8px 20px at 90% 80%, #1a1a2a 0%, transparent 100%); animation: si2-cavalry 8s ease-in-out infinite alternate; }
.scn-asiatic-cavalry-positions .peltasts { position:absolute; bottom:32%; left:5%; width:20%; height:10%; background: radial-gradient(ellipse 5px 12px at 20% 80%, #3a4a3a 0%, transparent 100%), radial-gradient(ellipse 5px 12px at 50% 80%, #3a4a3a 0%, transparent 100%), radial-gradient(ellipse 5px 12px at 80% 80%, #3a4a3a 0%, transparent 100%); animation: si2-peltasts 10s ease-in-out infinite alternate; }
.scn-asiatic-cavalry-positions .arian-command { position:absolute; bottom:25%; left:45%; width:12%; height:20%; background: radial-gradient(ellipse 10px 25px at 50% 80%, #2a1a1a 0%, transparent 100%), radial-gradient(ellipse 12px 15px at 50% 60%, #4a3a2a 0%, transparent 100%); animation: si2-command 6s ease-in-out infinite; }
.scn-asiatic-cavalry-positions .spear-forest { position:absolute; bottom:25%; left:0; right:0; height:50%; background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 2px, transparent 2px, transparent 18px); mask-image: linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,0) 100%); -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,0) 100%); animation: si2-spear 4s ease-in-out infinite alternate; }
.scn-asiatic-cavalry-positions .dust-plains { position:absolute; bottom:20%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 50% 100%, #c4a060 0%, transparent 70%); filter: blur(6px); animation: si2-dust 15s ease-in-out infinite alternate; }
@keyframes si2-haze { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:.9; transform: scaleY(1.1); } 100% { opacity:.7; transform: scaleY(0.9); } }
@keyframes si2-cavalry { 0% { transform: translateX(0); opacity:.7; } 50% { transform: translateX(5px); opacity:1; } 100% { transform: translateX(-5px); opacity:.8; } }
@keyframes si2-peltasts { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes si2-command { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes si2-spear { 0% { transform: rotate(0deg); opacity:.8; } 50% { transform: rotate(1deg); opacity:1; } 100% { transform: rotate(-1deg); opacity:.9; } }
@keyframes si2-dust { 0% { transform: scaleX(1) translateX(0); opacity:.5; } 50% { transform: scaleX(1.1) translateX(10px); opacity:.8; } 100% { transform: scaleX(0.9) translateX(-10px); opacity:.6; } }

.scn-enemy-appears-dust {
  background: linear-gradient(180deg, #f0e8d0 0%, #f8f0e0 40%, #d4c4a0 70%, #8a7a5a 100%), radial-gradient(ellipse at 50% 30%, #f8f8e8 0%, transparent 50%);
}
.scn-enemy-appears-dust .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e8dcc0 0%, #f8f4e8 100%); }
.scn-enemy-appears-dust .midday-sun { position:absolute; top:20%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #fff8e0 0%, #ffd680 30%, transparent 70%); border-radius:50%; filter: blur(8px); transform: translateX(-50%); animation: si3-sun 8s ease-in-out infinite alternate; }
.scn-enemy-appears-dust .dust-white { position:absolute; bottom:30%; left:10%; right:10%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(240,230,200,.9) 0%, rgba(240,230,200,.3) 40%, transparent 70%); filter: blur(20px); animation: si3-dust-white 15s ease-in-out infinite alternate; }
.scn-enemy-appears-dust .dust-black { position:absolute; bottom:20%; left:15%; right:15%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(30,20,10,.8) 0%, rgba(30,20,10,.1) 60%, transparent 100%); filter: blur(10px); animation: si3-dust-black 15s ease-in-out infinite alternate; }
.scn-enemy-appears-dust .armor-glint-1 { position:absolute; bottom:35%; left:30%; width:4px; height:4px; background:#fff8e0; border-radius:50%; box-shadow: 0 0 6px 2px #ffd680; animation: si3-glint 2s ease-in-out infinite alternate; }
.scn-enemy-appears-dust .armor-glint-2 { position:absolute; bottom:40%; left:60%; width:3px; height:3px; background:#fff8e0; border-radius:50%; box-shadow: 0 0 4px 1px #ffd680; animation: si3-glint 2.5s ease-in-out infinite alternate-reverse; }
.scn-enemy-appears-dust .scouts { position:absolute; bottom:15%; left:10%; width:15%; height:20%; background: radial-gradient(ellipse 6px 15px at 30% 80%, #1a1a2a 0%, transparent 100%), radial-gradient(ellipse 6px 15px at 70% 80%, #1a1a2a 0%, transparent 100%); animation: si3-scouts 6s ease-in-out infinite; }
.scn-enemy-appears-dust .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); animation: si3-tremble 0.5s ease-in-out infinite alternate; }
@keyframes si3-sun { 0% { transform: translateX(-50%) scale(0.9); opacity:.8; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:.9; } }
@keyframes si3-dust-white { 0% { transform: scale(0.9) translateY(0); opacity:.6; } 50% { transform: scale(1.1) translateY(-10px); opacity:1; } 100% { transform: scale(1) translateY(5px); opacity:.8; } }
@keyframes si3-dust-black { 0% { transform: scale(0.8) translateY(0); opacity:.5; } 50% { transform: scale(1.2) translateY(-8px); opacity:.9; } 100% { transform: scale(1) translateY(4px); opacity:.7; } }
@keyframes si3-glint { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.8); } }
@keyframes si3-scouts { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(5px) translateY(-2px); } 100% { transform: translateX(-5px) translateY(1px); } }
@keyframes si3-tremble { 0% { transform: translateX(-2px); } 25% { transform: translateX(1px); } 50% { transform: translateX(-1px); } 75% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }

.scn-enemy-line-description {
  background: linear-gradient(180deg, #d4dce8 0%, #f0e8d0 50%, #a48a6a 100%), radial-gradient(ellipse at 50% 0%, #f0f0f8 0%, transparent 60%);
}
.scn-enemy-line-description .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8ecf0 0%, #f8f4e8 100%); }
.scn-enemy-line-description .cuirass-line { position:absolute; bottom:40%; left:0; right:0; height:18%; background: repeating-linear-gradient(90deg, #f0ece0 0px, #f0ece0 15px, #d4c8b0 15px, #d4c8b0 30px); mask-image: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,1) 0%, rgba(0,0,0,.8) 50%, rgba(0,0,0,0) 100%); -webkit-mask-image: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,1) 0%, rgba(0,0,0,.8) 50%, rgba(0,0,0,0) 100%); animation: si4-advance 8s ease-in-out infinite alternate; }
.scn-enemy-line-description .wicker-shields { position:absolute; bottom:25%; left:5%; right:5%; height:30%; background: radial-gradient(ellipse 12px 18px at 10% 50%, #c8553d 0%, #a0461a 80%, transparent 100%), radial-gradient(ellipse 12px 18px at 20% 50%, #c8553d 0%, #a0461a 80%, transparent 100%), radial-gradient(ellipse 12px 18px at 30% 50%, #c8553d 0%, #a0461a 80%, transparent 100%), radial-gradient(ellipse 12px 18px at 40% 50%, #c8553d 0%, #a0461a 80%, transparent 100%), radial-gradient(ellipse 12px 18px at 50% 50%, #c8553d 0%, #a0461a 80%, transparent 100%), radial-gradient(ellipse 12px 18px at 60% 50%, #c8553d 0%, #a0461a 80%, transparent 100%), radial-gradient(ellipse 12px 18px at 70% 50%, #c8553d 0%, #a0461a 80%, transparent 100%), radial-gradient(ellipse 12px 18px at 80% 50%, #c8553d 0%, #a0461a 80%, transparent 100%), radial-gradient(ellipse 12px 18px at 90% 50%, #c8553d 0%, #a0461a 80%, transparent 100%); animation: si4-rattle 3s ease-in-out infinite alternate; }
.scn-enemy-line-description .wooden-shields { position:absolute; bottom:15%; left:2%; right:2%; height:35%; background: repeating-linear-gradient(90deg, #8a6a4a 0px, #8a6a4a 18px, #6a4a2a 18px, #6a4a2a 22px, transparent 22px, transparent 25px); mask-image: linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(0,0,0,.5) 100%); -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(0,0,0,.5) 100%); animation: si4-advance 8s ease-in-out infinite alternate; }
.scn-enemy-line-description .spear-tips { position:absolute; bottom:50%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #e0d8c0 0px, #e0d8c0 2px, transparent 2px, transparent 25px); mask-image: linear-gradient(180deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,0) 100%); -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,0) 100%); animation: si4-spear-dip 4s ease-in-out infinite alternate; }
.scn-enemy-line-description .helmets { position:absolute; bottom:45%; left:0; right:0; height:8%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 12px, #6a4a3a 12px, #6a4a3a 16px, transparent 16px, transparent 30px); mask-image: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,1) 0%, rgba(0,0,0,.8) 50%, rgba(0,0,0,0) 100%); -webkit-mask-image: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,1) 0%, rgba(0,0,0,.8) 50%, rgba(0,0,0,0) 100%); animation: si4-advance 8s ease-in-out infinite alternate; }
.scn-enemy-line-description .ground-dust { position:absolute; bottom:5%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 50% 100%, #b89a5a 0%, transparent 70%); filter: blur(6px); animation: si4-dust 10s ease-in-out infinite alternate; }
@keyframes si4-advance { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.02); } 100% { transform: translateX(-5px) scaleX(0.98); } }
@keyframes si4-rattle { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes si4-spear-dip { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes si4-dust { 0% { opacity:.4; transform: scaleY(1); } 50% { opacity:.8; transform: scaleY(1.2); } 100% { opacity:.6; transform: scaleY(0.9); } }

.scn-orontas-failed {
  background:
    linear-gradient(180deg, #1f1a2e 0%, #2a2238 40%, #1c1628 100%),
    radial-gradient(ellipse at 30% 60%, #3a2e4a 0%, transparent 70%);
}
.scn-orontas-failed .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #15101f 0%, #2a2238 50%, #1f1a2e 100%);
  animation: or-bg 20s ease-in-out infinite alternate;
}
.scn-orontas-failed .lamp {
  position: absolute; bottom: 30%; left: 20%;
  width: 16px; height: 24px;
  background: linear-gradient(180deg, #c8944a 0%, #8a5e2e 100%);
  border-radius: 10% 10% 30% 30%;
  animation: or-lamp 3s ease-in-out infinite alternate;
}
.scn-orontas-failed .lamp-glow {
  position: absolute; bottom: 32%; left: 18%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #f0c068 0%, #c8944a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: or-glow 4s ease-in-out infinite alternate;
}
.scn-orontas-failed .figure {
  position: absolute; bottom: 8%; left: 35%;
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a2028 0%, #0e0c14 100%);
  border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%;
  transform-origin: bottom center;
  animation: or-figure 6s ease-in-out infinite alternate;
}
.scn-orontas-failed .table {
  position: absolute; bottom: 12%; left: 25%;
  width: 50px; height: 6px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c1410 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-orontas-failed .shadow-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  animation: or-shadow 10s ease-in-out infinite alternate;
}
.scn-orontas-failed .dust-a {
  position: absolute; top: 20%; left: 10%;
  width: 4px; height: 4px;
  background: rgba(200, 180, 150, .3);
  border-radius: 50%;
  filter: blur(1px);
  animation: or-dust-a 12s linear infinite;
}
.scn-orontas-failed .dust-b {
  position: absolute; top: 40%; right: 15%;
  width: 3px; height: 3px;
  background: rgba(200, 180, 150, .2);
  border-radius: 50%;
  filter: blur(1px);
  animation: or-dust-b 15s linear infinite reverse;
}

@keyframes or-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes or-lamp { 0% { transform: scaleY(1); opacity: .9; } 50% { transform: scaleY(1.04); opacity: 1; } 100% { transform: scaleY(1); opacity: .85; } }
@keyframes or-glow { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .75; transform: scale(1); } }
@keyframes or-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes or-shadow { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .4; } }
@keyframes or-dust-a { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: .5; } 90% { opacity: .3; } 100% { transform: translate(60px, -30px) scale(2); opacity: 0; } }
@keyframes or-dust-b { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: .4; } 90% { opacity: .2; } 100% { transform: translate(-50px, -40px) scale(3); opacity: 0; } }

.scn-item-dancing-girl-pyrrhic {
  background:
    linear-gradient(180deg, #1a0c08 0%, #2d1410 40%, #0f0704 100%),
    radial-gradient(ellipse at 50% 60%, #4a1c10 0%, transparent 70%);
}
.scn-item-dancing-girl-pyrrhic .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a1c10 0%, #1a0c06 100%);
  border-radius: 30% 70% 0 0 / 50% 40% 0 0;
}
.scn-item-dancing-girl-pyrrhic .fire-core {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 80%, #ffb050 0%, #e06020 50%, #8a2a10 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: da-fire 1.5s ease-in-out infinite alternate;
}
.scn-item-dancing-girl-pyrrhic .fire-glow {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: radial-gradient(circle, #ffb050 0%, #e06020 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: da-glow 2s ease-in-out infinite alternate;
}
.scn-item-dancing-girl-pyrrhic .girl {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0704 100%);
  border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-girl 1.8s ease-in-out infinite;
}
.scn-item-dancing-girl-pyrrhic .spectator-left {
  position: absolute; bottom: 20%; left: 15%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #1c0e08 0%, #0a0402 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: da-spectator 2.2s ease-in-out infinite;
}
.scn-item-dancing-girl-pyrrhic .spectator-right {
  position: absolute; bottom: 18%; right: 15%;
  width: 22px; height: 42px;
  background: linear-gradient(180deg, #1c0e08 0%, #0a0402 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: da-spectator 2.5s ease-in-out infinite reverse;
}
.scn-item-dancing-girl-pyrrhic .spark-a {
  position: absolute; bottom: 35%; left: 48%;
  width: 4px; height: 4px;
  background: #ffb050;
  border-radius: 50%;
  box-shadow: 0 0 6px #ffb050;
  filter: blur(1px);
  animation: da-spark 3s linear infinite;
}
.scn-item-dancing-girl-pyrrhic .spark-b {
  position: absolute; bottom: 38%; left: 52%;
  width: 3px; height: 3px;
  background: #ffa040;
  border-radius: 50%;
  box-shadow: 0 0 4px #ffa040;
  filter: blur(1px);
  animation: da-spark 4s linear infinite 1.5s;
}

@keyframes da-fire { 0% { transform: translateX(-50%) scaleY(1) scaleX(.9); } 50% { transform: translateX(-50%) scaleY(1.15) scaleX(1.1); } 100% { transform: translateX(-50%) scaleY(1) scaleX(1); } }
@keyframes da-glow { 0% { opacity: .6; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.2); } 100% { opacity: .7; transform: translateX(-50%) scale(1); } }
@keyframes da-girl { 0% { transform: translateX(-50%) rotate(-8deg) translateY(0); } 25% { transform: translateX(-45%) rotate(5deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0deg) translateY(0); } 75% { transform: translateX(-55%) rotate(-5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(8deg) translateY(0); } }
@keyframes da-spectator { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes da-spark { 0% { transform: translate(0, 0) scale(1); opacity: 1; } 50% { transform: translate(5px, -40px) scale(1.5); opacity: .7; } 100% { transform: translate(-5px, -80px) scale(2); opacity: 0; } }

/* Scene: coeratadas-fails — sunlit, funny */
.scn-coeratadas-fails {
  background:
    linear-gradient(180deg, #b3d9ff 0%, #ffe6b3 100%),
    radial-gradient(circle at 20% 25%, rgba(255,230,150,0.4) 0%, transparent 50%);
  overflow: hidden;
}

.scn-coeratadas-fails .sun {
  position: absolute;
  top: 5vh;
  left: 15vw;
  width: 12vh;
  height: 12vh;
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 70%, transparent 100%);
  border-radius: 50%;
  animation: cof-sun 6s ease-in-out infinite alternate;
}

.scn-coeratadas-fails .altar {
  position: absolute;
  bottom: 20vh;
  left: 50%;
  transform: translateX(-50%);
  width: 30vw;
  height: 15vh;
  background: linear-gradient(180deg, #8B5A2B 0%, #5D3A1A 100%);
  border-radius: 5px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}

.scn-coeratadas-fails .figure {
  position: absolute;
  bottom: 20vh;
  left: 30vw;
  width: 8vw;
  height: 20vh;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cof-figure 2s ease-in-out infinite;
}

.scn-coeratadas-fails .chaplet {
  position: absolute;
  bottom: calc(20vh + 20vh); /* on top of figure head */
  left: 30vw;
  width: 10vw;
  height: 3vh;
  background: radial-gradient(circle, #a8d08d 0%, #6b8e23 100%);
  border-radius: 50% 50% 0 0;
  animation: cof-chaplet 3s ease-in-out infinite;
}

.scn-coeratadas-fails .animal-body {
  position: absolute;
  bottom: 20vh;
  left: 60vw;
  width: 10vw;
  height: 8vh;
  background: #f5e6d3;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}

.scn-coeratadas-fails .animal-head {
  position: absolute;
  bottom: calc(20vh + 8vh - 2vh); /* adjust to sit on body */
  left: 65vw;
  width: 5vw;
  height: 5vh;
  background: #f5e6d3;
  border-radius: 50%;
  box-shadow: inset 0 -1px 3px rgba(0,0,0,0.1);
  animation: cof-animal 1.5s ease-in-out infinite;
}

.scn-coeratadas-fails .smoke {
  position: absolute;
  bottom: 40vh;
  left: 50vw;
  width: 6vw;
  height: 6vw;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(5px);
  animation: cof-smoke 8s ease-in-out infinite;
}

.scn-coeratadas-fails .smoke-2 {
  left: 48vw;
  width: 4vw;
  height: 4vw;
  filter: blur(3px);
  animation-delay: -4s;
  animation-duration: 10s;
}

@keyframes cof-sun {
  0%   { transform: scale(1); opacity: 0.8; }
  50%  { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.9; }
}

@keyframes cof-figure {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}

@keyframes cof-chaplet {
  0%   { transform: rotate(0deg) scale(1); }
  50%  { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-3deg) scale(0.95); }
}

@keyframes cof-animal {
  0%   { transform: rotate(0deg) translateY(0); }
  25%  { transform: rotate(5deg) translateY(-1px); }
  50%  { transform: rotate(0deg) translateY(0); }
  75%  { transform: rotate(-5deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

@keyframes cof-smoke {
  0%   { transform: translateY(0) scale(0.8); opacity: 0.6; }
  50%  { transform: translateY(-5vh) scale(1.2); opacity: 0.3; }
  100% { transform: translateY(-10vh) scale(1.5); opacity: 0; }
}

.scn-coeratedas-fails {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f5deb3 100%),
              radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 60%);
}
.scn-coeratedas-fails .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0c4de 100%);
  animation: cf-skyglow 6s ease-in-out infinite alternate;
}
.scn-coeratedas-fails .sun {
  position: absolute; top: 5%; left: 20%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,215,0,0.5);
  animation: cf-sunpulse 6s ease-in-out infinite;
}
.scn-coeratedas-fails .altar {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 60px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-coeratedas-fails .priest {
  position: absolute; bottom: 38%; left: 36%;
  width: 28px; height: 80px;
  background: linear-gradient(180deg, #f0e68c 0%, #d2b48c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cf-priestwiggle 2s ease-in-out infinite;
}
.scn-coeratedas-fails .priest::before {
  content: ''; position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #d2b48c 100%);
  border-radius: 50%;
  border: 2px solid #b8860b;
}
.scn-coeratedas-fails .goat {
  position: absolute; bottom: 25%; left: 55%;
  width: 40px; height: 30px;
  background: linear-gradient(180deg, #ddd 0%, #a9a9a9 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: cf-goatjump 3s ease-in-out infinite;
}
.scn-coeratedas-fails .goat::after {
  content: ''; position: absolute; top: -8px; left: 5px;
  width: 4px; height: 10px;
  background: #696969;
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
}
.scn-coeratedas-fails .flame {
  position: absolute; bottom: calc(20% + 60px); left: 50%; transform: translateX(-50%);
  width: 12px; height: 20px;
  background: radial-gradient(ellipse at bottom, #ff4500 0%, #ffa500 40%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: cf-flameflicker 1.5s ease-in-out infinite alternate;
}
.scn-coeratedas-fails .cloud {
  position: absolute; top: 12%; right: 10%;
  width: 60px; height: 18px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: cf-clouddrift 30s linear infinite;
}

@keyframes cf-skyglow {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cf-sunpulse {
  0% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(255,215,0,0.5); }
  50% { transform: scale(1.1); box-shadow: 0 0 40px 20px rgba(255,215,0,0.7); }
  100% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(255,215,0,0.5); }
}
@keyframes cf-priestwiggle {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(3deg); }
  50% { transform: translateX(-2px) rotate(-4deg); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cf-goatjump {
  0% { transform: translateY(0) scaleX(1); }
  25% { transform: translateY(-6px) scaleX(1.05); }
  50% { transform: translateY(0) scaleX(0.95); }
  75% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes cf-flameflicker {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.3) scaleX(0.9); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.9) scaleX(1.1); opacity: 0.85; }
}
@keyframes cf-clouddrift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

.scn-orontas-failed {
  background:
    linear-gradient(180deg, #2b1a0e 0%, #1f1107 50%, #0d0703 100%),
    radial-gradient(ellipse at 40% 60%, #3d2b1a 0%, transparent 70%);
}
.scn-orontas-failed .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  animation: of-wall 20s ease-in-out infinite alternate;
}
.scn-orontas-failed .window-frame {
  position: absolute;
  top: 12%;
  left: 35%;
  width: 120px;
  height: 160px;
  background: #2a1a0a;
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-orontas-failed .window-glass {
  position: absolute;
  top: 16%;
  left: 39%;
  width: 90px;
  height: 140px;
  background: linear-gradient(180deg, #1a3a5a 0%, #2a4a6a 50%, #1a2a3a 100%);
  opacity: 0.3;
  border-radius: 2px;
  box-shadow: 0 0 30px rgba(100,150,200,0.1);
  animation: of-glass 12s ease-in-out infinite alternate;
}
.scn-orontas-failed .desk {
  position: absolute;
  bottom: 18%;
  left: 20%;
  right: 20%;
  height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.7);
}
.scn-orontas-failed .candle {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 16px;
  height: 50px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0b070 50%, #806040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 10px rgba(200,150,80,0.5);
  animation: of-candle 8s ease-in-out infinite;
}
.scn-orontas-failed .flame {
  position: absolute;
  bottom: calc(30% + 50px);
  left: calc(45% + 8px);
  width: 12px;
  height: 20px;
  background: radial-gradient(circle, #ffe080 0%, #ffb040 40%, #ff8000 70%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px 10px rgba(255,160,0,0.6), 0 0 60px 20px rgba(255,100,0,0.3);
  animation: of-flame 3s ease-in-out infinite alternate;
}
.scn-orontas-failed .figure {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 40px;
  height: 120px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: of-figure 6s ease-in-out infinite alternate;
}
.scn-orontas-failed .shadow {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 80px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: of-shadow 6s ease-in-out infinite alternate;
}
@keyframes of-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes of-glass {
  0% { opacity: 0.25; box-shadow: 0 0 20px rgba(100,150,200,0.05); }
  50% { opacity: 0.35; box-shadow: 0 0 40px rgba(100,150,200,0.15); }
  100% { opacity: 0.3; box-shadow: 0 0 30px rgba(100,150,200,0.1); }
}
@keyframes of-candle {
  0%,100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
}
@keyframes of-flame {
  0% { transform: scale(1) rotate(-3deg); box-shadow: 0 0 30px 10px rgba(255,160,0,0.6), 0 0 60px 20px rgba(255,100,0,0.3); }
  30% { transform: scale(1.1, 1.3) rotate(2deg); box-shadow: 0 0 40px 15px rgba(255,180,0,0.7), 0 0 80px 30px rgba(255,120,0,0.4); }
  60% { transform: scale(0.95, 1.1) rotate(-2deg); box-shadow: 0 0 25px 8px rgba(255,140,0,0.5), 0 0 50px 15px rgba(255,80,0,0.2); }
  100% { transform: scale(1) rotate(1deg); box-shadow: 0 0 30px 10px rgba(255,160,0,0.6), 0 0 60px 20px rgba(255,100,0,0.3); }
}
@keyframes of-figure {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes of-shadow {
  0% { transform: skewX(0) scaleX(1); opacity: 0.5; }
  50% { transform: skewX(5deg) scaleX(1.2); opacity: 0.7; }
  100% { transform: skewX(-2deg) scaleX(0.9); opacity: 0.6; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.coin { position: absolute; pointer-events: none; }
.footnote-line { position: absolute; pointer-events: none; }
.mob { position: absolute; pointer-events: none; }
.particle { position: absolute; pointer-events: none; }
.raised { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.seed { position: absolute; pointer-events: none; }
.sil { position: absolute; pointer-events: none; }
.xr-cloud { position: absolute; pointer-events: none; }
.xw-army { position: absolute; pointer-events: none; }
.xw-spear { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-election-of-generals {
  background:
    radial-gradient(ellipse at 50% 30%, #3a2828 0%, #1a1010 100%),
    linear-gradient(180deg, #1c1414 0%, #0e0a0a 100%);
}
.scn-election-of-generals .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e1e 0%, #1a1212 60%, #0e0808 100%);
  animation: eog-flicker 12s ease-in-out infinite alternate;
}
.scn-election-of-generals .dais {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 12px;
  background: linear-gradient(180deg, #5a4230 0%, #2e2018 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-election-of-generals .torch {
  position: absolute; bottom: 24%; width: 6px; height: 36px;
  background: linear-gradient(180deg, #7a5020 0%, #3a2010 100%);
  border-radius: 2px;
}
.scn-election-of-generals .torch-l { left: 20%; }
.scn-election-of-generals .torch-r { right: 20%; }
.scn-election-of-generals .torch::after {
  content: ''; position: absolute; top: -8px; left: -4px;
  width: 14px; height: 14px;
  background: radial-gradient(circle, #f48c30 0%, #b05018 60%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #f48c30;
  animation: eog-fire 1.8s ease-in-out infinite alternate;
}
.scn-election-of-generals .figure-speaker {
  position: absolute; bottom: 25%; left: 44%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eog-speak 3.5s ease-in-out infinite;
}
.scn-election-of-generals .crowd {
  position: absolute; bottom: 18%; width: 100%; height: 30%;
  background: repeating-linear-gradient(90deg,
    transparent 0px, #1a1410 4px, transparent 6px);
  animation: eog-shift 8s linear infinite;
}
.scn-election-of-generals .crowd-far { bottom: 22%; opacity: 0.6; }
.scn-election-of-generals .crowd-near { bottom: 16%; opacity: 0.9; }
.scn-election-of-generals .voting-hand {
  position: absolute; bottom: 32%; left: 55%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom left;
  animation: eog-vote 2s ease-in-out infinite;
}
@keyframes eog-flicker { 0% { opacity: 0.8; } 30% { opacity: 1; } 50% { opacity: 0.7; } 80% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes eog-fire { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes eog-speak { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(6deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(4deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes eog-shift { 0% { transform: translateX(0); } 50% { transform: translateX(-20px); } 100% { transform: translateX(0); } }
@keyframes eog-vote { 0% { transform: translateY(0) rotate(-10deg); } 25% { transform: translateY(-6px) rotate(30deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-4px) rotate(20deg); } 100% { transform: translateY(0) rotate(-5deg); } }

/* xenophon-formation-plan */

.scn-taochian-fortress {
  background: linear-gradient(180deg, #7a8a9a 0%, #9aacba 40%, #c0d0d8 100%), radial-gradient(ellipse at 50% 0, #f0e8d0 0%, transparent 60%);
}
.scn-taochian-fortress .sky-sun {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c4d4 0%, #e0e8f0 100%);
  animation: tf-sky 10s ease-in-out infinite alternate;
}
.scn-taochian-fortress .cliff {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-taochian-fortress .fortress-wall {
  position: absolute; bottom: 35%; left: 35%; width: 120px; height: 70px;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 100%);
  border-radius: 4% 4% 2% 2% / 6% 6% 3% 3%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,255,255,0.2);
}
.scn-taochian-fortress .fortress-tower {
  position: absolute; bottom: 50%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-taochian-fortress .woman-jumping {
  position: absolute; bottom: 55%; left: 50%; width: 14px; height: 26px;
  background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-jump 3s ease-in-out infinite;
}
.scn-taochian-fortress .infant-shadow {
  position: absolute; bottom: 60%; left: 48%; width: 6px; height: 8px;
  background: #3a2a1a;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: tf-infant 3s ease-in-out infinite;
}
.scn-taochian-fortress .sunburst {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,210,0.8) 0%, rgba(255,240,210,0.1) 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: tf-sunburst 8s ease-in-out infinite alternate;
}
@keyframes tf-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tf-jump { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-20px) rotate(-10deg) } 60% { transform: translateY(-15px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tf-infant { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-2px, -8px) scale(0.8) } 100% { transform: translate(0,0) scale(1) } }
@keyframes tf-sunburst { 0% { opacity:0.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.7; transform: translateX(-50%) scale(0.9) } }

/* scene 3: the-sea-the-sea (warm + sunlit) */

.scn-march-to-pergamus { background: linear-gradient(180deg, #f4e8d8 0%, #e8c8a0 50%, #c8a880 100%), radial-gradient(ellipse at 50% 0%, #fff8f0, transparent 60%); }
.scn-march-to-pergamus .bg-sky        { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fff8f0, #f4e8d8); animation: march-sky 20s linear infinite alternate; }
.scn-march-to-pergamus .sun           { position:absolute; top:20%; left:80%; width:60px; height:60px; background: radial-gradient(circle, #fff4d4, #e8b060 50%, transparent 70%); border-radius:50%; animation: march-sun 30s linear infinite; }
.scn-march-to-pergamus .mountains-rear{ position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a080, #8a7050); border-radius: 40% 60% 0 0 / 60% 40% 0 0; animation: march-mtn-rear 25s linear infinite; }
.scn-march-to-pergamus .mountains-fore{ position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7050, #6a5030); border-radius: 60% 40% 0 0 / 40% 60% 0 0; animation: march-mtn-fore 15s linear infinite; }
.scn-march-to-pergamus .road          { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c8a880, #a08060); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-march-to-pergamus .figure-xeno   { position:absolute; bottom:5%; left:20%; width:16px; height:40px; background: #4a3a2a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: march-walk-xeno 1s ease-in-out infinite; }
.scn-march-to-pergamus .figure-soldiers{ position:absolute; bottom:5%; left:35%; width:14px; height:38px; background: #7a5a3a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: march-walk-sold 1.1s ease-in-out infinite; }
.scn-march-to-pergamus .spear         { position:absolute; bottom:10%; left:22%; width:3px; height:50px; background: #3a2a1a; border-radius: 1px; transform: rotate(10deg); animation: march-spear 1s ease-in-out infinite; }
.scn-march-to-pergamus .dust-puff     { position:absolute; bottom:2%; left:15%; width:20px; height:10px; background: rgba(200,168,128,.6); border-radius: 50%; filter: blur(4px); animation: march-dust 2s ease-out infinite; animation-delay: -1s; }

@keyframes march-sky      { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes march-sun      { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }
@keyframes march-mtn-rear { 0% { transform: translateX(0); } 50% { transform: translateX(-30px); } 100% { transform: translateX(0); } }
@keyframes march-mtn-fore { 0% { transform: translateX(0); } 50% { transform: translateX(-60px); } 100% { transform: translateX(0); } }
@keyframes march-walk-xeno{ 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes march-walk-sold{ 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes march-spear    { 0% { transform: rotate(10deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(10deg); } }
@keyframes march-dust     { 0% { transform: translateX(0) scale(1); opacity: .6; } 50% { transform: translateX(15px) scale(1.5); opacity: .3; } 100% { transform: translateX(30px) scale(2); opacity: 0; } }

/* --- Scene: assault-on-asidates-tower (Tense, Moonlit) --- */

.scn-colchians-routed { background: linear-gradient(180deg, #5b4a62 0%, #7a6873 30%, #c2a68d 100%), radial-gradient(ellipse at 30% 0%, #e8b088 0%, transparent 60%); }
.scn-colchians-routed .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3d3942 0%, #5b4a62 40%, #e8b088 100%); animation: cr-sky 10s ease-in-out infinite alternate; }
.scn-colchians-routed .dust-layer { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(200,170,140,.4) 0%, transparent 100%); filter: blur(8px); animation: cr-dust 15s ease-in-out infinite alternate; }
.scn-colchians-routed .soldier { position:absolute; bottom:18%; width:14px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-colchians-routed .soldier-1 { left:20%; animation: cr-march 8s ease-in-out infinite; }
.scn-colchians-routed .soldier-2 { left:40%; animation: cr-march 8s ease-in-out infinite 1s; }
.scn-colchians-routed .soldier-3 { left:60%; animation: cr-march 8s ease-in-out infinite 2s; }
.scn-colchians-routed .spear { position:absolute; bottom:28%; left:30%; width:2px; height:40px; background: #a08060; transform: rotate(-20deg); transform-origin: bottom; animation: cr-spear 4s ease-in-out infinite; }
.scn-colchians-routed .banner { position:absolute; bottom:34%; left:55%; width:16px; height:12px; background: linear-gradient(135deg, #8c5a3a 0%, #5a3a22 100%); border-radius: 0 40% 40% 0; box-shadow: 0 0 6px rgba(0,0,0,.3); animation: cr-flag 3s ease-in-out infinite alternate; }
.scn-colchians-routed .mountain { position:absolute; bottom:40%; left:10%; width:120px; height:50px; background: linear-gradient(180deg, #4a3f45 0%, #2e2529 100%); border-radius: 60% 60% 0 0 / 80% 80% 0 0; transform: scale(1.2); }
@keyframes cr-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cr-dust { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(.98) } }
@keyframes cr-march { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(1deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes cr-spear { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } }
@keyframes cr-flag { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(.95) } }

.scn-trapezus-arrival { background: linear-gradient(180deg, #87ceeb 0%, #fdf5e6 60%, #deb887 100%), radial-gradient(ellipse at 70% 20%, #ffd700 0%, transparent 50%); }
.scn-trapezus-arrival .sky-sun { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0e6 0%, #fdf5e6 100%); animation: ta-sky 12s ease-in-out infinite alternate; }
.scn-trapezus-arrival .hill { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%); border-radius: 50% 50% 0 0; }
.scn-trapezus-arrival .hill-back { bottom:35%; height:18%; background: linear-gradient(180deg, #7c9d7c 0%, #5a7a1a 100%); z-index:-1; animation: ta-hill 20s ease-in-out infinite alternate; }
.scn-trapezus-arrival .hill-mid { bottom:30%; background: linear-gradient(180deg, #9acd32 0%, #7da600 100%); }
.scn-trapezus-arrival .gate { position:absolute; bottom:28%; left:50%; width:40px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #c4a882 0%, #8b7355 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-trapezus-arrival .wall { position:absolute; bottom:30%; left:30%; width:60px; height:30px; background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%); border-radius: 5%; box-shadow: inset 0 2px 4px rgba(0,0,0,.2); }
.scn-trapezus-arrival .arriving { position:absolute; bottom:24%; left:10%; width:16px; height:36px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ta-walk 8s ease-in-out infinite; }
.scn-trapezus-arrival .wheat { position:absolute; bottom:22%; left:70%; width:8px; height:30px; background: linear-gradient(180deg, #f0e68c 0%, #daa520 100%); border-radius: 50% 50% 10% 10%; transform: rotate(10deg); animation: ta-sway 4s ease-in-out infinite alternate; }
@keyframes ta-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ta-hill { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ta-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(15px) rotate(1deg) } 50% { transform: translateX(30px) rotate(-1deg) } 75% { transform: translateX(45px) rotate(1deg) } 100% { transform: translateX(60px) rotate(0) } }
@keyframes ta-sway { 0% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(8deg) } }

.scn-dracontius-games { background: linear-gradient(180deg, #87cefa 0%, #f5deb3 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%); }
.scn-dracontius-games .sky-clear { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0e0ff 0%, #f5deb3 100%); animation: dg-sky 10s ease-in-out infinite alternate; }
.scn-dracontius-games .ridge { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #c4a882 0%, #8b7355 100%); border-radius: 80% 80% 0 0 / 60% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-dracontius-games .runner { position:absolute; bottom:32%; width:12px; height:34px; background: linear-gradient(180deg, #b22222 0%, #800000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-dracontius-games .runner-1 { left:20%; animation: dg-run 3s ease-in-out infinite; }
.scn-dracontius-games .runner-2 { left:50%; animation: dg-run 3s ease-in-out infinite 1.5s; }
.scn-dracontius-games .crowd { position:absolute; bottom:28%; width:60px; height:20px; background: repeating-linear-gradient(90deg, #6a5acd 0px, #6a5acd 6px, transparent 6px, transparent 8px); border-radius: 20% 20% 0 0; }
.scn-dracontius-games .crowd-left { left:5%; }
.scn-dracontius-games .crowd-right { right:5%; }
.scn-dracontius-games .dust-spot { position:absolute; bottom:32%; left:30%; width:16px; height:8px; background: rgba(210,180,140,.4); border-radius: 50%; filter: blur(4px); animation: dg-dust 2s ease-in-out infinite; }
@keyframes dg-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dg-run { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(20px) rotate(3deg) } 50% { transform: translateX(40px) rotate(-2deg) } 75% { transform: translateX(60px) rotate(2deg) } 100% { transform: translateX(80px) rotate(0) } }
@keyframes dg-dust { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.3) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }

.scn-building-roads { background: linear-gradient(180deg, #b0c4de 0%, #f5f5dc 40%, #deb887 100%), radial-gradient(ellipse at 50% 0%, #f0e68c 0%, transparent 60%); }
.scn-building-roads .sky-calm { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #cce0ff 0%, #f5f5dc 100%); animation: br-sky 15s ease-in-out infinite alternate; }
.scn-building-roads .ground { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); border-radius: 10% 10% 0 0; }
.scn-building-roads .road-in-progress { position:absolute; bottom:15%; left:20%; width:60%; height:8px; background: repeating-linear-gradient(90deg, #c4a882 0px, #c4a882 10px, #8b7355 10px, #8b7355 12px); border-radius: 2px; }
.scn-building-roads .worker { position:absolute; bottom:22%; width:14px; height:36px; background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-building-roads .worker-1 { left:30%; animation: br-work 6s ease-in-out infinite; }
.scn-building-roads .worker-2 { left:50%; animation: br-work 6s ease-in-out infinite 3s; }
.scn-building-roads .tent { position:absolute; bottom:24%; left:5%; width:45px; height:35px; background: linear-gradient(135deg, #d2b48c 0%, #8b7355 100%); border-radius: 10% 10% 5% 5%; transform: skewX(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.scn-building-roads .tool { position:absolute; bottom:22%; left:40%; width:4px; height:20px; background: #6b5b45; transform: rotate(30deg); transform-origin: bottom; animation: br-tool 4s ease-in-out infinite alternate; }
.scn-building-roads .supply-cart { position:absolute; bottom:20%; left:70%; width:25px; height:16px; background: linear-gradient(180deg, #a09080 0%, #7a6a5a 100%); border-radius: 20% 20% 5% 5%; animation: br-cart 8s ease-in-out infinite; }
@keyframes br-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes br-work { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes br-tool { 0% { transform: rotate(30deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(20deg) } }
@keyframes br-cart { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

.scn-maeander-crossing {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #E0F6FF 40%, #B0E0E6 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255,255,200,0.6) 0%, transparent 60%);
}
.scn-maeander-crossing .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #FFE4B5 0%, #87CEEB 100%);
  animation: mc-sky 20s ease-in-out infinite alternate;
}
.scn-maeander-crossing .hills {
  position:absolute; bottom:40%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 30% 70% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.3);
  animation: mc-hills 15s ease-in-out infinite alternate;
}
.scn-maeander-crossing .river {
  position:absolute; bottom:25%; left:0; right:0; height:18%;
  background: linear-gradient(180deg, #4682B4 0%, #5F9EA0 50%, #3A6B8C 100%);
  border-radius: 0 0 30% 30%;
  animation: mc-river 10s ease-in-out infinite alternate;
}
.scn-maeander-crossing .bridge {
  position:absolute; bottom:28%; left:20%; width:60%; height:8%;
  background: linear-gradient(180deg, #8B4513 0%, #5D3A1A 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 -3px 6px rgba(0,0,0,0.4);
  animation: mc-bridge 12s ease-in-out infinite;
}
.scn-maeander-crossing .boat {
  position:absolute; bottom:22%; width:12%; height:6%;
  background: linear-gradient(180deg, #8B4513 0%, #4A2A0A 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-maeander-crossing .boat-a { left:22%; animation: mc-boat-a 8s ease-in-out infinite; }
.scn-maeander-crossing .boat-b { left:42%; animation: mc-boat-b 10s ease-in-out infinite; }
.scn-maeander-crossing .boat-c { left:62%; animation: mc-boat-c 12s ease-in-out infinite; }
.scn-maeander-crossing .figure-crossing {
  position:absolute; bottom:32%; left:45%; width:10px; height:20px;
  background: linear-gradient(180deg, #2E2E2E 0%, #1A1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mc-walk 6s ease-in-out infinite;
}
.scn-maeander-crossing .sun {
  position:absolute; top:8%; right:15%; width:40px; height:40px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.5);
  animation: mc-sun-pulse 8s ease-in-out infinite alternate;
}
@keyframes mc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mc-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mc-river { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mc-bridge { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes mc-boat-a { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mc-boat-b { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mc-boat-c { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mc-walk { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(8px) translateY(-1px) rotate(3deg); } 50% { transform: translateX(16px) translateY(0) rotate(0); } 75% { transform: translateX(24px) translateY(-1px) rotate(-3deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes mc-sun-pulse { 0% { transform: scale(1); opacity:0.9; } 100% { transform: scale(1.05); opacity:1; } }

.scn-celaenae-review {
  background: 
    linear-gradient(180deg, #F5DEB3 0%, #EEDC82 30%, #D2B48C 100%),
    radial-gradient(ellipse at 50% 0%, #FFFAF0 0%, transparent 60%);
}
.scn-celaenae-review .bg-palace {
  position:absolute; inset:0 30% 30% 0;
  background: linear-gradient(180deg, #C4A882 0%, #A08060 100%);
  border-radius: 0 0 5% 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3);
}
.scn-celaenae-review .palace-wall {
  position:absolute; bottom:30%; left:5%; width:25%; height:40%;
  background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%);
  border: 2px solid #8B7355;
  border-radius: 3% 3% 0 0;
}
.scn-celaenae-review .columns {
  position:absolute; bottom:20%; left:8%; width:20%; height:50%;
  background: repeating-linear-gradient(90deg, #CD853F 0px, #CD853F 8px, transparent 8px, transparent 20px);
  border-radius: 2% 2% 0 0;
}
.scn-celaenae-review .park-grass {
  position:absolute; bottom:15%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #7CCD7C 0%, #6B8E23 100%);
  border-radius: 40% 40% 0 0;
}
.scn-celaenae-review .tree {
  position:absolute; bottom:20%; width:30px; height:60px;
  background: linear-gradient(180deg, #228B22 0%, #006400 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
}
.scn-celaenae-review .tree-a { left:60%; animation: cr-tree-a 12s ease-in-out infinite; }
.scn-celaenae-review .tree-b { left:80%; animation: cr-tree-b 15s ease-in-out infinite; }
.scn-celaenae-review .beast {
  position:absolute; bottom:22%; left:70%; width:30px; height:20px;
  background: linear-gradient(180deg, #8B4513 0%, #5D3A1A 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 2px 0 0 #3A1F0A;
  animation: cr-beast 8s ease-in-out infinite alternate;
}
.scn-celaenae-review .cyrus-figure {
  position:absolute; bottom:25%; left:15%; width:12px; height:24px;
  background: linear-gradient(180deg, #2F1B0E 0%, #1A0F06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cr-cyrus 6s ease-in-out infinite;
}
@keyframes cr-tree-a { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes cr-tree-b { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }
@keyframes cr-beast { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes cr-cyrus { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-army-numbers {
  background: 
    linear-gradient(180deg, #C0C0C0 0%, #A9A9A9 40%, #808080 100%),
    radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.2) 0%, transparent 70%);
}
.scn-army-numbers .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 30% 30% 0 0;
}
.scn-army-numbers .sky-overcast {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #D3D3D3 0%, #B0B0B0 100%);
  animation: an-sky 20s ease-in-out infinite alternate;
}
.scn-army-numbers .hoplite-row {
  position:absolute; bottom:30%; left:10%; width:80%; height:15%;
  background: repeating-linear-gradient(90deg, #4A4A4A 0px, #4A4A4A 12px, transparent 12px, transparent 20px);
  border-radius: 10% 10% 0 0;
  animation: an-hop 10s ease-in-out infinite;
}
.scn-army-numbers .peltast-row {
  position:absolute; bottom:20%; left:15%; width:70%; height:12%;
  background: repeating-linear-gradient(90deg, #5C4033 0px, #5C4033 10px, transparent 10px, transparent 18px);
  border-radius: 10% 10% 0 0;
  animation: an-pel 12s ease-in-out infinite alternate;
}
.scn-army-numbers .standard {
  position:absolute; bottom:32%; left:50%; width:4px; height:30px;
  background: #8B4513;
  transform: translateX(-50%);
  animation: an-stand 8s ease-in-out infinite;
}
.scn-army-numbers .marker {
  position:absolute; bottom:15%; left:30%; width:10px; height:10px;
  background: #FFD700;
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,215,0,0.7);
  animation: an-marker 6s ease-in-out infinite alternate;
}
.scn-army-numbers .figure-reviewer {
  position:absolute; bottom:28%; left:5%; width:10px; height:22px;
  background: linear-gradient(180deg, #2F1B0E 0%, #1A0F06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: an-reviewer 9s ease-in-out infinite;
}
@keyframes an-sky { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.75; } }
@keyframes an-hop { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes an-pel { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes an-stand { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(0); } 75% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes an-marker { 0% { opacity:0.7; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes an-reviewer { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-peltae-games {
  background: 
    linear-gradient(180deg, #FFF8DC 0%, #FFE4B5 40%, #F5DEB3 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,255,200,0.6) 0%, transparent 70%);
}
.scn-peltae-games .arena-ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #D2B48C 0%, #C4A882 100%);
  border-radius: 10% 10% 0 0;
}
.scn-peltae-games .arena-wall {
  position:absolute; bottom:40%; left:10%; width:80%; height:15%;
  background: linear-gradient(180deg, #A08060 0%, #8B7355 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 5px 15px rgba(0,0,0,0.4);
}
.scn-peltae-games .runner {
  position:absolute; bottom:25%; width:12px; height:24px;
  background: linear-gradient(180deg, #8B4513 0%, #5D3A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pg-run 4s ease-in-out infinite;
}
.scn-peltae-games .runner-1 { left:25%; animation-delay: 0s; }
.scn-peltae-games .runner-2 { left:55%; animation-delay: 2s; transform: scaleX(-1); }
.scn-peltae-games .sacrifice-fire {
  position:absolute; bottom:15%; left:50%; width:20px; height:30px;
  background: radial-gradient(circle, #FF4500 0%, #FF8C00 40%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 10px rgba(255,69,0,0.6);
  animation: pg-fire 3s ease-in-out infinite alternate;
}
.scn-peltae-games .spectator {
  position:absolute; bottom:35%; width:10px; height:18px;
  background: linear-gradient(180deg, #2F1B0E 0%, #1A0F06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-peltae-games .spectator-1 { left:15%; animation: pg-spectate 8s ease-in-out infinite; }
.scn-peltae-games .spectator-2 { left:75%; animation: pg-spectate 8s ease-in-out infinite 4s; }
.scn-peltae-games .banner {
  position:absolute; bottom:38%; left:70%; width:20px; height:30px;
  background: linear-gradient(180deg, #8B4513 0%, #A0522D 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
  animation: pg-banner 5s ease-in-out infinite;
}
@keyframes pg-run { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(20px) rotate(0); } 75% { transform: translateX(30px) rotate(-5deg); } 100% { transform: translateX(40px) rotate(0); } }
@keyframes pg-fire { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes pg-spectate { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pg-banner { 0% { transform: rotate(0); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0); } }

.scn-hollow-square {
  background: 
    radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 60%),
    linear-gradient(180deg, #0d0d1a 0%, #12122a 40%, #1a1a3e 100%);
}
.scn-hollow-square .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a3e 100%);
  animation: hs-sky 15s ease-in-out infinite alternate;
}
.scn-hollow-square .campfires {
  position:absolute; bottom:30%; left:20%; width:12%; height:6%;
  background: radial-gradient(circle at 50% 100%, #ffaa44 0%, transparent 80%);
  filter: blur(3px);
  animation: hs-fire 2s ease-in-out infinite alternate;
}
.scn-hollow-square .tents {
  position:absolute; bottom:25%; left:30%; width:30%; height:20%;
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1208 100%);
  border-radius: 30% 30% 5% 5% / 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-hollow-square .figure {
  position:absolute; bottom:24%; 
  width:3%; height:12%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-figure 4s ease-in-out infinite;
}
.scn-hollow-square .figure-a { left:36%; }
.scn-hollow-square .figure-b { left:50%; animation-delay: -2s; }
.scn-hollow-square .spears {
  position:absolute; bottom:28%; width:1.5%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 0 0 2px 2px;
  transform: skewX(-5deg);
  animation: hs-spear 2.5s ease-in-out infinite alternate;
}
.scn-hollow-square .spears-left { left:34%; }
.scn-hollow-square .spears-right { left:52%; animation-delay: -1.25s; }
.scn-hollow-square .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a1208 0%, #0d0a04 100%);
  border-radius: 30% 0 0 0 / 20% 0 0 0;
}
@keyframes hs-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hs-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.8 } 50% { transform: scaleY(1.15) scaleX(1.05); opacity:1 } 100% { transform: scaleY(1) scaleX(1); opacity:0.8 } }
@keyframes hs-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes hs-spear { 0% { transform: skewX(-8deg) translateY(0) } 50% { transform: skewX(2deg) translateY(-2px) } 100% { transform: skewX(-8deg) translateY(0) } }

.scn-vote-taken {
  background: 
    radial-gradient(ellipse at 50% 80%, #2a2040 0%, transparent 70%),
    linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a30 100%);
}
.scn-vote-taken .night-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #08081a 0%, #141428 100%);
  animation: vt-sky 18s ease-in-out infinite alternate;
}
.scn-vote-taken .ember-glow {
  position:absolute; bottom:28%; left:35%; width:30%; height:15%;
  background: radial-gradient(ellipse at 30% 80%, #aa5511 0%, transparent 60%);
  filter: blur(5px);
  animation: vt-glow 3s ease-in-out infinite alternate;
}
.scn-vote-taken .wagon-wreck {
  position:absolute; bottom:22%; left:20%; width:25%; height:20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-vote-taken .figures {
  position:absolute; bottom:20%; width:4%; height:14%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-vote-taken .fig-rest { left:30%; animation: vt-rest 6s ease-in-out infinite; }
.scn-vote-taken .fig-stand { left:55%; width:3.5%; height:16%; animation: vt-stand 8s ease-in-out infinite; }
.scn-vote-taken .smoke {
  position:absolute; bottom:38%; width:10%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(80,55,30,0.4) 0%, transparent 80%);
  filter: blur(4px);
}
.scn-vote-taken .plume { left:25%; animation: vt-smoke 12s linear infinite; }
.scn-vote-taken .haze { left:50%; width:15%; height:15%; animation: vt-smoke 14s linear infinite reverse; }
@keyframes vt-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes vt-glow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes vt-rest { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes vt-stand { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes vt-smoke { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-10px) scaleY(1.3) } 100% { transform: translateY(0) scaleY(1) } }

.scn-mithridates-pretends {
  background: 
    linear-gradient(180deg, #ffcc88 0%, #ffaa55 20%, #cc8844 50%, #996633 100%),
    radial-gradient(ellipse at 70% 30%, #ffeecc 0%, transparent 50%);
}
.scn-mithridates-pretends .dawn-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #ffccaa 0%, #ffaaff 30%, #cc88ff 60%, transparent 100%);
  animation: mp-sky 20s ease-in-out infinite alternate;
}
.scn-mithridates-pretends .sun-horizon {
  position:absolute; bottom:50%; left:40%; width:20%; height:8%;
  background: radial-gradient(ellipse at 50% 100%, #ffeebb 0%, #ffcc88 40%, transparent 100%);
  filter: blur(4px);
  animation: mp-sun 8s ease-in-out infinite alternate;
}
.scn-mithridates-pretends .hills {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
}
.scn-mithridates-pretends .h-fore { 
  background: linear-gradient(180deg, #996633 0%, #886644 100%);
  animation: mp-hills 15s ease-in-out infinite alternate;
}
.scn-mithridates-pretends .h-mid { 
  bottom:35%; height:15%;
  background: linear-gradient(180deg, #aa7744 0%, #996633 100%);
  transform: scaleX(0.9);
  animation: mp-hills 12s ease-in-out infinite alternate-reverse;
}
.scn-mithridates-pretends .figure-mith {
  position:absolute; bottom:30%; left:45%; width:5%; height:18%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-figure 3s ease-in-out infinite;
}
.scn-mithridates-pretends .cloak {
  position:absolute; bottom:28%; left:44%; width:8%; height:14%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%);
  border-radius: 0 50% 30% 0 / 0 60% 40% 0;
  animation: mp-cloak 4s ease-in-out infinite;
}
.scn-mithridates-pretends .hand-extend {
  position:absolute; bottom:34%; left:50%; width:2%; height:4%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom left;
  animation: mp-hand 2.5s ease-in-out infinite;
}
.scn-mithridates-pretends .dust {
  position:absolute; bottom:28%; left:35%; width:15%; height:10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(150,100,50,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: mp-dust 5s ease-in-out infinite;
}
@keyframes mp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mp-sun { 0% { opacity:0.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:0.9; transform: scaleY(1) } }
@keyframes mp-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mp-figure { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes mp-cloak { 0% { transform: skewX(0) } 50% { transform: skewX(-5deg) } 100% { transform: skewX(0) } }
@keyframes mp-hand { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes mp-dust { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

.scn-mithridates-attacks {
  background: 
    linear-gradient(180deg, #88aaff 0%, #aaccff 30%, #99bbee 60%, #6688cc 100%),
    radial-gradient(ellipse at 30% 40%, #ffeecc 0%, transparent 50%);
}
.scn-mithridates-attacks .sunlit-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #88ccff 0%, #aaddff 40%, transparent 100%);
  animation: ma-sky 16s ease-in-out infinite alternate;
}
.scn-mithridates-attacks .river {
  position:absolute; bottom:20%; left:0; right:0; height:25%;
  background: linear-gradient(90deg, #336699 0%, #4477aa 30%, #5599bb 70%, #336699 100%);
  border-radius: 10% 40% 0 0 / 20% 60% 0 0;
  animation: ma-river 6s ease-in-out infinite;
}
.scn-mithridates-attacks .bank {
  position:absolute; bottom:35%; height:10%;
  background: linear-gradient(180deg, #8a6c45 0%, #6d5434 100%);
  border-radius: 30% 0 0 0 / 50% 0 0 0;
}
.scn-mithridates-attacks .near { left:0; right:40%; }
.scn-mithridates-attacks .far { left:50%; right:0; bottom:38%; height:8%; background: linear-gradient(180deg, #a07a50 0%, #8a6c45 100%); animation: ma-bank 5s ease-in-out infinite alternate; }
.scn-mithridates-attacks .soldier {
  position:absolute; bottom:30%; width:4%; height:15%;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-soldier 2s ease-in-out infinite;
}
.scn-mithridates-attacks .s1 { left:30%; animation-delay: 0s; }
.scn-mithridates-attacks .s2 { left:45%; animation-delay: -0.66s; }
.scn-mithridates-attacks .s3 { left:60%; animation-delay: -1.33s; }
.scn-mithridates-attacks .shield {
  position:absolute; bottom:32%; left:32%; width:3%; height:6%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%;
  animation: ma-shield 3s ease-in-out infinite;
}
.scn-mithridates-attacks .dust-cloud {
  position:absolute; bottom:28%; left:20%; width:20%; height:12%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,140,80,0.4) 0%, transparent 80%);
  filter: blur(6px);
  animation: ma-dust 4s ease-in-out infinite;
}
@keyframes ma-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ma-river { 0% { transform: translateY(0) skewX(0) } 50% { transform: translateY(-2px) skewX(-2deg) } 100% { transform: translateY(0) skewX(0) } }
@keyframes ma-bank { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ma-soldier { 0% { transform: translateX(0) rotate(-4deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-4deg) } 75% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes ma-shield { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes ma-dust { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(1) } }

.scn-phalinus-laughs {
  background:
    linear-gradient(180deg, #fce8c8 0%, #e2c091 30%, #b8926a 60%, #7a5a3e 100%),
    radial-gradient(ellipse at 50% 100%, #dbb078 0%, transparent 80%);
  overflow: hidden;
}
.scn-phalinus-laughs .sun-glow {
  position: absolute; inset: 0 0 55% 0;
  background: radial-gradient(ellipse at 50% 0%, #ffefd0 0%, #fee3b0 40%, transparent 70%);
  animation: pl-sun 6s ease-in-out infinite alternate;
}
.scn-phalinus-laughs .column {
  position: absolute; bottom: 20%; width: 12px; height: 65%;
  background: linear-gradient(180deg, #c8b098 0%, #a38770 100%);
  border-radius: 4px;
  box-shadow: inset -3px 0 6px rgba(0,0,0,0.2);
}
.scn-phalinus-laughs .left-col { left: 20%; }
.scn-phalinus-laughs .right-col { right: 20%; }
.scn-phalinus-laughs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8b7355 0%, #5a4430 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-phalinus-laughs .figure.phalinus {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%) scaleX(1.1);
  background:
    radial-gradient(ellipse 60% 40% at 50% 0%, #c09070 0%, #af7f60 50%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: pl-laugh 2s ease-in-out infinite;
}
.scn-phalinus-laughs .shadow.long-shadow {
  position: absolute; bottom: 17%; left: 30%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, #3a2a1a 0%, transparent 70%);
  filter: blur(4px);
  animation: pl-shadow 4s ease-in-out infinite;
}
.scn-phalinus-laughs .spear {
  position: absolute; bottom: 30%; left: 38%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #b08850 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: pl-spear 3s ease-in-out infinite;
}
@keyframes pl-sun { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pl-laugh {
  0%, 100% { transform: translateX(-50%) scaleX(1.1) rotate(0deg); }
  25% { transform: translateX(-50%) scaleX(1.1) rotate(3deg) translateY(-2px); }
  50% { transform: translateX(-50%) scaleX(1.1) rotate(0deg) translateY(-4px); }
  75% { transform: translateX(-50%) scaleX(1.1) rotate(-3deg) translateY(-2px); }
}
@keyframes pl-shadow {
  0%, 100% { transform: scaleX(1) translateX(0); opacity: 0.7; }
  50% { transform: scaleX(1.2) translateX(5px); opacity: 0.5; }
}
@keyframes pl-spear {
  0%, 100% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg) translateY(-3px); }
}

.scn-clearchus-returns {
  background:
    linear-gradient(180deg, #ffeac0 0%, #e8c68a 40%, #c49a60 70%, #8a6a40 100%),
    radial-gradient(ellipse at 50% 80%, #dbb078 0%, transparent 60%);
}
.scn-clearchus-returns .sky-heat {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffedc0 0%, #fde0a0 50%, #ffd080 100%);
  animation: cr-sky 8s ease-in-out infinite alternate;
}
.scn-clearchus-returns .distant-hill {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a88a6a 0%, #7a5a3a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-clearchus-returns .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b89870 0%, #785a38 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
}
.scn-clearchus-returns .figure.clearchus {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: cr-walk 5s ease-in-out infinite;
}
.scn-clearchus-returns .figure.companion {
  position: absolute; bottom: 22%; left: 46%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: cr-walk 6s ease-in-out infinite reverse;
  animation-delay: 2s;
}
.scn-clearchus-returns .dust {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, #d4b080 0%, transparent 70%);
  filter: blur(6px);
  animation: cr-dust 4s ease-in-out infinite;
}
@keyframes cr-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes cr-walk {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg) translateY(-2px); }
  50% { transform: translateX(16px) rotate(0deg) translateY(0); }
  75% { transform: translateX(24px) rotate(-2deg) translateY(-2px); }
}
@keyframes cr-dust {
  0%, 100% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(10px) scale(1.3); opacity: 0.2; }
}

.scn-clearchus-wiles {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #c8b090 30%, #9a7a5a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%);
}
.scn-clearchus-wiles .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c4ac 0%, #b09878 50%, #887058 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}
.scn-clearchus-wiles .window-arch {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, #e0c090 60%, transparent 80%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 30px #ffd080;
}
.scn-clearchus-wiles .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #8a7050 0px, #6a5030 4px, #8a7050 8px);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
}
.scn-clearchus-wiles .figure.clearchus-arm {
  position: absolute; bottom: 25%; left: 35%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: cw-gesture 3s ease-in-out infinite;
}
.scn-clearchus-wiles .figure.phalinus-stand {
  position: absolute; bottom: 25%; right: 30%; width: 34px; height: 72px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: cw-listening 4s ease-in-out infinite reverse;
}
.scn-clearchus-wiles .shadow-pool {
  position: absolute; bottom: 10%; left: 20%; width: 200px; height: 30px;
  background: radial-gradient(ellipse, #3a2a1a 0%, transparent 70%);
  filter: blur(6px);
  animation: cw-shadow 5s ease-in-out infinite;
}
.scn-clearchus-wiles .spear-shadow {
  position: absolute; bottom: 20%; left: 25%; width: 4px; height: 60px;
  background: #1a1008;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: cw-spear 4s ease-in-out infinite;
}
@keyframes cw-gesture {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(10px) rotate(5deg) translateY(-3px); }
  66% { transform: translateX(5px) rotate(-3deg) translateY(-1px); }
}
@keyframes cw-listening {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(-5px) translateY(-2px); }
}
@keyframes cw-shadow {
  0%, 100% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.3); opacity: 0.3; }
}
@keyframes cw-spear {
  0%, 100% { transform: rotate(10deg); }
  50% { transform: rotate(15deg) translateY(-4px); }
}

.scn-clearchus-advice {
  background:
    linear-gradient(180deg, #e0c8a8 0%, #b89870 40%, #8a6a48 70%, #4a3020 100%),
    radial-gradient(ellipse at 50% 100%, #c8a880 0%, transparent 70%);
}
.scn-clearchus-advice .bg-tent {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d4b898 0%, #a08060 50%, #6a5030 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.4);
}
.scn-clearchus-advice .table {
  position: absolute; bottom: 20%; left: 30%; width: 150px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #705038 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-clearchus-advice .figure.clearchus-seated {
  position: absolute; bottom: 20%; left: 35%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: ca-lean 5s ease-in-out infinite;
}
.scn-clearchus-advice .figure.phalinus-seated {
  position: absolute; bottom: 20%; left: 48%; width: 34px; height: 52px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: ca-lean 6s ease-in-out infinite reverse;
}
.scn-clearchus-advice .figure.advisor {
  position: absolute; bottom: 20%; right: 25%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: ca-listening 4s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-clearchus-advice .candle {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0b080 0%, #8a6030 100%);
  border-radius: 2px 2px 4px 4px;
  transform: translateX(-50%);
}
.scn-clearchus-advice .candle-glow {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #ffc060 30%, transparent 70%);
  transform: translate(-50%, -50%);
  filter: blur(4px);
  animation: ca-glow 3s ease-in-out infinite alternate;
}
.scn-clearchus-advice .scroll {
  position: absolute; bottom: 22%; left: 43%; width: 12px; height: 8px;
  background: #c8a880;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-20deg);
  animation: ca-scroll 6s ease-in-out infinite;
}
@keyframes ca-lean {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(4deg) translateY(-2px); }
}
@keyframes ca-listening {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(-4px) translateY(-1px); }
}
@keyframes ca-glow {
  0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.8); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); }
  100% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.9); }
}
@keyframes ca-scroll {
  0%, 100% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
}

/* menon-river-crossing – tense, moonlit */
.scn-menon-river-crossing {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 30%, #0f172a 100%), radial-gradient(ellipse at 50% 0%, #3b82f6 0%, transparent 70%);
}
.scn-menon-river-crossing .night-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0a0f1a 0%, #1a2a4a 50%, #0f1f3f 100%);
  animation: menon-sky 10s ease-in-out infinite alternate;
}
.scn-menon-river-crossing .moon-glow {
  position: absolute; top: 12%; left: 65%; width: 80px; height: 80px;
  background: radial-gradient(circle, #b8d4f0 0%, #6b8fc0 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(107,143,192,0.4), 0 0 100px 40px rgba(107,143,192,0.2);
  animation: menon-moon 6s ease-in-out infinite alternate;
}
.scn-menon-river-crossing .river {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a3a5c 0%, #0e1f33 50%, #1a3a5c 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  animation: menon-river 8s ease-in-out infinite alternate;
}
.scn-menon-river-crossing .bank-left {
  position: absolute; bottom: 40%; left: 0; width: 15%; height: 15%;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 0 60% 0 0;
}
.scn-menon-river-crossing .bank-right {
  position: absolute; bottom: 40%; right: 0; width: 15%; height: 15%;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-radius: 60% 0 0 0;
}
.scn-menon-river-crossing .soldier {
  position: absolute; bottom: 38%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-menon-river-crossing .s1 {
  left: 30%; animation: menon-walk 4s ease-in-out infinite;
}
.scn-menon-river-crossing .s2 {
  left: 55%; animation: menon-walk 4s ease-in-out 0.5s infinite;
}
.scn-menon-river-crossing .ripple {
  position: absolute; bottom: 28%; width: 20px; height: 4px;
  background: rgba(180,200,220,0.3);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-menon-river-crossing .r1 {
  left: 35%; animation: menon-ripple 3s ease-in-out infinite;
}
.scn-menon-river-crossing .r2 {
  left: 50%; animation: menon-ripple 3s ease-in-out 1.5s infinite;
}
@keyframes menon-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes menon-moon { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(1) translateY(-4px) } 100% { transform: scale(0.95) translateY(2px) } }
@keyframes menon-river { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }
@keyframes menon-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes menon-ripple { 0% { transform: scaleX(1); opacity:0.6 } 50% { transform: scaleX(3); opacity:0.2 } 100% { transform: scaleX(1); opacity:0.6 } }

/* army-follows – calm, sunlit */
.scn-army-follows {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%), radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 60%);
}
.scn-army-follows .sun-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6ab0d6 0%, #ffe4b5 70%, #ffd700 100%);
  animation: army-sky 12s ease-in-out infinite alternate;
}
.scn-army-follows .sun-glow {
  position: absolute; top: 10%; right: 20%; width: 100px; height: 100px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,215,0,0.5), 0 0 120px 50px rgba(255,215,0,0.2);
  animation: army-sun 8s ease-in-out infinite alternate;
}
.scn-army-follows .wide-river {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4682b4 0%, #5f9ea0 50%, #87ceeb 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: army-river 6s ease-in-out infinite alternate;
}
.scn-army-follows .far-bank {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%);
  border-radius: 20% 20% 0 0;
}
.scn-army-follows .march-row {
  position: absolute; bottom: 30%; width: 120%; height: 20px;
  background: repeating-linear-gradient(90deg, transparent, transparent 8px, #3a5a3a 8px, #3a5a3a 16px);
  opacity: 0.6;
  animation: army-march 15s linear infinite;
}
.scn-army-follows .m1 { left: -10%; animation-delay: 0s; }
.scn-army-follows .m2 { left: -30%; bottom: 34%; animation-delay: 1s; transform: scaleY(0.8); }
.scn-army-follows .m3 { left: -20%; bottom: 38%; animation-delay: 2s; transform: scaleY(0.6); opacity: 0.4; }
.scn-army-follows .dust {
  position: absolute; bottom: 28%; width: 40px; height: 10px;
  background: rgba(210,180,140,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: army-dust 5s ease-in-out infinite;
}
.scn-army-follows .d1 { left: 20%; }
.scn-army-follows .d2 { left: 60%; animation-delay: 2s; }
@keyframes army-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes army-sun { 0% { transform: scale(0.9) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes army-river { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(2px) scale(0.98) } }
@keyframes army-march { 0% { transform: translateX(0) } 100% { transform: translateX(20%) } }
@keyframes army-dust { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0.4 } 50% { transform: translateX(30px) translateY(-5px) scale(1.5); opacity:0.1 } 100% { transform: translateX(-10px) translateY(0) scale(1); opacity:0.4 } }

/* arabian-march – calm, sunlit */
.scn-arabian-march {
  background: linear-gradient(180deg, #f4a460 0%, #deb887 40%, #cd853f 100%), radial-gradient(ellipse at 50% 0%, #f5deb3 0%, transparent 70%);
}
.scn-arabian-march .desert-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #ffe4b5 60%, #ffdead 100%);
  animation: arab-sky 14s ease-in-out infinite alternate;
}
.scn-arabian-march .sand-dunes {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d2b48c 0%, #c4a882 50%, #b89a72 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  animation: arab-dunes 10s ease-in-out infinite alternate;
}
.scn-arabian-march .rider {
  position: absolute; bottom: 35%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a2e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-arabian-march .r1 { left: 25%; animation: arab-ride 6s ease-in-out infinite; }
.scn-arabian-march .r2 { left: 55%; animation: arab-ride 6s ease-in-out 3s infinite; transform: scaleX(-1); }
.scn-arabian-march .wild-ass {
  position: absolute; bottom: 32%; left: 40%; width: 20px; height: 14px;
  background: #a0522d;
  border-radius: 40% 20% 40% 20%;
  animation: arab-ass 5s ease-in-out infinite;
}
.scn-arabian-march .bustard {
  position: absolute; bottom: 45%; right: 15%; width: 16px; height: 12px;
  background: #8b4513;
  border-radius: 50% 50% 30% 30%;
  animation: arab-bustard 8s ease-in-out infinite;
}
.scn-arabian-march .dust-devil {
  position: absolute; bottom: 30%; left: 70%; width: 20px; height: 30px;
  background: rgba(210,180,140,0.4);
  border-radius: 40% 40% 20% 20%;
  filter: blur(6px);
  animation: arab-dustdevil 12s linear infinite;
}
@keyframes arab-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes arab-dunes { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes arab-ride { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(15px) translateY(-1px) rotate(3deg) } 50% { transform: translateX(30px) translateY(0) rotate(0) } 75% { transform: translateX(45px) translateY(-1px) rotate(-3deg) } 100% { transform: translateX(60px) translateY(0) rotate(0) } }
@keyframes arab-ass { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(5px) } }
@keyframes arab-bustard { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-8px) rotate(5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-6px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes arab-dustdevil { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-30px) scaleY(1.5) } 100% { transform: translateX(0) scaleY(1) } }

/* barren-country – tense, overcast */
.scn-barren-country {
  background: linear-gradient(180deg, #4a4a4a 0%, #5a5a5a 30%, #3a3a3a 100%), radial-gradient(ellipse at 50% 0%, #6a6a6a 0%, transparent 70%);
}
.scn-barren-country .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a4a 0%, #6a6a6a 40%, #5a5a5a 100%);
  animation: barren-sky 8s ease-in-out infinite alternate;
}
.scn-barren-country .rocky-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: barren-ground 6s ease-in-out infinite alternate;
}
.scn-barren-country .millstone {
  position: absolute; bottom: 20%; width: 30px; height: 10px;
  background: #6a5a4a;
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 -4px 0 #4a3a2a;
}
.scn-barren-country .ms1 { left: 20%; transform: rotate(15deg); animation: barren-stone 12s linear infinite; }
.scn-barren-country .ms2 { left: 55%; bottom: 25%; transform: rotate(-10deg); animation: barren-stone 12s linear 4s infinite; }
.scn-barren-country .dead-tree {
  position: absolute; bottom: 18%; left: 40%; width: 6px; height: 40px;
  background: #3a2a1a;
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 4px 0 #2a1a0a;
  animation: barren-tree 5s ease-in-out infinite alternate;
}
.scn-barren-country .fallen-beast {
  position: absolute; bottom: 8%; left: 60%; width: 30px; height: 14px;
  background: #4a3a2a;
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 0 #2a1a0a;
  animation: barren-beast 10s ease-in-out infinite;
}
.scn-barren-country .vulture {
  position: absolute; top: 20%; width: 16px; height: 10px;
  background: #1a1a1a;
  border-radius: 40% 40% 20% 20%;
  animation: barren-vulture 15s linear infinite;
}
.scn-barren-country .v1 { left: 30%; animation-delay: 0s; }
.scn-barren-country .v2 { left: 70%; animation-delay: 5s; transform: scaleX(-1); }
@keyframes barren-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes barren-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes barren-stone { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(5deg) } 100% { transform: translateX(-2px) rotate(0deg) } }
@keyframes barren-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes barren-beast { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(2px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes barren-vulture { 0% { transform: translateX(-20px) translateY(0) } 50% { transform: translateX(120vw) translateY(-10px) } 100% { transform: translateX(120vw) translateY(0) } }

.scn-phalinus-departs { background: linear-gradient(180deg, #87CEFA 0%, #E0F0FF 30%, #FFF5D6 60%, #B8860B 100%), radial-gradient(ellipse at 50% 0%, #FFF5D6 0%, transparent 60%); }
.scn-phalinus-departs .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4), 0 0 120px 40px rgba(255,215,0,0.2); animation: pd-sun-pulse 6s ease-in-out infinite alternate; }
.scn-phalinus-departs .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87CEFA 0%, #B0E0E6 50%, #E0F0FF 100%); animation: pd-sky-shift 8s ease-in-out infinite alternate; }
.scn-phalinus-departs .hills { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); }
.scn-phalinus-departs .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.2); animation: pd-ground-heat 10s ease-in-out infinite; }
.scn-phalinus-departs .figure { position:absolute; bottom:20%; left:30%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,0.5); animation: pd-walk 4s ease-in-out infinite; }
.scn-phalinus-departs .dust { position:absolute; bottom:18%; left:28%; width:40px; height:20px; background: rgba(210,180,140,0.3); border-radius:50%; filter: blur(6px); animation: pd-dust 5s ease-in-out infinite; }
.scn-phalinus-departs .spear { position:absolute; bottom:22%; left:22%; width:4px; height:50px; background: linear-gradient(180deg, #8B4513 0%, #4B2E0E 100%); border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: pd-spear-bob 3s ease-in-out infinite; }
@keyframes pd-sun-pulse { 0%,100% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.1); opacity:1 } }
@keyframes pd-sky-shift { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pd-ground-heat { 0%,100% { background-position: 0% 0% } 50% { background-position: 10% 0% } }
@keyframes pd-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes pd-dust { 0%,100% { opacity:0; transform: translateX(0) scale(0.5) } 50% { opacity:0.6; transform: translateX(20px) scale(1.2) } }
@keyframes pd-spear-bob { 0%,100% { transform: rotate(-15deg) translate(0,0) } 50% { transform: rotate(-12deg) translate(2px,-2px) } }

.scn-ariaeus-answer { background: linear-gradient(180deg, #2c2c4a 0%, #4a3c5c 30%, #6b5068 60%, #8b6b5e 100%), radial-gradient(ellipse at 50% 100%, #4a3c5c 0%, transparent 70%); }
.scn-ariaeus-answer .sky-dusk { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1e1e3a 0%, #3a2e4e 50%, #5a4a5e 100%); animation: aa-sky-fade 12s ease-in-out infinite alternate; }
.scn-ariaeus-answer .mountains { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 60% 0 0 / 50% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-ariaeus-answer .road { position:absolute; bottom:15%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); }
.scn-ariaeus-answer .messenger-a { position:absolute; bottom:20%; left:25%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: aa-ride 6s ease-in-out infinite; }
.scn-ariaeus-answer .messenger-b { position:absolute; bottom:20%; left:45%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: aa-ride 6s ease-in-out infinite 2s; }
.scn-ariaeus-answer .tree-left { position:absolute; bottom:28%; left:12%; width:16px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 20% 20% / 30% 30% 20% 20%; transform-origin: bottom center; animation: aa-sway 10s ease-in-out infinite; }
.scn-ariaeus-answer .tree-right { position:absolute; bottom:28%; right:15%; width:16px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 20% 20% / 30% 30% 20% 20%; transform-origin: bottom center; animation: aa-sway 10s ease-in-out infinite 3s; }
@keyframes aa-sky-fade { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes aa-ride { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes aa-sway { 0%,100% { transform: rotate(0) } 25% { transform: rotate(4deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-4deg) } }

.scn-ariaeus-offer { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #3a2a3a 100%), radial-gradient(ellipse at 50% 0%, #1a1a3a 0%, transparent 70%); }
.scn-ariaeus-offer .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #050510 0%, #1a1a3a 50%, #2a2a4a 100%); animation: ao-sky-twinkle 15s ease-in-out infinite alternate; }
.scn-ariaeus-offer .pavilion { position:absolute; bottom:20%; left:35%; width:130px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.6); clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%); }
.scn-ariaeus-offer .tent-door { position:absolute; bottom:18%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 10px rgba(255,200,100,0.1); }
.scn-ariaeus-offer .fire { position:absolute; bottom:15%; left:50%; width:24px; height:24px; background: radial-gradient(circle, #FFD700 0%, #FF8C00 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,140,0,0.3), 0 0 80px 40px rgba(255,140,0,0.1); animation: ao-fire 3s ease-in-out infinite alternate; }
.scn-ariaeus-offer .figure-stand { position:absolute; bottom:18%; left:40%; width:18px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ao-stand 6s ease-in-out infinite; }
.scn-ariaeus-offer .figure-sit { position:absolute; bottom:15%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ao-sit 4s ease-in-out infinite; }
.scn-ariaeus-offer .lantern { position:absolute; bottom:35%; left:48%; width:8px; height:10px; background: radial-gradient(circle, #FFD700 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 8px #FFD700; animation: ao-lantern 5s ease-in-out infinite; }
.scn-ariaeus-offer .stars { position:absolute; top:8%; left:0; right:0; height:30%; background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 70% 10%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 40% 50%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 80% 40%, #fff 0%, transparent 100%); animation: ao-stars 20s linear infinite; }
@keyframes ao-sky-twinkle { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ao-fire { 0% { transform: scale(1) translate(0,0); opacity:0.8 } 50% { transform: scale(1.15) translate(1px,-2px); opacity:1 } 100% { transform: scale(1) translate(0,0); opacity:0.9 } }
@keyframes ao-stand { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes ao-sit { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(5deg) } }
@keyframes ao-lantern { 0%,100% { opacity:0.6; transform: rotate(-5deg) } 50% { opacity:1; transform: rotate(5deg) } }
@keyframes ao-stars { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.5 } }

.scn-clearchus-proposal { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a2a4a 60%, #4a3a3a 100%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%); }
.scn-clearchus-proposal .camp-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #2a2a3a 100%); animation: cp-sky-dim 10s ease-in-out infinite alternate; }
.scn-clearchus-proposal .ground-camp { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-clearchus-proposal .campfire { position:absolute; bottom:25%; left:50%; width:30px; height:30px; background: radial-gradient(circle, #FF4500 0%, #FF8C00 40%, #FFD700 70%, transparent 80%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(255,69,0,0.4), 0 0 100px 40px rgba(255,140,0,0.2); animation: cp-fire 4s ease-in-out infinite alternate; }
.scn-clearchus-proposal .clearchus { position:absolute; bottom:20%; left:42%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: cp-speak 5s ease-in-out infinite; }
.scn-clearchus-proposal .officer { position:absolute; bottom:20%; left:55%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: cp-listen 6s ease-in-out infinite 1s; }
.scn-clearchus-proposal .tent-back { position:absolute; bottom:28%; left:30%; width:70px; height:60px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 20% 20% 10% 10%; clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%); box-shadow: -5px 0 10px rgba(0,0,0,0.3); animation: cp-tent-sway 15s ease-in-out infinite; }
.scn-clearchus-proposal .tent-front { position:absolute; bottom:28%; left:55%; width:60px; height:55px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 20% 20% 10% 10%; clip-path: polygon(10% 100%, 20% 0%, 80% 0%, 90% 100%); box-shadow: 5px 0 10px rgba(0,0,0,0.3); animation: cp-tent-sway 15s ease-in-out infinite 5s; }
@keyframes cp-sky-dim { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes cp-fire { 0% { transform: scale(1) translate(0,0); opacity:0.7 } 50% { transform: scale(1.2) translate(1px,-2px); opacity:1 } 100% { transform: scale(1) translate(0,0); opacity:0.8 } }
@keyframes cp-speak { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-3deg) } }
@keyframes cp-listen { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes cp-tent-sway { 0%,100% { transform: scale(1) } 25% { transform: scale(1.02) } 50% { transform: scale(1) } 75% { transform: scale(0.98) } }

/* second-charge - tense dusk charge */
.scn-second-charge {
  background: linear-gradient(180deg, #1c1628 0%, #3d2a3a 40%, #6b4a3a 70%, #b87a4e 100%), 
              radial-gradient(ellipse at 50% 100%, #d49a5a 0%, transparent 70%);
  filter: contrast(1.2);
}
.scn-second-charge .sky-dusk {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #241e32 0%, #4a3a44 40%, #a07850 100%);
  animation: sc-sky 15s ease-in-out infinite alternate;
}
.scn-second-charge .horizon-haze {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, transparent, #c09060 30%, transparent 100%);
  filter: blur(8px);
  animation: sc-haze 20s ease-in-out infinite alternate;
}
.scn-second-charge .ground-battle {
  position: absolute; bottom: 0; left: 0; right: 0; height: 48%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 30% 20% 0 0 / 10% 8% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-second-charge .soldier-line {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 30%;
  background: repeating-linear-gradient(
    90deg,
    #1a1410 0%, #1a1410 3%,
    transparent 3%, transparent 8%
  );
  mask-image: linear-gradient(180deg, #000 60%, transparent 100%);
  animation: sc-march 2s ease-in-out infinite;
}
.scn-second-charge .spear-1 {
  position: absolute; bottom: 18%; left: 20%; width: 2px; height: 60%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  transform: rotate(20deg) translateX(-10px);
  transform-origin: bottom;
  animation: sc-spear 1.5s ease-in-out infinite alternate;
}
.scn-second-charge .spear-2 {
  position: absolute; bottom: 15%; right: 25%; width: 2px; height: 55%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  transform: rotate(-15deg) translateX(8px);
  transform-origin: bottom;
  animation: sc-spear 1.7s ease-in-out infinite alternate-reverse;
}
.scn-second-charge .dust-cloud {
  position: absolute; bottom: 8%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,160,100,0.3) 0%, transparent 70%);
  filter: blur(14px);
  animation: sc-dust 8s ease-in-out infinite;
}
.scn-second-charge .banner-torn {
  position: absolute; top: 30%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #7a2424, #3a1010);
  border-radius: 0 0 10% 10%;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 70% 100%, 50% 80%, 30% 100%, 0 70%);
  animation: sc-flag 3s ease-in-out infinite;
}
@keyframes sc-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes sc-haze { 0%,100% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-4px); } }
@keyframes sc-march { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes sc-spear { 0% { transform: rotate(18deg) translateX(-12px); } 50% { transform: rotate(22deg) translateX(-8px); } 100% { transform: rotate(18deg) translateX(-12px); } }
@keyframes sc-dust { 0%,100% { transform: scale(1) translateY(0); opacity: 0.6; } 50% { transform: scale(1.1) translateY(-4px); opacity: 0.8; } }
@keyframes sc-flag { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }

/* royal-standard - tense dusk on mound */
.scn-royal-standard {
  background: linear-gradient(180deg, #1e1a28 0%, #3a2a38 40%, #6a4a3a 80%, #b87a4e 100%),
              radial-gradient(ellipse at 50% 100%, #c08a4a 0%, transparent 70%);
}
.scn-royal-standard .bg-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e1a28 0%, #4a3a3a 50%, #a07850 100%);
  animation: rs-sky 18s ease-in-out infinite alternate;
}
.scn-royal-standard .mound {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5);
  transform: scaleY(0.6) translateY(40%);
}
.scn-royal-standard .eagle-standard {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #b09040 0%, #6a5a1a 100%);
  clip-path: polygon(50% 0%, 0% 60%, 20% 60%, 10% 100%, 40% 80%, 50% 100%, 60% 80%, 90% 100%, 80% 60%, 100% 60%);
  animation: rs-eagle 4s ease-in-out infinite;
}
.scn-royal-standard .king-figure {
  position: absolute; bottom: 16%; left: 48%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-figure 3s ease-in-out infinite;
}
.scn-royal-standard .soldier-left {
  position: absolute; bottom: 14%; left: 32%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(0.8);
  animation: rs-figure 3.4s ease-in-out infinite -0.6s;
}
.scn-royal-standard .soldier-right {
  position: absolute; bottom: 14%; right: 32%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(0.8);
  animation: rs-figure 3.4s ease-in-out infinite -1.2s;
}
.scn-royal-standard .shadow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
@keyframes rs-sky { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes rs-eagle { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } }
@keyframes rs-figure { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }

/* lycius-reports - tense cavalry departure */
.scn-lycius-reports {
  background: linear-gradient(180deg, #1a1628 0%, #3a2a3a 40%, #5a3a3a 70%, #8a6a4a 100%),
              radial-gradient(ellipse at 50% 100%, #a07850 0%, transparent 70%);
}
.scn-lycius-reports .sky-dim {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1628 0%, #4a3a3a 50%, #7a5a4a 100%);
  animation: lr-sky 20s ease-in-out infinite alternate;
}
.scn-lycius-reports .hillock {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 40% 60% 0 0 / 80% 100% 0 0;
  transform: scaleX(1.5) translateX(10%);
}
.scn-lycius-reports .eagle-standard {
  position: absolute; bottom: 40%; left: 50%; width: 24px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #b09040 0%, #6a5a1a 100%);
  clip-path: polygon(50% 0%, 0% 60%, 20% 60%, 10% 100%, 40% 80%, 50% 100%, 60% 80%, 90% 100%, 80% 60%, 100% 60%);
  animation: lr-standard 6s ease-in-out infinite;
}
.scn-lycius-reports .cavalry-shadow {
  position: absolute; bottom: 18%; left: 5%; right: 5%; height: 16%;
  background: repeating-linear-gradient(
    90deg,
    #1a1410 0%, #1a1410 4%,
    transparent 4%, transparent 12%
  );
  mask-image: linear-gradient(180deg, #000 30%, transparent 100%);
  animation: lr-ride 2.5s ease-in-out infinite;
}
.scn-lycius-reports .dust-trail {
  position: absolute; bottom: 10%; left: 60%; right: 0%; height: 20%;
  background: linear-gradient(90deg, transparent, rgba(180,150,100,0.3) 50%, transparent 100%);
  filter: blur(10px);
  animation: lr-dust 12s ease-in-out infinite;
}
.scn-lycius-reports .spear-shard {
  position: absolute; bottom: 25%; left: 40%; width: 2px; height: 40%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  transform: rotate(30deg);
  transform-origin: bottom;
  animation: lr-spear 4s ease-in-out infinite alternate;
}
@keyframes lr-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes lr-standard { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1.5deg) scaleY(1.03); } }
@keyframes lr-ride { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-5px); } }
@keyframes lr-dust { 0%,100% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } }
@keyframes lr-spear { 0% { transform: rotate(28deg); } 50% { transform: rotate(32deg); } 100% { transform: rotate(28deg); } }

/* sun-sets - dark dusk, resting soldiers */
.scn-sun-sets {
  background: linear-gradient(180deg, #12101e 0%, #2a1e2e 40%, #4a3a3a 70%, #7a4a3a 100%),
              radial-gradient(ellipse at 50% 85%, #b08050 0%, transparent 50%);
}
.scn-sun-sets .sky-sunset {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #12101e 0%, #3a2a3a 40%, #8a5a3a 80%, #c09050 100%);
  animation: ss-sky 20s ease-in-out infinite alternate;
}
.scn-sun-sets .sun-disc {
  position: absolute; bottom: 45%; left: 40%; right: 40%; height: 10%;
  background: radial-gradient(circle, #e0a050 0%, #b07030 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ss-sun 8s ease-in-out infinite alternate;
}
.scn-sun-sets .horizon-line {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 2%;
  background: linear-gradient(90deg, transparent, #c09050 30%, #a07040 70%, transparent 100%);
  filter: blur(2px);
}
.scn-sun-sets .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a08 100%);
  border-radius: 20% 10% 0 0 / 5% 3% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-sun-sets .soldier-silhouette {
  position: absolute; bottom: 12%; left: 20%; width: 16px; height: 36px;
  background: #0a080a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8);
  animation: ss-breathe 4s ease-in-out infinite;
}
.scn-sun-sets .spear-row {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 40%;
  background: repeating-linear-gradient(
    90deg,
    #1a1400 0%, #1a1400 1%,
    transparent 1%, transparent 6%
  );
  mask-image: linear-gradient(180deg, #000 20%, transparent 100%);
  transform: rotate(5deg);
  animation: ss-spears 3s ease-in-out infinite;
}
.scn-sun-sets .rested-figure {
  position: absolute; bottom: 8%; left: 65%; width: 18px; height: 30px;
  background: #0a080a;
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-15deg) scale(0.9);
  transform-origin: bottom center;
  animation: ss-rest 6s ease-in-out infinite;
}
@keyframes ss-sky { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes ss-sun { 0%,100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } }
@keyframes ss-breathe { 0%,100% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.85) translateY(-2px); } }
@keyframes ss-spears { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes ss-rest { 0%,100% { transform: rotate(-15deg) scale(0.9); } 50% { transform: rotate(-10deg) scale(0.95); } }

/* clearchus-harsh – dim interior, stern soldier, candlelight */
.scn-clearchus-harsh {
  background: 
    linear-gradient(180deg, #2b1e10 0%, #19120a 40%, #0f0a05 100%),
    radial-gradient(ellipse at 50% 80%, #3a2818 0%, transparent 70%);
}
.scn-clearchus-harsh .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2b1e10, #1a1108);
  animation: ch1-wall 12s ease-in-out infinite alternate;
}
.scn-clearchus-harsh .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1e140a, #0f0a05);
}
.scn-clearchus-harsh .table {
  position:absolute; bottom:22%; left:50%; width:120px; height:12px;
  transform:translateX(-50%) perspective(600px) rotateX(60deg);
  background: linear-gradient(180deg, #3a2818, #2a1a0e);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-clearchus-harsh .candle {
  position:absolute; bottom:29%; left:45%; width:8px; height:24px;
  background: linear-gradient(180deg, #e8c080 0%, #b08040 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 6px rgba(200,140,60,.4);
  animation: ch1-candle 2s ease-in-out infinite alternate;
}
.scn-clearchus-harsh .figure {
  position:absolute; bottom:18%; left:35%; width:50px; height:80px;
  background: linear-gradient(180deg, #1f1810, #0d0905);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch1-figure 6s ease-in-out infinite;
}
.scn-clearchus-harsh .shadow {
  position:absolute; bottom:12%; left:30%; width:120px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  transform: skewX(-10deg);
  animation: ch1-shadow 6s ease-in-out infinite;
}
.scn-clearchus-harsh .sword {
  position:absolute; bottom:18%; right:30%; width:6px; height:60px;
  background: linear-gradient(180deg, #8a7a5a, #4a3a2a);
  border-radius: 1px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: ch1-sword 8s ease-in-out infinite alternate;
}
@keyframes ch1-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ch1-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 15px 4px rgba(200,140,60,.3) } 50% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 25px 8px rgba(200,140,60,.5) } 100% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 15px 4px rgba(200,140,60,.3) } }
@keyframes ch1-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes ch1-shadow { 0% { transform: skewX(-10deg) scaleX(1) } 50% { transform: skewX(-8deg) scaleX(1.05) } 100% { transform: skewX(-10deg) scaleX(1) } }
@keyframes ch1-sword { 0% { transform: rotate(18deg); opacity:.5 } 50% { transform: rotate(22deg); opacity:.8 } 100% { transform: rotate(18deg); opacity:.5 } }

/* clearchus-leadership – tent interior, commander with soldiers */
.scn-clearchus-leadership {
  background: 
    linear-gradient(180deg, #2c2014 0%, #1c140a 50%, #0e0a05 100%),
    radial-gradient(ellipse at 50% 60%, #2c2014 0%, transparent 70%);
}
.scn-clearchus-leadership .tent-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3a2818, #1a1008);
  animation: ch2-wall 10s ease-in-out infinite alternate;
}
.scn-clearchus-leadership .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a1208, #0c0804);
}
.scn-clearchus-leadership .lamp {
  position:absolute; top:10%; left:50%; width:12px; height:24px;
  transform:translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #e8b060 0%, #b08030 60%, transparent 80%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 10px rgba(200,140,60,.3);
  animation: ch2-lamp 3s ease-in-out infinite alternate;
}
.scn-clearchus-leadership .commander {
  position:absolute; bottom:20%; left:40%; width:60px; height:90px;
  background: linear-gradient(180deg, #2a1c10, #120c06);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch2-commander 5s ease-in-out infinite;
}
.scn-clearchus-leadership .soldier-left {
  position:absolute; bottom:20%; left:18%; width:40px; height:80px;
  background: linear-gradient(180deg, #1e140c, #0e0a06);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch2-soldier 7s ease-in-out infinite alternate;
}
.scn-clearchus-leadership .soldier-right {
  position:absolute; bottom:20%; right:18%; width:40px; height:80px;
  background: linear-gradient(180deg, #1e140c, #0e0a06);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch2-soldier 7s ease-in-out infinite alternate-reverse;
}
@keyframes ch2-wall { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes ch2-lamp { 0% { transform:translateX(-50%) rotate(-3deg); box-shadow: 0 0 20px 6px rgba(200,140,60,.2) } 50% { transform:translateX(-50%) rotate(3deg); box-shadow: 0 0 35px 12px rgba(200,140,60,.5) } 100% { transform:translateX(-50%) rotate(-3deg); box-shadow: 0 0 20px 6px rgba(200,140,60,.2) } }
@keyframes ch2-commander { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes ch2-soldier { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(0.98) translateY(-1px) } 100% { transform: scaleX(1) translateY(0) } }

/* clearchus-dies – fallen commander, fading light */
.scn-clearchus-dies {
  background: 
    linear-gradient(180deg, #1f1410 0%, #120c08 40%, #080604 100%),
    radial-gradient(ellipse at 50% 30%, #2a1810 0%, transparent 60%);
}
.scn-clearchus-dies .bg-dark {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #1c0e08, #0e0804);
}
.scn-clearchus-dies .ground-dark {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #0c0804, #040202);
}
.scn-clearchus-dies .cloak {
  position:absolute; bottom:20%; left:30%; width:100px; height:60px;
  background: linear-gradient(180deg, #2a1c10, #150e06);
  border-radius: 30% 70% 60% 40% / 40% 50% 50% 60%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: ch3-cloak 10s ease-in-out infinite;
}
.scn-clearchus-dies .sword-broken {
  position:absolute; bottom:15%; left:55%; width:4px; height:50px;
  background: linear-gradient(180deg, #6a5a3a, #3a2a1a);
  border-radius: 1px;
  transform: rotate(25deg) scaleY(0.7);
  transform-origin: bottom center;
  animation: ch3-sword 8s ease-in-out infinite alternate;
}
.scn-clearchus-dies .ember {
  position:absolute; bottom:40%; left:50%; width:6px; height:6px;
  background: radial-gradient(circle, #ffc060 0%, #e08030 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,100,40,.3);
  animation: ch3-ember 4s ease-in-out infinite alternate;
}
.scn-clearchus-dies .window-glow {
  position:absolute; top:14%; right:20%; width:40px; height:50px;
  background: radial-gradient(ellipse at center, rgba(200,140,60,.15) 0%, transparent 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(200,140,60,.1);
  animation: ch3-window 12s ease-in-out infinite alternate;
}
@keyframes ch3-cloak { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes ch3-sword { 0% { transform: rotate(20deg) scaleY(0.65); opacity:.3 } 50% { transform: rotate(30deg) scaleY(0.75); opacity:.6 } 100% { transform: rotate(20deg) scaleY(0.65); opacity:.3 } }
@keyframes ch3-ember { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.3); opacity:.8 } 100% { transform: scale(0.8); opacity:.2 } }
@keyframes ch3-window { 0% { opacity:.1 } 50% { opacity:.25 } 100% { opacity:.15 } }

/* proxenus-character – dreaming scholar at desk, lamp light */
.scn-proxenus-character {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #1a1008 40%, #0e0804 100%),
    radial-gradient(ellipse at 50% 70%, #2a1e12 0%, transparent 60%);
}
.scn-proxenus-character .room-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #301e10, #1a1008);
  animation: prx-wall 14s ease-in-out infinite alternate;
}
.scn-proxenus-character .desk {
  position:absolute; bottom:20%; left:25%; width:180px; height:10px;
  transform: perspective(500px) rotateX(50deg);
  background: linear-gradient(180deg, #3a2818, #2a1a0e);
  border-radius: 3px;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-proxenus-character .scroll {
  position:absolute; bottom:28%; left:30%; width:40px; height:6px;
  background: linear-gradient(180deg, #c8b080, #a08a60);
  border-radius: 2px;
  transform: skewX(-5deg);
  animation: prx-scroll 8s ease-in-out infinite alternate;
}
.scn-proxenus-character .chair {
  position:absolute; bottom:14%; left:30%; width:60px; height:55px;
  background: linear-gradient(180deg, #2a1c10, #150e06);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform: perspective(400px) rotateX(10deg);
}
.scn-proxenus-character .figure-dream {
  position:absolute; bottom:18%; left:32%; width:50px; height:85px;
  background: linear-gradient(180deg, #201810, #100c06);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prx-figure 6s ease-in-out infinite;
}
.scn-proxenus-character .lamp-glow {
  position:absolute; top:14%; right:28%; width:16px; height:30px;
  background: radial-gradient(circle at 50% 70%, #e8b060 0%, #b08030 50%, transparent 70%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 12px rgba(200,140,60,.3);
  animation: prx-lamp 4s ease-in-out infinite alternate;
}
@keyframes prx-wall { 0% { opacity:.5 } 50% { opacity:.75 } 100% { opacity:.6 } }
@keyframes prx-scroll { 0% { transform: skewX(-5deg) translateX(0) } 50% { transform: skewX(-2deg) translateX(2px) } 100% { transform: skewX(-5deg) translateX(0) } }
@keyframes prx-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(2px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes prx-lamp { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px 8px rgba(200,140,60,.2) } 50% { transform: scaleY(1.06) scaleX(0.94); box-shadow: 0 0 40px 16px rgba(200,140,60,.5) } 100% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px 8px rgba(200,140,60,.2) } }

/* Scene 1: xenophon-rescues-again - overcast tense rescue */
.scn-xenophon-rescues-again {
  background: linear-gradient(180deg, #4b5b6b 0%, #3a4a5a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%);
}
.scn-xenophon-rescues-again .sky-overcast {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  animation: xra-sky 16s ease-in-out infinite alternate;
}
.scn-xenophon-rescues-again .hills-distant {
  position: absolute;
  bottom: 40%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: xra-hills 20s ease-in-out infinite alternate;
}
.scn-xenophon-rescues-again .ground-mud {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-xenophon-rescues-again .wagon-remnant {
  position: absolute;
  bottom: 28%;
  left: 22%;
  width: 70px;
  height: 40px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: xra-wagon 12s ease-in-out infinite;
}
.scn-xenophon-rescues-again .figure-horse {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xra-horse 5s ease-in-out infinite;
}
.scn-xenophon-rescues-again .spear-vertical {
  position: absolute;
  bottom: 30%;
  left: 62%;
  width: 4px;
  height: 80px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  transform-origin: bottom center;
  animation: xra-spear 3s ease-in-out infinite alternate;
}
.scn-xenophon-rescues-again .dust-particles {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 100px;
  height: 40px;
  background: radial-gradient(circle, rgba(180,170,140,.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: xra-dust 8s linear infinite;
}
@keyframes xra-sky { 0%,100% { opacity: .7 } 50% { opacity: .9 } }
@keyframes xra-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(1px) } }
@keyframes xra-wagon { 0%,100% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } }
@keyframes xra-horse { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes xra-spear { 0% { transform: rotate(-3deg) } 100% { transform: rotate(3deg) } }
@keyframes xra-dust { 0% { transform: translateX(0) scale(1); opacity: .4 } 50% { transform: translateX(60px) scale(1.2); opacity: .7 } 100% { transform: translateX(120px) scale(1); opacity: .2 } }

/* Scene 2: dead-buried - overcast tense burial */
.scn-dead-buried {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 70%);
}
.scn-dead-buried .sky-grey {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  animation: db-sky 18s ease-in-out infinite alternate;
}
.scn-dead-buried .trench-dig {
  position: absolute;
  bottom: 20%;
  left: 20%;
  right: 20%;
  height: 25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: db-trench 30s ease-in-out infinite alternate;
}
.scn-dead-buried .body-batch {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 90px;
  height: 30px;
  background: linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(1px);
  animation: db-bodies 12s ease-in-out infinite;
}
.scn-dead-buried .shovels {
  position: absolute;
  bottom: 25%;
  left: 15%;
  width: 8px;
  height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: top center;
  animation: db-shovel 4s ease-in-out infinite alternate;
}
.scn-dead-buried .eagle-soaring {
  position: absolute;
  top: 18%;
  right: 20%;
  width: 40px;
  height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  clip-path: polygon(0% 50%, 30% 0%, 70% 0%, 100% 50%, 70% 100%, 30% 100%);
  animation: db-eagle 40s linear infinite;
}
.scn-dead-buried .ground-mound {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 70% 30% 0 0 / 50% 40% 0 0;
}
.scn-dead-buried .shadow-birds {
  position: absolute;
  top: 25%;
  left: 10%;
  width: 60px;
  height: 30px;
  background: radial-gradient(circle at 20% 50%, #1a1a2a 0%, transparent 70%);
  filter: blur(3px);
  animation: db-birds 25s linear infinite reverse;
}
@keyframes db-sky { 0%,100% { opacity: .6 } 50% { opacity: .85 } }
@keyframes db-trench { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.98) } }
@keyframes db-bodies { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-2deg) } }
@keyframes db-shovel { 0% { transform: rotate(-10deg) } 100% { transform: rotate(15deg) } }
@keyframes db-eagle { 0% { transform: translateX(0) translateY(0) scale(1) } 25% { transform: translateX(80px) translateY(-20px) scale(1.1) } 50% { transform: translateX(160px) translateY(5px) scale(0.95) } 75% { transform: translateX(240px) translateY(-10px) scale(1.05) } 100% { transform: translateX(320px) translateY(0) scale(1) } }
@keyframes db-birds { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-30px) scale(1.2) } 100% { transform: translateX(-60px) scale(1) } }

/* Scene 3: xenophon-urges-attack - overcast tense battle line */
.scn-xenophon-urges-attack {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 70%);
}
.scn-xenophon-urges-attack .sky-battle {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  animation: xua-sky 14s ease-in-out infinite alternate;
}
.scn-xenophon-urges-attack .hellen-line {
  position: absolute;
  bottom: 28%;
  left: 10%;
  right: 40%;
  height: 44px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: xua-line 8s ease-in-out infinite;
}
.scn-xenophon-urges-attack .shields-row {
  position: absolute;
  bottom: 30%;
  left: 12%;
  width: 120px;
  height: 30px;
  background: radial-gradient(circle at 20% 50%, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: xua-shields 6s ease-in-out infinite alternate;
}
.scn-xenophon-urges-attack .spears-array {
  position: absolute;
  bottom: 38%;
  left: 10%;
  width: 4px;
  height: 100px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  transform-origin: bottom center;
  animation: xua-spears 3s ease-in-out infinite alternate;
}
.scn-xenophon-urges-attack .enemy-charge-left {
  position: absolute;
  bottom: 30%;
  right: 5%;
  width: 80px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: right center;
  animation: xua-enemy 5s ease-in-out infinite;
}
.scn-xenophon-urges-attack .xenophon-figure {
  position: absolute;
  bottom: 30%;
  left: 5%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xua-xen 4s ease-in-out infinite;
}
.scn-xenophon-urges-attack .dust-cloud {
  position: absolute;
  bottom: 20%;
  left: 30%;
  right: 20%;
  height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,150,130,.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: xua-dust 10s linear infinite;
}
@keyframes xua-sky { 0%,100% { opacity: .7 } 50% { opacity: .9 } }
@keyframes xua-line { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes xua-shields { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.05) } }
@keyframes xua-spears { 0% { transform: rotate(-4deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes xua-enemy { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(-10px) scale(1.02) } 50% { transform: translateX(-20px) scale(0.98) } 75% { transform: translateX(-30px) scale(1.01) } 100% { transform: translateX(-40px) scale(1) } }
@keyframes xua-xen { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes xua-dust { 0% { transform: translateX(-20px); opacity: .3 } 50% { transform: translateX(30px); opacity: .6 } 100% { transform: translateX(80px); opacity: .2 } }

/* Scene 4: cleander-arrives - sunlit tense with ships */
.scn-cleander-arrives {
  background: linear-gradient(180deg, #9ab0c0 0%, #7a9aaa 40%, #5a7a8a 100%), radial-gradient(ellipse at 50% 100%, #b0c8d8 0%, transparent 70%);
}
.scn-cleander-arrives .sky-sunlit {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c8d8 0%, #7a9aaa 100%);
  animation: ca-sky 20s ease-in-out infinite alternate;
}
.scn-cleander-arrives .sea-reflect {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
}
.scn-cleander-arrives .warship-1 {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 100px;
  height: 30px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ca-ship1 8s ease-in-out infinite;
}
.scn-cleander-arrives .warship-2 {
  position: absolute;
  bottom: 35%;
  right: 15%;
  width: 80px;
  height: 24px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 3px 6px rgba(0,0,0,.4);
  animation: ca-ship2 12s ease-in-out infinite;
}
.scn-cleander-arrives .harbor-crowd {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 140px;
  height: 40px;
  background: radial-gradient(circle at 40% 50%, #2a2a3a 0%, transparent 100%);
  filter: blur(2px);
  animation: ca-crowd 6s ease-in-out infinite alternate;
}
.scn-cleander-arrives .sheep-pile {
  position: absolute;
  bottom: 18%;
  right: 25%;
  width: 50px;
  height: 30px;
  background: radial-gradient(circle at 30% 40%, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ca-sheep 4s ease-in-out infinite;
}
.scn-cleander-arrives .trading-tent {
  position: absolute;
  bottom: 24%;
  left: 8%;
  width: 70px;
  height: 50px;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: ca-tent 14s ease-in-out infinite alternate;
}
@keyframes ca-sky { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes ca-ship1 { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(10px) rotate(2deg) } }
@keyframes ca-ship2 { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(-8px) scale(1.03) } }
@keyframes ca-crowd { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes ca-sheep { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes ca-tent { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }

.scn-cyrus-education {
  background: 
    linear-gradient(180deg, #1c1a1a 0%, #2a2420 40%, #3a2e28 70%, #1c1a1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2e28 0%, transparent 60%);
}
.scn-cyrus-education .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1410 100%);
  animation: cy-ed-wall 10s ease-in-out infinite alternate;
}
.scn-cyrus-education .table {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.6);
}
.scn-cyrus-education .scroll {
  position: absolute; bottom: 28%; left: 34%; width: 14%; height: 10%;
  background: linear-gradient(135deg, #b89858 0%, #8a7040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-8deg);
  animation: cy-ed-scroll 6s ease-in-out infinite;
}
.scn-cyrus-education .figure {
  position: absolute; bottom: 26%; left: 50%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #2a2420 0%, #1a1510 80%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: cy-ed-figure 4s ease-in-out infinite;
}
.scn-cyrus-education .lamp {
  position: absolute; bottom: 34%; left: 12%; width: 3%; height: 5%;
  background: radial-gradient(circle, #d4a060 0%, #a07030 60%, transparent 100%);
  filter: blur(2px);
  animation: cy-ed-lamp 3s ease-in-out infinite alternate;
}
.scn-cyrus-education .shadow {
  position: absolute; bottom: 18%; left: 30%; right: 10%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: cy-ed-shadow 5s ease-in-out infinite;
}
.scn-cyrus-education .dust {
  position: absolute; top: 20%; left: 40%; width: 8%; height: 12%;
  background: radial-gradient(circle, rgba(200,180,140,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: cy-ed-dust 15s linear infinite;
}
@keyframes cy-ed-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes cy-ed-scroll { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes cy-ed-figure { 0%,100% { transform: translateX(0) rotate(0) scaleY(1) } 25% { transform: translateX(2%) rotate(3deg) scaleY(1.02) } 75% { transform: translateX(-1%) rotate(-2deg) scaleY(0.98) } }
@keyframes cy-ed-lamp { 0% { opacity: .7; box-shadow: 0 0 12px 4px #d4a060 } 50% { opacity: 1; box-shadow: 0 0 20px 8px #f0c080 } 100% { opacity: .8; box-shadow: 0 0 14px 5px #d4a060 } }
@keyframes cy-ed-shadow { 0%,100% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.1) } }
@keyframes cy-ed-dust { 0% { transform: translate(0,0) scale(1); opacity: .3 } 50% { transform: translate(5%, -10%) scale(1.5); opacity: .6 } 100% { transform: translate(10%, -20%) scale(2); opacity: 0 } }

.scn-cyrus-justice {
  background: 
    linear-gradient(180deg, #1e1a16 0%, #2a241e 50%, #1e1a16 100%),
    radial-gradient(ellipse at 50% 20%, #3a3028 0%, transparent 70%);
}
.scn-cyrus-justice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: cy-ju-floor 8s ease-in-out infinite alternate;
}
.scn-cyrus-justice .throne {
  position: absolute; bottom: 25%; left: 45%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-cyrus-justice .figure-king {
  position: absolute; bottom: 28%; left: 48%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: cy-ju-king 6s ease-in-out infinite;
}
.scn-cyrus-justice .figure-kneeling {
  position: absolute; bottom: 22%; left: 30%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform: rotate(-10deg);
  animation: cy-ju-kneel 5s ease-in-out infinite alternate;
}
.scn-cyrus-justice .flame-a {
  position: absolute; bottom: 34%; right: 20%; width: 4%; height: 8%;
  background: radial-gradient(circle, #f0a040 0%, #c07020 60%, transparent 100%);
  filter: blur(3px);
  animation: cy-ju-flame 2s ease-in-out infinite alternate;
}
.scn-cyrus-justice .flame-b {
  position: absolute; bottom: 32%; left: 15%; width: 3%; height: 7%;
  background: radial-gradient(circle, #e08c30 0%, #b06018 60%, transparent 100%);
  filter: blur(3px);
  animation: cy-ju-flame 2.5s ease-in-out infinite alternate-reverse;
}
.scn-cyrus-justice .wreath {
  position: absolute; bottom: 44%; left: 32%; width: 6%; height: 6%;
  background: radial-gradient(ellipse, #6a5a30 0%, #4a3a20 60%, transparent 100%);
  border-radius: 50%;
  animation: cy-ju-wreath 4s ease-in-out infinite;
}
@keyframes cy-ju-floor { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } }
@keyframes cy-ju-king { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes cy-ju-kneel { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes cy-ju-flame { 0% { opacity: .8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.2) translateY(-5%) } 100% { opacity: .85; transform: scaleY(0.95) translateY(2%) } }
@keyframes cy-ju-wreath { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.1) rotate(10deg) } }

.scn-cyrus-rewards-bravery {
  background: 
    linear-gradient(180deg, #1c1816 0%, #2a221c 40%, #1c1816 100%),
    radial-gradient(ellipse at 50% 60%, #3a2e24 0%, transparent 70%);
}
.scn-cyrus-rewards-bravery .bg-arch {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120e 100%);
  filter: blur(2px);
  animation: cy-re-arch 12s ease-in-out infinite alternate;
}
.scn-cyrus-rewards-bravery .pedestal {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
}
.scn-cyrus-rewards-bravery .figure-hero {
  position: absolute; bottom: 30%; left: 42%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: cy-re-hero 5s ease-in-out infinite;
}
.scn-cyrus-rewards-bravery .figure-ruler {
  position: absolute; bottom: 32%; left: 55%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  animation: cy-re-ruler 4s ease-in-out infinite alternate;
}
.scn-cyrus-rewards-bravery .gift-box {
  position: absolute; bottom: 40%; left: 37%; width: 6%; height: 6%;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  border-radius: 8%;
  animation: cy-re-gift 3s ease-in-out infinite;
}
.scn-cyrus-rewards-bravery .torch-l {
  position: absolute; bottom: 38%; left: 22%; width: 3%; height: 12%;
  background: radial-gradient(circle at 50% 90%, #f09040 0%, #c08030 60%, transparent 100%);
  filter: blur(2px);
  animation: cy-re-torch 2s ease-in-out infinite alternate;
}
.scn-cyrus-rewards-bravery .torch-r {
  position: absolute; bottom: 38%; right: 20%; width: 3%; height: 12%;
  background: radial-gradient(circle at 50% 90%, #f09040 0%, #c08030 60%, transparent 100%);
  filter: blur(2px);
  animation: cy-re-torch 2.5s ease-in-out infinite alternate-reverse;
}
.scn-cyrus-rewards-bravery .sparkle {
  position: absolute; bottom: 48%; left: 35%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffd4a0 0%, transparent 80%);
  filter: blur(3px);
  animation: cy-re-spark 6s linear infinite;
}
@keyframes cy-re-arch { 0% { opacity: .85; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.03) } 100% { opacity: .9; transform: scaleY(1) } }
@keyframes cy-re-hero { 0%,100% { transform: translateX(0) rotate(0) scaleY(1) } 50% { transform: translateX(3%) rotate(5deg) scaleY(1.05) } }
@keyframes cy-re-ruler { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(0) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes cy-re-gift { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.15) rotate(15deg) } }
@keyframes cy-re-torch { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.3) translateY(-4%) } 100% { opacity: .8; transform: scaleY(0.9) } }
@keyframes cy-re-spark { 0% { opacity: 0; transform: translate(0,0) scale(0.5) } 30% { opacity: 0.8; transform: translate(10%, -15%) scale(1.5) } 60% { opacity: 0.6; transform: translate(20%, -5%) scale(1) } 100% { opacity: 0; transform: translate(30%, 5%) scale(0.5) } }

.scn-cyrus-generosity {
  background: 
    linear-gradient(180deg, #1a1816 0%, #2a221e 50%, #1a1816 100%),
    radial-gradient(ellipse at 50% 30%, #3a3028 0%, transparent 50%);
}
.scn-cyrus-generosity .tiled-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: repeating-conic-gradient(#2a2018 0%, #1a1410 25%, #2a2018 50%) 0 0 / 12% 12%;
  filter: drop-shadow(0 4px 4px rgba(0,0,0,.4));
  animation: cy-ge-floor 10s ease-in-out infinite alternate;
}
.scn-cyrus-generosity .receiving-figure {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: cy-ge-receive 5s ease-in-out infinite;
}
.scn-cyrus-generosity .giving-figure {
  position: absolute; bottom: 22%; left: 55%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120e 100%);
  border-radius: 50% 50% 35% 35% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: cy-ge-give 5s ease-in-out infinite alternate;
}
.scn-cyrus-generosity .coin1 {
  position: absolute; bottom: 35%; left: 32%; width: 4%; height: 4%;
  background: radial-gradient(circle, #d4b050 0%, #b08830 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,170,80,.5);
  animation: cy-ge-coin1 3s ease-in-out infinite;
}
.scn-cyrus-generosity .coin2 {
  position: absolute; bottom: 38%; left: 38%; width: 3%; height: 3%;
  background: radial-gradient(circle, #d4b050 0%, #b08830 80%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(200,170,80,.5);
  animation: cy-ge-coin2 4s ease-in-out infinite 0.5s;
}
.scn-cyrus-generosity .coin3 {
  position: absolute; bottom: 42%; left: 35%; width: 5%; height: 5%;
  background: radial-gradient(circle, #d4b050 0%, #b08830 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(200,170,80,.5);
  animation: cy-ge-coin3 3.5s ease-in-out infinite 1s;
}
.scn-cyrus-generosity .glow {
  position: absolute; bottom: 30%; left: 30%; right: 30%; top: 20%;
  background: radial-gradient(ellipse, rgba(200,170,80,.15) 0%, transparent 80%);
  filter: blur(12px);
  animation: cy-ge-glow 8s ease-in-out infinite alternate;
}
@keyframes cy-ge-floor { 0%,100% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.02) translateY(-2px) } }
@keyframes cy-ge-receive { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } }
@keyframes cy-ge-give { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5%) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cy-ge-coin1 { 0%,100% { opacity: .8; transform: scale(1) translateY(0) } 50% { opacity: 1; transform: scale(1.2) translateY(-4px) } }
@keyframes cy-ge-coin2 { 0%,100% { opacity: .8; transform: scale(1) translateY(0) } 50% { opacity: 1; transform: scale(1.15) translateY(-5px) } }
@keyframes cy-ge-coin3 { 0%,100% { opacity: .8; transform: scale(1) rotate(0) } 50% { opacity: 1; transform: scale(1.3) rotate(20deg) } }
@keyframes cy-ge-glow { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .7; transform: scale(1.05) } }

.scn-execution { background: linear-gradient(180deg, #1a1410 0%, #0d0806 60%, #050302 100%), radial-gradient(ellipse at 60% 20%, #3a2218 0%, transparent 70%); }
.scn-execution .cell-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #2a1e18 0%, #1a1410 30%, #0f0a08 70%, #1a1410 100%); }
.scn-execution .cell-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1410 0%, #0d0806 100%); border-top:2px solid #2a1e18; }
.scn-execution .torch { position:absolute; bottom:55%; left:25%; width:8px; height:16px; background: linear-gradient(180deg, #b08040 0%, #6a4a2a 100%); border-radius:40%; transform:rotate(-5deg); animation: exec-torch 2s ease-in-out infinite; }
.scn-execution .torch-glow { position:absolute; bottom:50%; left:23%; width:40px; height:60px; background: radial-gradient(ellipse, #ffcc80 0%, #d08040 30%, transparent 70%); opacity:0.7; filter:blur(4px); animation: exec-glow-pulse 3s ease-in-out infinite; }
.scn-execution .figure-guard { position:absolute; bottom:38%; left:45%; width:28px; height:60px; background: linear-gradient(180deg, #2a2218 0%, #0f0a08 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform:rotate(10deg); animation: exec-guard-sway 4s ease-in-out infinite; }
.scn-execution .figure-prisoner { position:absolute; bottom:38%; right:42%; width:22px; height:56px; background: linear-gradient(180deg, #1a1410 0%, #050302 100%); border-radius:40% 30% 20% 30% / 50% 40% 30% 40%; transform:rotate(-5deg); animation: exec-walk 5s ease-in-out infinite; }
.scn-execution .shadow-arch { position:absolute; bottom:40%; left:5%; right:5%; height:30%; background: radial-gradient(ellipse at 50% 100%, #050302 0%, transparent 70%); opacity:0.6; }
.scn-execution .doorway { position:absolute; bottom:28%; right:10%; width:30px; height:80px; background: #050302; border-radius:0 0 6px 6px; box-shadow: inset 0 0 12px rgba(0,0,0,0.8); border:3px solid #1a1410; }
@keyframes exec-torch { 0%,100% { transform:rotate(-5deg) scale(1); } 50% { transform:rotate(2deg) scale(1.1); } }
@keyframes exec-glow-pulse { 0%,100% { opacity:0.6; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.2); } }
@keyframes exec-guard-sway { 0%,100% { transform:translateX(0) rotate(10deg); } 50% { transform:translateX(2px) rotate(12deg); } }
@keyframes exec-walk { 0%,100% { transform:translateX(0) rotate(-5deg) translateY(0); } 25% { transform:translateX(-3px) rotate(-4deg) translateY(-1px); } 50% { transform:translateX(-6px) rotate(-3deg) translateY(0); } 75% { transform:translateX(-3px) rotate(-4deg) translateY(1px); } }

.scn-artapates-tent { background: linear-gradient(180deg, #1a1815 0%, #0f0c0a 50%, #060504 100%), radial-gradient(ellipse at 70% 40%, #2a2018 0%, transparent 60%); }
.scn-artapates-tent .tent-back { position:absolute; inset:10% 5% 20% 5%; background: linear-gradient(135deg, #2a2218 0%, #1a1410 40%, #0d0a08 100%); border-radius:40% 20% 10% 10% / 60% 30% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-artapates-tent .tent-pole { position:absolute; bottom:30%; left:50%; width:4px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%); transform:translateX(-50%); border-radius:2px; }
.scn-artapates-tent .tent-fabric { position:absolute; bottom:30%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius:0 0 50% 50% / 0 0 80% 80%; clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); opacity:0.8; }
.scn-artapates-tent .table { position:absolute; bottom:24%; left:35%; right:35%; height:6px; background: #4a3a2a; border-radius:2px; transform:translateY(0) perspective(50px) rotateX(5deg); }
.scn-artapates-tent .lamp { position:absolute; bottom:36%; left:42%; width:14px; height:20px; background: radial-gradient(ellipse at 50% 20%, #cc8844 0%, #7a4a22 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(204,136,68,0.5); animation: art-lamp-flicker 3s ease-in-out infinite; }
.scn-artapates-tent .lamp-glow { position:absolute; bottom:30%; left:36%; width:80px; height:100px; background: radial-gradient(ellipse, rgba(204,136,68,0.3) 0%, transparent 70%); filter:blur(10px); animation: art-glow-pulse 4s ease-in-out infinite; }
.scn-artapates-tent .empty-chair { position:absolute; bottom:30%; left:30%; width:20px; height:26px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius:20% 20% 10% 10%; transform:rotate(-5deg); box-shadow: inset 0 0 6px rgba(0,0,0,0.6); }
.scn-artapates-tent .shadow-figure { position:absolute; bottom:28%; right:20%; width:18px; height:50px; background: #050302; border-radius:30% 40% 20% 20% / 50% 50% 30% 30%; opacity:0.3; transform:rotate(8deg); animation: art-shadow-move 6s ease-in-out infinite; }
@keyframes art-lamp-flicker { 0%,100% { transform:scale(1) rotate(0deg); box-shadow: 0 0 20px 6px rgba(204,136,68,0.5); } 30% { transform:scale(1.05) rotate(3deg); box-shadow: 0 0 30px 10px rgba(204,136,68,0.7); } 60% { transform:scale(0.95) rotate(-2deg); box-shadow: 0 0 15px 4px rgba(204,136,68,0.4); } }
@keyframes art-glow-pulse { 0%,100% { opacity:0.5; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.1); } }
@keyframes art-shadow-move { 0%,100% { transform:translateX(0) rotate(8deg); } 50% { transform:translateX(4px) rotate(6deg); } }

.scn-cyrus-address-battle { background: linear-gradient(180deg, #0a1628 0%, #142040 40%, #0a1220 100%), radial-gradient(ellipse at 50% 10%, #2a4a6a 0%, transparent 70%); }
.scn-cyrus-address-battle .moon { position:absolute; top:8%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #d0e0f0 0%, #a0b8d0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(160,184,208,0.4); animation: cyr-moon-drift 20s ease-in-out infinite alternate; }
.scn-cyrus-address-battle .sky-night { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #081018 0%, #0a1628 100%); }
.scn-cyrus-address-battle .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a2830 0%, #0a1218 100%); border-top:2px solid #2a3a48; }
.scn-cyrus-address-battle .cyrus-silhouette { position:absolute; bottom:40%; left:30%; width:24px; height:60px; background: #050a10; border-radius:30% 30% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cyr-address 4s ease-in-out infinite; }
.scn-cyrus-address-battle .troop-line { position:absolute; bottom:30%; left:10%; right:10%; height:40px; display:flex; gap:4px; }
.scn-cyrus-address-battle .troop-line::before, .scn-cyrus-address-battle .troop-line::after { content:''; flex:1; background: linear-gradient(180deg, #1a2a3a 0%, #0a1218 100%); border-radius:10% 10% 10% 10% / 30% 30% 30% 30%; transform:scaleY(0.8); }
.scn-cyrus-address-battle .banner { position:absolute; bottom:45%; left:36%; width:4px; height:40px; background: #1a2a3a; transform-origin: bottom; animation: cyr-banner-wave 3s ease-in-out infinite; }
.scn-cyrus-address-battle .banner::after { content:''; position:absolute; top:0; left:4px; width:16px; height:10px; background: linear-gradient(180deg, #3a5060 0%, #1a2830 100%); border-radius:0 40% 10% 0; }
.scn-cyrus-address-battle .moonbeam { position:absolute; top:12%; left:68%; width:2px; height:60%; background: linear-gradient(180deg, rgba(160,184,208,0.2) 0%, transparent 100%); transform:rotate(-15deg); transform-origin: top; animation: cyr-beam 8s ease-in-out infinite; }
.scn-cyrus-address-battle .shadow-spear { position:absolute; bottom:40%; left:20%; width:2px; height:50px; background: #050a10; transform:rotate(20deg); animation: cyr-spear 5s ease-in-out infinite; }
@keyframes cyr-moon-drift { 0% { transform:translateX(0); } 100% { transform:translateX(-10px); } }
@keyframes cyr-address { 0%,100% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(5px) rotate(5deg); } 60% { transform:translateX(-5px) rotate(-3deg); } }
@keyframes cyr-banner-wave { 0%,100% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } }
@keyframes cyr-beam { 0%,100% { opacity:0.3; } 50% { opacity:0.6; } }
@keyframes cyr-spear { 0%,100% { transform:rotate(20deg) translateY(0); } 50% { transform:rotate(25deg) translateY(-2px); } }

.scn-liberty-envy { background: linear-gradient(180deg, #b0c8e0 0%, #d0dce8 40%, #e8f0f8 100%), radial-gradient(ellipse at 80% 20%, #f0e8c0 0%, transparent 60%); }
.scn-liberty-envy .sky-sun { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0d8ec 0%, #e0ecf4 60%, #f0f4f8 100%); }
.scn-liberty-envy .city-wall { position:absolute; bottom:25%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 100%); border-radius:5px 5px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); }
.scn-liberty-envy .city-gate { position:absolute; bottom:25%; left:45%; width:30px; height:50px; background: #6a5a4a; border-radius:10px 10px 5px 5px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); }
.scn-liberty-envy .road { position:absolute; bottom:0; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius:0 0 10% 10%; }
.scn-liberty-envy .figure-captain { position:absolute; bottom:40%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform:rotate(5deg); animation: lib-cap-address 4s ease-in-out infinite; }
.scn-liberty-envy .figure-soldier { position:absolute; bottom:38%; right:35%; width:18px; height:46px; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform:rotate(-3deg); animation: lib-soldier-listens 5s ease-in-out infinite; }
.scn-liberty-envy .sunburst { position:absolute; top:20%; left:80%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,200,120,0.3) 0%, transparent 70%); filter:blur(8px); animation: lib-sun-pulse 6s ease-in-out infinite; }
.scn-liberty-envy .dust { position:absolute; bottom:22%; left:25%; right:25%; height:10px; background: rgba(200,200,180,0.4); filter:blur(6px); border-radius:50%; animation: lib-dust-drift 12s linear infinite; }
@keyframes lib-cap-address { 0%,100% { transform:translateX(0) rotate(5deg); } 25% { transform:translateX(3px) rotate(2deg); } 75% { transform:translateX(-3px) rotate(8deg); } }
@keyframes lib-soldier-listens { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-2px) rotate(0deg); } }
@keyframes lib-sun-pulse { 0%,100% { opacity:0.4; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.2); } }
@keyframes lib-dust-drift { 0% { transform:translateX(0); opacity:0.3; } 50% { transform:translateX(20px); opacity:0.6; } 100% { transform:translateX(0); opacity:0.3; } }

.scn-charge-futile { background: linear-gradient(135deg, #f9e4b7 0%, #d4a96a 40%, #8b6f4e 100%), radial-gradient(ellipse at 30% 40%, #f0c078 0%, transparent 60%); }
.scn-charge-futile .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8ecae6 0%, #f9e4b7 60%); animation: cf-sky 12s ease-in-out infinite alternate; }
.scn-charge-futile .sun { position:absolute; top:15%; left:55%; width:50px; height:50px; background: radial-gradient(circle, #ffdd77 0%, #f9c568 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(249,197,104,.6); animation: cf-sun 8s ease-in-out infinite; }
.scn-charge-futile .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a994e 0%, #386641 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: cf-hills 18s ease-in-out infinite alternate; }
.scn-charge-futile .infantry { position:absolute; bottom:25%; left:10%; width:12px; height:30px; background: linear-gradient(180deg, #5c3a20 0%, #3a2512 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cf-march 6s ease-in-out infinite; }
.scn-charge-futile .cavalry { position:absolute; bottom:22%; left:45%; width:40px; height:28px; background: linear-gradient(135deg, #7a5c3e 0%, #4a3520 100%); border-radius: 60% 40% 30% 40% / 50% 40% 40% 50%; animation: cf-gallop 4s ease-in-out infinite; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-charge-futile .crest { position:absolute; bottom:38%; left:70%; width:200px; height:40px; background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%); border-radius: 50% 50% 0 0; transform: skewX(-15deg); animation: cf-crest 10s ease-in-out infinite alternate; }
.scn-charge-futile .dust { position:absolute; bottom:20%; left:30%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(200,170,120,.6) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation: cf-dust 7s ease-in-out infinite; }
@keyframes cf-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cf-sun { 0% { transform:scale(1) translateY(0) } 50% { transform:scale(1.05) translateY(-3px) } 100% { transform:scale(1) translateY(0) } }
@keyframes cf-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes cf-march { 0% { transform:translateX(0) rotate(-3deg) } 25% { transform:translateX(4px) rotate(2deg) } 50% { transform:translateX(8px) rotate(-1deg) } 75% { transform:translateX(12px) rotate(3deg) } 100% { transform:translateX(16px) rotate(0) } }
@keyframes cf-gallop { 0% { transform:translateY(0) scaleX(1) } 25% { transform:translateY(-4px) scaleX(1.05) } 50% { transform:translateY(0) scaleX(.95) } 75% { transform:translateY(-2px) scaleX(1.02) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes cf-crest { 0% { transform:skewX(-15deg) translateX(0) } 50% { transform:skewX(-10deg) translateX(5px) } 100% { transform:skewX(-15deg) translateX(0) } }
@keyframes cf-dust { 0% { transform:translateX(-10px) scale(1); opacity:.6 } 50% { transform:translateX(20px) scale(1.2); opacity:.3 } 100% { transform:translateX(40px) scale(.8); opacity:.5 } }

.scn-rhodian-slingers { background: linear-gradient(180deg, #1b263b 0%, #415a77 40%, #778da9 70%, #e0e1dd 100%), radial-gradient(ellipse at 70% 20%, #2c3d55 0%, transparent 60%); }
.scn-rhodian-slingers .twilight { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0d1b2a 0%, #1b263b 60%, transparent 100%); animation: rs-twilight 15s ease-in-out infinite alternate; }
.scn-rhodian-slingers .moon { position:absolute; top:10%; left:75%; width:40px; height:40px; background: radial-gradient(circle, #e0e1dd 0%, #c5c9c6 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(192,196,193,.4); animation: rs-moon 10s ease-in-out infinite; }
.scn-rhodian-slingers .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3b2c 0%, #2c241a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-rhodian-slingers .slinger-left { position:absolute; bottom:15%; left:25%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a1c 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rs-sling 2s ease-in-out infinite; }
.scn-rhodian-slingers .slinger-right { position:absolute; bottom:15%; left:50%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a1c 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rs-sling 2s ease-in-out infinite 0.4s; }
.scn-rhodian-slingers .sling-flash { position:absolute; bottom:30%; left:40%; width:10px; height:10px; background: radial-gradient(circle, #f0c040 0%, #d48020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(212,128,32,.6); animation: rs-flash 1.2s ease-in-out infinite; }
.scn-rhodian-slingers .rock-stream { position:absolute; bottom:40%; left:45%; width:4px; height:80px; background: linear-gradient(180deg, #6a5a3a 0%, #8a7a5a 30%, transparent 100%); border-radius:50%; filter:blur(2px); animation: rs-stream 0.8s linear infinite; }
@keyframes rs-twilight { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rs-moon { 0% { transform:translateY(0) scale(1); opacity:.9 } 50% { transform:translateY(-2px) scale(1.03); opacity:1 } 100% { transform:translateY(0) scale(1); opacity:.9 } }
@keyframes rs-sling { 0% { transform:rotate(-5deg) translateX(0) } 25% { transform:rotate(10deg) translateX(5px) } 50% { transform:rotate(-3deg) translateX(-2px) } 75% { transform:rotate(8deg) translateX(3px) } 100% { transform:rotate(-5deg) translateX(0) } }
@keyframes rs-flash { 0% { opacity:0; transform:scale(.5) } 30% { opacity:1; transform:scale(1.5) } 60% { opacity:.4; transform:scale(.8) } 100% { opacity:0; transform:scale(.5) } }
@keyframes rs-stream { 0% { transform:translateY(0) scale(1); opacity:.6 } 100% { transform:translateY(-40px) scale(.3); opacity:0 } }

.scn-mithridates-again { background: linear-gradient(135deg, #f4a261 0%, #e76f51 30%, #264653 70%, #1d3557 100%), radial-gradient(ellipse at 80% 20%, #e76f51 0%, transparent 60%); }
.scn-mithridates-again .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffb347 0%, #f4a261 40%, transparent 100%); animation: ma-dawn 14s ease-in-out infinite alternate; }
.scn-mithridates-again .horizon { position:absolute; bottom:40%; left:0; right:0; height:5%; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%); border-radius: 30% 70% 0 0 / 100% 80% 0 0; }
.scn-mithridates-again .ravine { position:absolute; bottom:0; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,.7); }
.scn-mithridates-again .horse { position:absolute; bottom:38%; left:10%; width:60px; height:35px; background: linear-gradient(135deg, #5c3a20 0%, #3a2512 100%); border-radius: 60% 40% 30% 50% / 50% 40% 40% 50%; animation: ma-horse 3s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-mithridates-again .archer { position:absolute; bottom:35%; left:45%; width:15px; height:40px; background: linear-gradient(180deg, #3a2a1c 0%, #1a100a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ma-archer 1.8s ease-in-out infinite; }
.scn-mithridates-again .slinger-corps { position:absolute; bottom:35%; left:70%; width:12px; height:38px; background: linear-gradient(180deg, #3a2a1c 0%, #1a100a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ma-slinger 2.2s ease-in-out infinite 0.3s; }
.scn-mithridates-again .spear-flash { position:absolute; bottom:42%; left:35%; width:3px; height:60px; background: linear-gradient(180deg, #e0b060 0%, transparent 100%); border-radius:50%; filter:blur(1px); animation: ma-spear 1.5s ease-in-out infinite; }
@keyframes ma-dawn { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ma-horse { 0% { transform:translateY(0) scaleX(1) } 25% { transform:translateY(-5px) scaleX(1.06) } 50% { transform:translateY(0) scaleX(.98) } 75% { transform:translateY(-3px) scaleX(1.03) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes ma-archer { 0% { transform:rotate(-6deg) translateX(0) } 20% { transform:rotate(8deg) translateX(5px) } 40% { transform:rotate(-3deg) translateX(-2px) } 60% { transform:rotate(12deg) translateX(7px) } 80% { transform:rotate(-4deg) translateX(1px) } 100% { transform:rotate(-6deg) translateX(0) } }
@keyframes ma-slinger { 0% { transform:rotate(4deg) translateX(0) } 30% { transform:rotate(-8deg) translateX(6px) } 60% { transform:rotate(2deg) translateX(-3px) } 100% { transform:rotate(4deg) translateX(0) } }
@keyframes ma-spear { 0% { opacity:0; transform:translateY(10px) rotate(0) } 50% { opacity:1; transform:translateY(-20px) rotate(15deg) } 100% { opacity:0; transform:translateY(-40px) rotate(30deg) } }

.scn-enemy-routed { background: linear-gradient(180deg, #f4a261 0%, #e9c46a 30%, #2a9d8f 60%, #1d3557 100%), radial-gradient(ellipse at 30% 50%, #f4a261 0%, transparent 60%); }
.scn-enemy-routed .dawn-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a3b2c 0%, #2c241a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-enemy-routed .ravine-edge { position:absolute; bottom:15%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #1a100a 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); border-radius: 10% 10% 30% 30% / 10% 10% 40% 40%; animation: er-ravine 20s ease-in-out infinite alternate; }
.scn-enemy-routed .fleeing-infantry { position:absolute; bottom:25%; left:15%; width:12px; height:30px; background: linear-gradient(180deg, #5c3a20 0%, #3a2512 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: er-flee 2.5s ease-in-out infinite; }
.scn-enemy-routed .cavalry-charge { position:absolute; bottom:22%; left:55%; width:45px; height:32px; background: linear-gradient(135deg, #6a4e38 0%, #4a3520 100%); border-radius: 60% 40% 30% 50% / 50% 40% 40% 50%; animation: er-gallop 3.2s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-enemy-routed .prisoner { position:absolute; bottom:28%; left:75%; width:10px; height:28px; background: linear-gradient(180deg, #3a2a1c 0%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: er-prisoner 4s ease-in-out infinite; }
.scn-enemy-routed .body-mound { position:absolute; bottom:10%; left:40%; width:60px; height:20px; background: radial-gradient(ellipse, #6a5038 0%, #3a2a1a 70%); border-radius:50%; filter:blur(3px); animation: er-mound 8s ease-in-out infinite alternate; }
.scn-enemy-routed .spear-dust { position:absolute; bottom:30%; left:30%; width:3px; height:40px; background: linear-gradient(180deg, #e0b060 0%, transparent 100%); filter:blur(1px); animation: er-dust 1.8s ease-in-out infinite; }
@keyframes er-ravine { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(-5px) scaleY(1.03) } 100% { transform:translateX(5px) scaleY(.97) } }
@keyframes er-flee { 0% { transform:translateX(0) rotate(-4deg) } 30% { transform:translateX(6px) rotate(6deg) } 60% { transform:translateX(12px) rotate(-2deg) } 100% { transform:translateX(18px) rotate(0) } }
@keyframes er-gallop { 0% { transform:translateY(0) scaleX(1) } 25% { transform:translateY(-5px) scaleX(1.06) } 50% { transform:translateY(0) scaleX(.97) } 75% { transform:translateY(-3px) scaleX(1.03) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes er-prisoner { 0% { transform:translateX(0) translateY(0) } 50% { transform:translateX(5px) translateY(-2px) } 100% { transform:translateX(10px) translateY(0) } }
@keyframes er-mound { 0% { opacity:.6; transform:scale(1) } 50% { opacity:.8; transform:scale(1.05) } 100% { opacity:.6; transform:scale(1) } }
@keyframes er-dust { 0% { opacity:0; transform:translateY(0) rotate(0) } 50% { opacity:.8; transform:translateY(-20px) rotate(20deg) } 100% { opacity:0; transform:translateY(-40px) rotate(40deg) } }

.scn-deep-clay-wagons {
  background: linear-gradient(180deg, #8a8a7a 0%, #6b6b5c 40%, #4a4a3e 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a2e 0%, transparent 70%);
}
.scn-deep-clay-wagons .sky-overcast {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0b0a0 0%, #7a7a6a 100%);
  animation: dcw-sky 15s ease-in-out infinite alternate;
}
.scn-deep-clay-wagons .mud-flat {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
  animation: dcw-mud 20s ease-in-out infinite;
}
.scn-deep-clay-wagons .deep-rut {
  position: absolute; bottom: 25%; left: 20%; right: 30%; height: 8%;
  background: #2a1a0a;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: dcw-rut 10s ease-in-out infinite;
}
.scn-deep-clay-wagons .wagon {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 50px;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: dcw-wagon 8s ease-in-out infinite;
}
.scn-deep-clay-wagons .wagon-wheel {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 30px;
  border: 4px solid #3a2a1a;
  border-radius: 50%;
  background: radial-gradient(circle, #5a3a1a 0%, #2a1a0a 100%);
  animation: dcw-wheel 3s linear infinite;
}
.scn-deep-clay-wagons .figure-puller {
  position: absolute; bottom: 30%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcw-pull 4s ease-in-out infinite alternate;
}
.scn-deep-clay-wagons .figure-supervisor {
  position: absolute; bottom: 35%; left: 70%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcw-supervise 6s ease-in-out infinite;
}
.scn-deep-clay-wagons .clay-splatter {
  position: absolute; bottom: 28%; left: 25%; width: 40px; height: 10px;
  background: #4a3a2a;
  border-radius: 0 0 50% 50%;
  filter: blur(2px);
  animation: dcw-splat 2s ease-in-out infinite;
}
@keyframes dcw-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dcw-mud {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes dcw-rut {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes dcw-wagon {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  75% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes dcw-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes dcw-pull {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(10px) rotate(0deg); }
  100% { transform: translateX(0) rotate(5deg); }
}
@keyframes dcw-supervise {
  0% { transform: translateY(0); }
  50% { transform: translateY(-6px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dcw-splat {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.4; transform: scale(1); }
}

.scn-persian-nobles-working {
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 40%, #3a3a2e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a1e 0%, transparent 70%);
}
.scn-persian-nobles-working .sky-overcast-pnw {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #a0a090 0%, #6a6a5a 100%);
  animation: pnw-sky 12s ease-in-out infinite alternate;
}
.scn-persian-nobles-working .mud-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,.5);
  animation: pnw-ground 18s ease-in-out infinite;
}
.scn-persian-nobles-working .cloak-purple-1 {
  position: absolute; bottom: 40%; left: 25%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #6a3a6a 0%, #3a1a3a 100%);
  border-radius: 20% 80% 50% 50%;
  transform: rotate(20deg);
  animation: pnw-cloak 6s ease-in-out infinite;
}
.scn-persian-nobles-working .cloak-purple-2 {
  position: absolute; bottom: 38%; left: 60%; width: 28px; height: 18px;
  background: linear-gradient(135deg, #5a2a5a 0%, #2a0a2a 100%);
  border-radius: 80% 20% 50% 50%;
  transform: rotate(-15deg);
  animation: pnw-cloak 6s ease-in-out infinite reverse;
}
.scn-persian-nobles-working .noble-figure-1 {
  position: absolute; bottom: 30%; left: 20%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pnw-lift 4s ease-in-out infinite alternate;
}
.scn-persian-nobles-working .noble-figure-2 {
  position: absolute; bottom: 32%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pnw-lift 4s ease-in-out infinite alternate-reverse;
}
.scn-persian-nobles-working .wagon-stuck {
  position: absolute; bottom: 25%; left: 42%; width: 100px; height: 45px;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: pnw-wagon 10s ease-in-out infinite;
}
.scn-persian-nobles-working .wheel-spoke {
  position: absolute; bottom: 20%; left: 45%; width: 24px; height: 24px;
  border: 3px solid #3a2a1a;
  border-radius: 50%;
  background: radial-gradient(circle, #5a3a1a 0%, #2a1a0a 100%);
  animation: pnw-wheel 3s linear infinite;
}
@keyframes pnw-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pnw-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes pnw-cloak {
  0% { transform: rotate(20deg) scale(1); }
  50% { transform: rotate(30deg) scale(1.1); }
  100% { transform: rotate(20deg) scale(1); }
}
@keyframes pnw-lift {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-10px) rotate(0deg); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes pnw-wagon {
  0% { transform: translateX(0); }
  50% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0); }
}
@keyframes pnw-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(-360deg); }
}

.scn-charmonde-crossing {
  background: linear-gradient(180deg, #8a5a3a 0%, #6a3a2a 30%, #3a1a1a 60%, #1a0a0a 100%),
              radial-gradient(ellipse at 30% 80%, #c07a4a 0%, transparent 50%);
}
.scn-charmonde-crossing .sky-dusk {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c08a5a 0%, #8a4a2a 100%);
  animation: chm-sky 20s ease-in-out infinite alternate;
}
.scn-charmonde-crossing .river-euphrates {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a5a5a 0%, #1a3a3a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
  animation: chm-river 8s ease-in-out infinite;
}
.scn-charmonde-crossing .raft-skin {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 20px;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: chm-raft 6s ease-in-out infinite;
}
.scn-charmonde-crossing .figure-poling {
  position: absolute; bottom: 32%; left: 22%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chm-pole 4s ease-in-out infinite alternate;
}
.scn-charmonde-crossing .city-charmande {
  position: absolute; bottom: 40%; right: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(20% 100%, 20% 60%, 40% 60%, 40% 30%, 60% 30%, 60% 60%, 80% 60%, 80% 100%);
  opacity: 0.7;
  animation: chm-city 30s ease-in-out infinite;
}
.scn-charmonde-crossing .date-palm {
  position: absolute; bottom: 45%; right: 5%; width: 8px; height: 50px;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%);
  border-radius: 4px;
  transform-origin: bottom;
  animation: chm-palm 15s ease-in-out infinite;
}
.scn-charmonde-crossing .millet-stack {
  position: absolute; bottom: 25%; left: 5%; width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 30%, #c0a060 0%, #8a6a3a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: chm-millet 12s ease-in-out infinite;
}
@keyframes chm-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes chm-river {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes chm-raft {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes chm-pole {
  0% { transform: translateY(0) rotate(-10deg); }
  50% { transform: translateY(-8px) rotate(0deg); }
  100% { transform: translateY(0) rotate(10deg); }
}
@keyframes chm-city {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes chm-palm {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes chm-millet {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

.scn-quarrelling-soldiers {
  background: linear-gradient(180deg, #c8c8a0 0%, #a0a080 40%, #808060 100%),
              radial-gradient(ellipse at 50% 100%, #c0c090 0%, transparent 70%);
}
.scn-quarrelling-soldiers .sky-sunlit {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #e0e0c0 0%, #c0c0a0 100%);
  animation: qrs-sky 10s ease-in-out infinite alternate;
}
.scn-quarrelling-soldiers .ground-dust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.3);
  animation: qrs-ground 14s ease-in-out infinite;
}
.scn-quarrelling-soldiers .soldier-menon {
  position: absolute; bottom: 25%; left: 15%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qrs-soldier 3s ease-in-out infinite alternate;
}
.scn-quarrelling-soldiers .soldier-clearchus {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qrs-soldier 3s ease-in-out infinite alternate-reverse;
}
.scn-quarrelling-soldiers .flogged-man {
  position: absolute; bottom: 28%; left: 62%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qrs-flog 2s ease-in-out infinite;
}
.scn-quarrelling-soldiers .spear-upright {
  position: absolute; bottom: 40%; left: 35%; width: 4px; height: 60px;
  background: linear-gradient(0deg, #5a4a3a 0%, #8a7a5a 100%);
  box-shadow: inset 2px 0 4px rgba(0,0,0,.4);
  animation: qrs-spear 5s ease-in-out infinite;
}
.scn-quarrelling-soldiers .shadow-hard {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 5px;
  background: rgba(0,0,0,.4);
  filter: blur(2px);
  animation: qrs-shadow 8s ease-in-out infinite;
}
@keyframes qrs-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes qrs-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes qrs-soldier {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(6px) rotate(0deg); }
  100% { transform: translateX(0) rotate(5deg); }
}
@keyframes qrs-flog {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(-10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qrs-spear {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes qrs-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

/* clearchus-attacked */
.scn-clearchus-attacked {
  background: linear-gradient(180deg, #f9e7c0 0%, #d4a76a 50%, #a87d4d 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.6) 0%, transparent 60%);
}
.scn-clearchus-attacked .sky-ca {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #e0c088 100%);
  animation: ca-sky 8s ease-in-out infinite alternate;
}
.scn-clearchus-attacked .ground-ca {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #c99a5a 0%, #b08140 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: ca-ground 12s ease-in-out infinite;
}
.scn-clearchus-attacked .horse-ca {
  position:absolute; bottom:30%; left:30%; width:60px; height:40px;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 30% 50% 30% / 60% 40% 60% 40%;
  transform-origin: bottom center;
  animation: ca-horse 2s ease-in-out infinite;
}
.scn-clearchus-attacked .rider-ca {
  position:absolute; bottom:45%; left:32%; width:20px; height:30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-rider 1.5s ease-in-out infinite;
}
.scn-clearchus-attacked .attacker-ca {
  position:absolute; bottom:32%; left:55%; width:18px; height:48px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ca-attacker 0.6s ease-in-out infinite;
}
.scn-clearchus-attacked .axe-ca {
  position:absolute; bottom:42%; left:58%; width:24px; height:8px;
  background: linear-gradient(90deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%;
  transform-origin: 0 50%;
  animation: ca-axe 0.4s ease-in-out infinite;
}
.scn-clearchus-attacked .stone-ca {
  position:absolute; bottom:35%; left:45%; width:6px; height:6px;
  background: #a08060;
  border-radius: 50%;
  animation: ca-stone 1.8s ease-in infinite;
}
.scn-clearchus-attacked .dust-ca {
  position:absolute; bottom:30%; left:20%; right:20%; height:10%;
  background: radial-gradient(ellipse at 40% 50%, rgba(220,190,140,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: ca-dust 6s ease-in-out infinite;
}
@keyframes ca-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ca-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ca-horse {
  0%,100% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-2px); }
}
@keyframes ca-rider {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  75% { transform: rotate(-3deg); }
}
@keyframes ca-attacker {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
}
@keyframes ca-axe {
  0%,100% { transform: rotate(-20deg); }
  50% { transform: rotate(20deg); }
}
@keyframes ca-stone {
  0% { transform: translate(0,0); opacity:1; }
  100% { transform: translate(30px, -20px); opacity:0; }
}
@keyframes ca-dust {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}

/* cyrus-intervenes */
.scn-cyrus-intervenes {
  background: linear-gradient(180deg, #f0d9b0 0%, #c9a96a 50%, #9a7a4a 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,220,160,0.4) 0%, transparent 50%);
}
.scn-cyrus-intervenes .sky-ci {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #d4b080 100%);
  animation: ci-sky 10s ease-in-out infinite alternate;
}
.scn-cyrus-intervenes .ground-ci {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #b88a50 0%, #8a6a3a 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 12px 25px rgba(0,0,0,0.3);
}
.scn-cyrus-intervenes .thracians-ci {
  position:absolute; bottom:35%; left:10%; width:40%; height:20%;
  background: linear-gradient(90deg, transparent 0%, #5a4a3a 20%, #4a3a2a 50%, transparent 100%);
  clip-path: polygon(0 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: ci-thracians 6s ease-in-out infinite;
}
.scn-cyrus-intervenes .menon-hoplices-ci {
  position:absolute; bottom:35%; right:10%; width:40%; height:20%;
  background: linear-gradient(90deg, transparent 0%, #4a3a3a 20%, #3a2a2a 50%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: ci-hoplices 6s ease-in-out infinite reverse;
}
.scn-cyrus-intervenes .proxenus-ci {
  position:absolute; bottom:38%; left:50%; width:16px; height:40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: ci-proxenus 3s ease-in-out infinite;
}
.scn-cyrus-intervenes .dust-ci {
  position:absolute; bottom:30%; left:30%; right:30%; height:8%;
  background: radial-gradient(ellipse, rgba(200,180,120,0.3) 0%, transparent 70%);
  filter: blur(3px);
  animation: ci-dust 9s ease-in-out infinite;
}
@keyframes ci-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes ci-thracians {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(10px); }
}
@keyframes ci-hoplices {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(-10px); }
}
@keyframes ci-proxenus {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05) translateY(-2px); }
}
@keyframes ci-dust {
  0% { opacity:0.2; transform: scale(1); }
  50% { opacity:0.6; transform: scale(1.3); }
  100% { opacity:0.2; transform: scale(1); }
}

/* cyrus-stops-fight */
.scn-cyrus-stops-fight {
  background: linear-gradient(180deg, #ffdcb0 0%, #d4a86a 50%, #a87a44 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,200,120,0.5) 0%, transparent 60%);
}
.scn-cyrus-stops-fight .sky-cs {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #d4b888 100%);
  animation: cs-sky 7s ease-in-out infinite alternate;
}
.scn-cyrus-stops-fight .ground-cs {
  position:absolute; bottom:0; left:0; right:0; height:65%;
  background: linear-gradient(180deg, #c99a5a 0%, #9a7a3a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-cyrus-stops-fight .cyrus-horse-cs {
  position:absolute; bottom:30%; left:45%; width:70px; height:45px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 60% 40% 60% 40% / 70% 50% 70% 50%;
  transform: translateX(-50%);
  animation: cs-horse 2.5s ease-in-out infinite;
}
.scn-cyrus-stops-fight .cyrus-rider-cs {
  position:absolute; bottom:50%; left:47%; width:22px; height:32px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cs-rider 1.8s ease-in-out infinite;
}
.scn-cyrus-stops-fight .javelins-cs {
  position:absolute; bottom:48%; left:50%; width:30px; height:4px;
  background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 50%, #5a3a1a 100%);
  border-radius: 2px;
  transform-origin: 50% 50%;
  animation: cs-javelins 0.8s ease-in-out infinite;
}
.scn-cyrus-stops-fight .hellenes-cs {
  position:absolute; bottom:25%; left:20%; width:15%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0 100%, 30% 0%, 70% 0%, 100% 100%);
  animation: cs-hellenes 5s ease-in-out infinite;
}
.scn-cyrus-stops-fight .shadow-cs {
  position:absolute; bottom:28%; left:35%; right:35%; height:4%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.2) 0%, transparent 70%);
  filter: blur(2px);
  animation: cs-shadow 4s ease-in-out infinite;
}
@keyframes cs-sky {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes cs-horse {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03) translateY(-2px); }
}
@keyframes cs-rider {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(3deg); }
  75% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes cs-javelins {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}
@keyframes cs-hellenes {
  0%,100% { transform: scale(1); }
  50% { transform: scale(0.98); }
}
@keyframes cs-shadow {
  0%,100% { opacity:0.3; }
  50% { opacity:0.6; }
}

/* orontas-conspiracy */
.scn-orontas-conspiracy {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a142a 30%, #2a1a3a 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, rgba(40,20,20,0.6) 0%, transparent 70%);
}
.scn-orontas-conspiracy .sky-oc {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 100%);
  animation: oc-sky 15s ease-in-out infinite alternate;
}
.scn-orontas-conspiracy .ground-oc {
  position:absolute; bottom:0; left:0; right:0; height:70%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 80% 0 0 / 40% 90% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-orontas-conspiracy .hoofprints-oc {
  position:absolute; bottom:25%; left:10%; right:10%; height:12%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, rgba(60,40,20,0.4) 8px, rgba(60,40,20,0.4) 12px, transparent 12px, transparent 20px);
  animation: oc-hoofprints 8s linear infinite;
}
.scn-orontas-conspiracy .ember-grass-oc {
  position:absolute; bottom:20%; left:0; right:0; height:8%;
  background: linear-gradient(90deg, transparent 0%, #5a2a1a 20%, #8a3a1a 50%, #5a2a1a 80%, transparent 100%);
  filter: blur(3px);
  animation: oc-embergrass 4s ease-in-out infinite;
}
.scn-orontas-conspiracy .figure-oc {
  position:absolute; bottom:30%; left:30%; width:14px; height:36px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: oc-figure 3s ease-in-out infinite;
}
.scn-orontas-conspiracy .embers-oc {
  position:absolute; bottom:22%; left:20%; right:20%; height:4%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,60,20,0.6) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 50%, rgba(200,60,20,0.4) 0%, transparent 50%);
  filter: blur(2px);
  animation: oc-embers 2s ease-in-out infinite;
}
@keyframes oc-sky {
  0% { opacity:0.7; }
  50% { opacity:0.9; }
  100% { opacity:0.7; }
}
@keyframes oc-hoofprints {
  0% { background-position: 0 0; }
  100% { background-position: 20px 0; }
}
@keyframes oc-embergrass {
  0%,100% { opacity:0.3; }
  50% { opacity:0.8; }
}
@keyframes oc-figure {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes oc-embers {
  0%,100% { opacity:0.2; transform: scale(1); }
  50% { opacity:0.6; transform: scale(1.05); }
}

.scn-clearchus-sacrifices {
  background:
    linear-gradient(180deg, #1a1210 0%, #2b201a 40%, #3a2a22 100%),
    radial-gradient(ellipse at 50% 80%, #4a322a 0%, transparent 60%);
}
.scn-clearchus-sacrifices .tent-wall {
  position:absolute; inset:5% 5% 15% 5%;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: cs-tent 6s ease-in-out infinite alternate;
}
.scn-clearchus-sacrifices .altar {
  position:absolute; bottom:25%; left:50%; width:60px; height:40px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: cs-altar 4s ease-in-out infinite;
}
.scn-clearchus-sacrifices .fire-glow {
  position:absolute; bottom:30%; left:50%; width:30px; height:30px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #c0461a 0%, #8a2a0a 50%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 50px 20px rgba(192,70,26,0.6);
  animation: cs-fire 0.8s ease-in-out infinite alternate;
}
.scn-clearchus-sacrifices .victim {
  position:absolute; bottom:27%; left:45%; width:20px; height:15px;
  background: #5e1a1d;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: cs-victim 3s ease-in-out infinite;
}
.scn-clearchus-sacrifices .figure-clearchus {
  position:absolute; bottom:22%; left:55%; width:18px; height:40px;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-figure 5s ease-in-out infinite;
}
.scn-clearchus-sacrifices .smoke {
  position:absolute; top:20%; left:48%; width:40px; height:20px;
  background: rgba(200,180,160,0.15);
  border-radius:50%;
  filter: blur(8px);
  animation: cs-smoke 7s ease-out infinite;
}
.scn-clearchus-sacrifices .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 100% 100% 0 0 / 30% 30% 0 0;
}
@keyframes cs-tent { 0% { opacity:0.8; transform:scale(1) rotate(0deg); } 50% { opacity:1; transform:scale(1.01) rotate(0.5deg); } 100% { opacity:0.85; transform:scale(1) rotate(-0.5deg); } }
@keyframes cs-altar { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-2px); } }
@keyframes cs-fire { 0% { transform:translateX(-50%) scale(1); opacity:0.9; } 50% { transform:translateX(-50%) scale(1.15); opacity:1; } 100% { transform:translateX(-50%) scale(0.9); opacity:0.85; } }
@keyframes cs-victim { 0%,100% { transform:rotate(-10deg); } 50% { transform:rotate(-5deg) translateY(-2px); } }
@keyframes cs-figure { 0% { transform:rotate(0) translateY(0); } 25% { transform:rotate(2deg) translateY(-1px); } 75% { transform:rotate(-2deg) translateY(-1px); } 100% { transform:rotate(0) translateY(0); } }
@keyframes cs-smoke { 0% { transform:translateX(-24px) scale(0.5); opacity:0.4; } 50% { transform:translateX(12px) scale(1.2); opacity:0.2; } 100% { transform:translateX(48px) scale(1.8); opacity:0; } }

.scn-night-march {
  background:
    linear-gradient(180deg, #0f111f 0%, #1a1e2e 40%, #2a2e3e 100%),
    radial-gradient(ellipse at 80% 20%, #2a3a5a 0%, transparent 50%);
}
.scn-night-march .night-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #12182a 0%, #2a3040 100%);
  animation: nm-sky 10s ease-in-out infinite alternate;
}
.scn-night-march .stars {
  position:absolute; top:10%; left:10%; width:2px; height:2px;
  background: #e0e8f0;
  border-radius:50%;
  box-shadow: 15px 20px 0 #d0d8e0, 30px 40px 0 #c8d0e0, 50px 15px 0 #e0e8f0, 70px 60px 0 #d8e0e8, 90px 30px 0 #e0e8f0, 120px 50px 0 #d0d8e0;
  animation: nm-twinkle 2s ease-in-out infinite;
}
.scn-night-march .moon {
  position:absolute; top:8%; right:15%; width:40px; height:40px;
  background: radial-gradient(circle, #e8eef8 0%, #b8c8d8 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px rgba(200,220,240,0.3);
  animation: nm-moon 20s ease-in-out infinite;
}
.scn-night-march .marching-column {
  position:absolute; bottom:35%; left:10%; right:10%; height:15%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #1a1e2e 8px, #1a1e2e 12px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 50%, transparent 100%);
  animation: nm-march 6s linear infinite;
}
.scn-night-march .baggage-animal {
  position:absolute; bottom:38%; left:30%; width:16px; height:12px;
  background: #2a2e3e;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: nm-animal 4s ease-in-out infinite;
}
.scn-night-march .river {
  position:absolute; top:50%; left:0; right:0; height:8%;
  background: linear-gradient(90deg, transparent 0%, #3a4a5a 50%, transparent 100%);
  filter: blur(2px);
  animation: nm-river 8s ease-in-out infinite alternate;
}
.scn-night-march .horizon {
  position:absolute; bottom:45%; left:0; right:0; height:4px;
  background: #2a3440;
  box-shadow: 0 1px 2px rgba(0,0,0,0.5);
}
@keyframes nm-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes nm-twinkle { 0%,100% { opacity:0.5; } 50% { opacity:1; } }
@keyframes nm-moon { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-5px) scale(1.02); } 100% { transform:translateY(0) scale(1); } }
@keyframes nm-march { 0% { transform:translateX(0); } 100% { transform:translateX(-12px); } }
@keyframes nm-animal { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(3deg); } }
@keyframes nm-river { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.6; transform:scaleX(1.05); } 100% { opacity:0.4; transform:scaleX(1); } }

.scn-desertion-of-miltocythes {
  background:
    linear-gradient(180deg, #0a0a12 0%, #12121e 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 60%, #1a1a30 0%, transparent 60%);
}
.scn-desertion-of-miltocythes .dark-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 100%);
  animation: dm-sky 12s ease-in-out infinite alternate;
}
.scn-desertion-of-miltocythes .campfire {
  position:absolute; bottom:30%; left:30%; width:25px; height:25px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a0a 50%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px rgba(200,85,61,0.5);
  animation: dm-fire 1s ease-in-out infinite alternate;
}
.scn-desertion-of-miltocythes .tent {
  position:absolute; bottom:35%; left:18%; width:40px; height:30px;
  background: linear-gradient(180deg, #15151a 0%, #0a0a10 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: dm-tent 5s ease-in-out infinite;
}
.scn-desertion-of-miltocythes .deserters {
  position:absolute; bottom:28%; left:50%; width:20px; height:30px;
  background: #1a1a24;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: dm-desert 4s ease-in-out infinite;
}
.scn-desertion-of-miltocythes .horses {
  position:absolute; bottom:30%; left:62%; width:30px; height:15px;
  background: #2a2e3a;
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: dm-horses 3s ease-in-out infinite;
}
.scn-desertion-of-miltocythes .ground-dark {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #12121a 0%, #080810 100%);
}
.scn-desertion-of-miltocythes .drifting-cloud {
  position:absolute; top:15%; left:60%; width:60px; height:12px;
  background: rgba(30,40,60,0.25);
  border-radius:50%;
  filter: blur(6px);
  animation: dm-cloud 20s linear infinite;
}
@keyframes dm-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes dm-fire { 0% { transform:scale(1); opacity:0.85; } 50% { transform:scale(1.2); opacity:1; } 100% { transform:scale(0.9); opacity:0.8; } }
@keyframes dm-tent { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.02); } }
@keyframes dm-desert { 0% { transform:translateX(0) rotate(10deg); opacity:1; } 50% { transform:translateX(15px) rotate(5deg); opacity:0.6; } 100% { transform:translateX(30px) rotate(0deg); opacity:0; } }
@keyframes dm-horses { 0%,100% { transform:translateX(0) rotate(-5deg); } 50% { transform:translateX(8px) rotate(-2deg); } }
@keyframes dm-cloud { 0% { transform:translateX(0); } 100% { transform:translateX(-80vw); } }

.scn-ariaeus-advises-route {
  background:
    linear-gradient(180deg, #1a1512 0%, #2a201a 40%, #3a2e26 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a32 0%, transparent 60%);
}
.scn-ariaeus-advises-route .tent-interior {
  position:absolute; inset:8% 8% 12% 8%;
  background: linear-gradient(180deg, #3a2e26 0%, #1a1512 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: ar-tent 8s ease-in-out infinite alternate;
}
.scn-ariaeus-advises-route .lamp {
  position:absolute; bottom:40%; left:25%; width:15px; height:20px;
  background: radial-gradient(circle, #e8a050 0%, #b06020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 40px 12px rgba(200,100,40,0.4);
  animation: ar-lamp 4s ease-in-out infinite alternate;
}
.scn-ariaeus-advises-route .table {
  position:absolute; bottom:30%; left:30%; right:30%; height:15px;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-ariaeus-advises-route .figure-ariaeus {
  position:absolute; bottom:25%; left:40%; width:20px; height:45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-ari 5s ease-in-out infinite;
}
.scn-ariaeus-advises-route .other-figures {
  position:absolute; bottom:25%; left:55%; width:18px; height:40px;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-others 6s ease-in-out infinite;
}
.scn-ariaeus-advises-route .map {
  position:absolute; bottom:33%; left:35%; width:30px; height:20px;
  background: linear-gradient(135deg, #6a5a42 0%, #4a3a2a 100%);
  border-radius: 5%;
  transform: rotate(3deg);
  animation: ar-map 10s ease-in-out infinite;
}
.scn-ariaeus-advises-route .shadow {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, transparent 0%, #0a0808 100%);
  pointer-events: none;
}
@keyframes ar-tent { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.005); } 100% { opacity:0.85; transform:scale(0.995); } }
@keyframes ar-lamp { 0% { transform:scale(0.9) rotate(-2deg); opacity:0.7; } 50% { transform:scale(1.1) rotate(0deg); opacity:1; } 100% { transform:scale(0.95) rotate(2deg); opacity:0.8; } }
@keyframes ar-ari { 0% { transform:rotate(-2deg) translateY(0); } 25% { transform:rotate(2deg) translateY(-1px); } 75% { transform:rotate(-1deg) translateY(-1px); } 100% { transform:rotate(-2deg) translateY(0); } }
@keyframes ar-others { 0%,100% { transform:rotate(0) translateY(0); } 50% { transform:rotate(3deg) translateY(-2px); } }
@keyframes ar-map { 0% { transform:rotate(2deg) scale(1); } 50% { transform:rotate(-1deg) scale(1.02); } 100% { transform:rotate(2deg) scale(1); } }

/* ===== taochian-fortress ===== */
.scn-taochian-fortress {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #1a1a2a 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 60%);
}
.scn-taochian-fortress .sky-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: tf-sky 15s ease-in-out infinite alternate; }
.scn-taochian-fortress .mountains { position:absolute; bottom:25%; left:-5%; right:-5%; height:35%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; clip-path: polygon(0% 100%, 8% 45%, 18% 60%, 28% 30%, 38% 50%, 48% 25%, 60% 40%, 72% 20%, 85% 35%, 95% 15%, 100% 50%, 100% 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: tf-mountains 20s ease-in-out infinite alternate; }
.scn-taochian-fortress .fortress-wall { position:absolute; bottom:20%; left:35%; width:32%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -4px 12px rgba(0,0,0,.7), 0 0 0 2px #5a4a3a; animation: tf-wall 8s ease-in-out infinite; }
.scn-taochian-fortress .fortress-tower { position:absolute; bottom:43%; left:45%; width:12%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a0a00 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); animation: tf-tower 8s ease-in-out infinite; }
.scn-taochian-fortress .approach-path { position:absolute; bottom:10%; left:0; right:0; height:18%; background: linear-gradient(90deg, #3a3a2a 0%, #5a4a3a 40%, #4a3a2a 60%, #2a2a1a 100%); clip-path: polygon(0% 100%, 15% 60%, 30% 80%, 50% 50%, 70% 70%, 85% 40%, 100% 60%, 100% 100%); animation: tf-path 10s ease-in-out infinite; }
.scn-taochian-fortress .soldier-silhouette { position:absolute; bottom:10%; width:14px; height:36px; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: tf-soldier 4s ease-in-out infinite; }
.scn-taochian-fortress .soldier-1 { left:38%; height:32px; animation-delay:0s; }
.scn-taochian-fortress .soldier-2 { left:42%; height:36px; animation-delay:0.5s; }
.scn-taochian-fortress .soldier-3 { left:46%; height:30px; animation-delay:1s; }
.scn-taochian-fortress .arrow-storm { position:absolute; top:5%; left:0; right:0; height:60%; background: repeating-linear-gradient(135deg, rgba(80,70,50,0) 0px, rgba(80,70,50,0.1) 2px, rgba(80,70,50,0) 4px, rgba(80,70,50,0.15) 6px, rgba(80,70,50,0) 8px); animation: tf-arrows 1.5s linear infinite; }
@keyframes tf-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes tf-mountains { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tf-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes tf-tower { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes tf-path { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tf-soldier { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes tf-arrows { 0% { background-position: 0 0; opacity:.2 } 50% { opacity:.5 } 100% { background-position: 20px 30px; opacity:.1 } }

/* ===== callimachus-charges ===== */
.scn-callimachus-charges {
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 30%, #2a3a2a 60%, #1a2a1a 100%), radial-gradient(ellipse at 50% 60%, #5a6a5a 0%, transparent 50%);
}
.scn-callimachus-charges .forest-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%); animation: cc-forest 20s ease-in-out infinite alternate; }
.scn-callimachus-charges .tree { position:absolute; bottom:0; width:30px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 40%, #0a1a0a 100%); border-radius: 50% 50% 10% 10% / 70% 70% 10% 10%; animation: cc-tree 12s ease-in-out infinite alternate; }
.scn-callimachus-charges .tree-left { left:10%; height:80%; transform:scaleX(0.8); animation-delay:0s; }
.scn-callimachus-charges .tree-right { right:8%; height:70%; transform:scaleX(1.1); animation-delay:3s; }
.scn-callimachus-charges .callimachus-figure { position:absolute; bottom:15%; left:30%; width:16px; height:38px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 50%, #0a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cc-run 0.8s ease-in-out infinite; }
.scn-callimachus-charges .spear { position:absolute; bottom:30%; left:26%; width:40px; height:3px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; transform-origin: left center; animation: cc-spear 0.8s ease-in-out infinite; }
.scn-callimachus-charges .stone-dust { position:absolute; bottom:12%; left:28%; width:20px; height:6px; background: rgba(100,90,70,0.4); border-radius: 50%; filter: blur(3px); animation: cc-dust 0.8s ease-in-out infinite; }
.scn-callimachus-charges .support-figure { position:absolute; bottom:15%; width:14px; height:34px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cc-support 5s ease-in-out infinite; }
.scn-callimachus-charges .agasias { left:45%; animation-delay:0s; }
.scn-callimachus-charges .aristonymous { left:52%; animation-delay:2s; }
@keyframes cc-forest { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cc-tree { 0% { transform: rotate(-2deg) scaleX(0.8) } 50% { transform: rotate(2deg) scaleX(0.85) } 100% { transform: rotate(-1deg) scaleX(0.8) } }
@keyframes cc-run { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(6px) translateY(-3px) rotate(3deg) } 50% { transform: translateX(12px) translateY(0) rotate(-2deg) } 75% { transform: translateX(18px) translateY(-2px) rotate(4deg) } 100% { transform: translateX(24px) translateY(0) rotate(-5deg) } }
@keyframes cc-spear { 0% { transform: rotate(-10deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-15deg) } 75% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes cc-dust { 0% { opacity:.5; transform: translateY(0) scale(1) } 50% { opacity:.2; transform: translateY(-8px) scale(1.5) } 100% { opacity:.4; transform: translateY(0) scale(0.8) } }
@keyframes cc-support { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(-1px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-2px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }

/* ===== women-throw-infants ===== */
.scn-women-throw-infants {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 30%, #0a0a1a 60%, #050510 100%), radial-gradient(ellipse at 50% 20%, #3a3a4a 0%, transparent 70%);
}
.scn-women-throw-infants .cliff-face { position:absolute; bottom:0; left:20%; right:0; height:95%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #050510 100%); clip-path: polygon(10% 0%, 30% 5%, 50% 0%, 70% 3%, 100% 0%, 100% 100%, 0% 100%); box-shadow: inset -10px 0 30px rgba(0,0,0,.8); animation: wi-cliff 20s ease-in-out infinite alternate; }
.scn-women-throw-infants .cliff-edge { position:absolute; top:5%; left:25%; right:5%; height:6%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: wi-edge 10s ease-in-out infinite; }
.scn-women-throw-infants .falling-figure { position:absolute; top:30%; width:12px; height:24px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: wi-fall 6s ease-in infinite; }
.scn-women-throw-infants .figure-1 { left:35%; animation-delay:0s; }
.scn-women-throw-infants .figure-2 { left:45%; animation-delay:1.5s; }
.scn-women-throw-infants .infant-1 { left:40%; width:8px; height:14px; animation-delay:0.8s; }
.scn-women-throw-infants .infant-2 { left:50%; width:8px; height:14px; animation-delay:2s; }
.scn-women-throw-infants .aeneas-figure { position:absolute; top:8%; left:28%; width:16px; height:36px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: wi-aeneas 4s ease-in-out infinite; }
.scn-women-throw-infants .fine-dress-figure { position:absolute; top:10%; left:33%; width:14px; height:32px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: wi-fall 6s ease-in infinite; animation-delay:1s; }
@keyframes wi-cliff { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes wi-edge { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes wi-fall { 0% { transform: translateY(0) rotate(0deg); opacity:1 } 30% { transform: translateY(30px) rotate(20deg); opacity:.9 } 60% { transform: translateY(60px) rotate(-15deg); opacity:.7 } 100% { transform: translateY(120px) rotate(40deg); opacity:0 } }
@keyframes wi-aeneas { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(8px) translateY(0) rotate(-2deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }

/* ===== head-dancing ===== */
.scn-head-dancing {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 30%, #151520 60%, #0a0a15 100%), radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, transparent 60%);
}
.scn-head-dancing .dusk-sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); animation: hd-sky 20s ease-in-out infinite alternate; }
.scn-head-dancing .fortress-bg { position:absolute; bottom:10%; left:50%; width:40%; height:50%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 50%, #0a1a1a 100%); border-radius: 20% 20% 0 0; clip-path: polygon(0% 100%, 15% 70%, 25% 80%, 40% 60%, 55% 75%, 70% 55%, 85% 70%, 100% 60%, 100% 100%); transform: translateX(-50%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: hd-fortress 25s ease-in-out infinite alternate; }
.scn-head-dancing .chalybe { position:absolute; bottom:15%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: hd-dance 2s ease-in-out infinite; }
.scn-head-dancing .chalybe-1 { left:25%; animation-delay:0s; }
.scn-head-dancing .chalybe-2 { left:45%; animation-delay:0.6s; }
.scn-head-dancing .chalybe-3 { left:65%; animation-delay:1.2s; }
.scn-head-dancing .severed-head { position:absolute; bottom:30%; width:10px; height:12px; background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 70%); border-radius: 50%; animation: hd-head 2s ease-in-out infinite; }
.scn-head-dancing .head-1 { left:22%; animation-delay:0.2s; }
.scn-head-dancing .head-2 { left:42%; animation-delay:0.8s; }
.scn-head-dancing .head-3 { left:62%; animation-delay:1.4s; }
.scn-head-dancing .dance-dust { position:absolute; bottom:10%; left:15%; right:15%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(80,70,50,0.2) 0%, transparent 70%); filter: blur(8px); animation: hd-dust 3s ease-in-out infinite alternate; }
@keyframes hd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes hd-fortress { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes hd-dance { 0% { transform: translateX(0) translateY(0) rotate(-10deg) } 20% { transform: translateX(4px) translateY(-4px) rotate(15deg) } 40% { transform: translateX(-3px) translateY(-2px) rotate(-8deg) } 60% { transform: translateX(5px) translateY(-6px) rotate(20deg) } 80% { transform: translateX(-2px) translateY(-3px) rotate(-12deg) } 100% { transform: translateX(0) translateY(0) rotate(-10deg) } }
@keyframes hd-head { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(30deg) } 50% { transform: translateY(0) rotate(-20deg) } 75% { transform: translateY(-3px) rotate(15deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hd-dust { 0% { opacity:.2; transform: scaleY(1) } 50% { opacity:.4; transform: scaleY(1.3) } 100% { opacity:.3; transform: scaleY(1) } }

/* scene: tissaphernes-invites */
.scn-tissaphernes-invites {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2a20 100%),
    radial-gradient(circle at 60% 30%, #b08040 0%, transparent 60%);
}
.scn-tissaphernes-invites .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1e1410, #2a1c14 50%, #1a1010);
}
.scn-tissaphernes-invites .room-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #1a1810, #0e0c08);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-tissaphernes-invites .table-dish {
  position: absolute; bottom: 32%; left: 50%; width: 100px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3628, #2a1e12);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ti-table 12s ease-in-out infinite;
}
.scn-tissaphernes-invites .couch-left {
  position: absolute; bottom: 27%; left: 18%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a, #2a1a0e);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-tissaphernes-invites .figure-seated {
  position: absolute; bottom: 30%; left: 28%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #b08040 0%, #6a4020 60%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ti-seated 6s ease-in-out infinite alternate;
}
.scn-tissaphernes-invites .figure-standing {
  position: absolute; bottom: 28%; right: 25%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1010, #2a1a1a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: ti-standing 4s ease-in-out infinite;
}
.scn-tissaphernes-invites .lamp-torch {
  position: absolute; bottom: 60%; left: 60%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #d0a060, #8a5a30);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(208,160,96,0.6), 0 0 60px 20px rgba(208,160,96,0.3);
  animation: ti-torch 3s ease-in-out infinite alternate;
}
.scn-tissaphernes-invites .shadow-arch {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: ti-shadow 8s ease-in-out infinite alternate;
}
@keyframes ti-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes ti-seated { 0% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }
@keyframes ti-standing { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes ti-torch { 0% { opacity: 0.8; } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(208,160,96,0.8); } 100% { opacity: 0.9; } }
@keyframes ti-shadow { 0% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* scene: generals-captured */
.scn-generals-captured {
  background: linear-gradient(180deg, #120a08 0%, #1a1010 40%, #0a0808 100%),
    radial-gradient(circle at 50% 70%, #6a4020 0%, transparent 60%);
}
.scn-generals-captured .dungeon-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #1a1210, #221612 50%, #1a100e);
}
.scn-generals-captured .dungeon-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #1c1412, #0a0808);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.7);
}
.scn-generals-captured .door-open {
  position: absolute; bottom: 30%; left: 10%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a1a12, #1a0e08);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateY(-15deg);
  animation: gc-door 10s ease-in-out infinite alternate;
}
.scn-generals-captured .guard-left {
  position: absolute; bottom: 26%; left: 35%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1008, #1a0804);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: gc-guard 4s ease-in-out infinite;
}
.scn-generals-captured .guard-right {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1008, #1a0804);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: gc-guard 4s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-generals-captured .general-on-knees {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4020, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: gc-kneel 3s ease-in-out infinite alternate;
}
.scn-generals-captured .chain-links {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 8px;
  background: repeating-linear-gradient(90deg, #b08040 0px, #b08040 6px, transparent 6px, transparent 10px);
  filter: blur(1px);
  animation: gc-chain 2s steps(4) infinite;
}
.scn-generals-captured .torch-spark {
  position: absolute; bottom: 60%; right: 20%; width: 8px; height: 14px;
  background: radial-gradient(circle, #f0a060, #b06030);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(240,160,96,0.5), 0 0 40px 16px rgba(240,160,96,0.2);
  animation: gc-spark 1.5s ease-in-out infinite alternate;
}
@keyframes gc-door { 0%,100% { transform: perspective(200px) rotateY(-15deg); } 50% { transform: perspective(200px) rotateY(-10deg); } }
@keyframes gc-guard { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes gc-kneel { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes gc-chain { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gc-spark { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(1.3); opacity: 1; } }

/* scene: seizure */
.scn-seizure {
  background: linear-gradient(180deg, #100804 0%, #1a0e08 50%, #0a0604 100%),
    radial-gradient(circle at 40% 50%, #8a4a2a 0%, transparent 70%);
}
.scn-seizure .room-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #1a100c, #221410 50%, #1a0c08);
}
.scn-seizure .floor-tiles {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 42%;
  background: repeating-conic-gradient(#1a1410 0% 25%, #221a14 0% 50%) 0 0 / 40px 40px;
  opacity: 0.4;
  animation: sz-floor 20s linear infinite;
}
.scn-seizure .column-left {
  position: absolute; bottom: 20%; left: 15%; width: 25px; height: 130px;
  background: linear-gradient(180deg, #3a2a20, #1a1410);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
}
.scn-seizure .column-right {
  position: absolute; bottom: 20%; right: 15%; width: 25px; height: 130px;
  background: linear-gradient(180deg, #3a2a20, #1a1410);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 5px 0 10px rgba(0,0,0,0.5);
}
.scn-seizure .figure-captor {
  position: absolute; bottom: 24%; left: 40%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1008, #1a0602);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: sz-captor 3s ease-in-out infinite alternate;
}
.scn-seizure .figure-captive {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #4a3020, #2a180c);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: sz-captive 4s ease-in-out infinite;
}
.scn-seizure .table-overturned {
  position: absolute; bottom: 18%; left: 60%; width: 60px; height: 15px;
  background: linear-gradient(180deg, #3a2210, #1a0e04);
  transform: rotate(-30deg);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sz-table 8s ease-in-out infinite alternate;
}
.scn-seizure .lamp-flicker {
  position: absolute; bottom: 65%; left: 50%; width: 10px; height: 18px;
  background: radial-gradient(circle, #f0a050, #a06020);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(240,160,80,0.7);
  animation: sz-lamp 2s ease-in-out infinite alternate;
}
@keyframes sz-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }
@keyframes sz-captor { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes sz-captive { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-4px); } }
@keyframes sz-table { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } 100% { transform: rotate(-30deg) translateY(1px); } }
@keyframes sz-lamp { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

/* scene: ariaeus-betrayal */
.scn-ariaeus-betrayal {
  background: linear-gradient(180deg, #0e0a08 0%, #1a1210 50%, #080604 100%),
    radial-gradient(circle at 70% 40%, #b08030 0%, transparent 60%);
}
.scn-ariaeus-betrayal .tent-interior {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1412, #221816 50%, #1a100e);
}
.scn-ariaeus-betrayal .rug-spread {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1a10, #1a0e08);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: ar-rug 15s ease-in-out infinite alternate;
}
.scn-ariaeus-betrayal .figure-arius {
  position: absolute; bottom: 28%; left: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #6a4020, #3a1a08);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: ar-arius 5s ease-in-out infinite alternate;
}
.scn-ariaeus-betrayal .figure-hellene {
  position: absolute; bottom: 26%; right: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3020, #2a180a);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: ar-hellene 6s ease-in-out infinite;
}
.scn-ariaeus-betrayal .spear-rack {
  position: absolute; bottom: 20%; left: 55%; width: 15px; height: 60px;
  background: linear-gradient(180deg, #2a1a08, #1a0e04);
  border-radius: 10%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: ar-spear 8s ease-in-out infinite alternate;
}
.scn-ariaeus-betrayal .brazier-glow {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0b060, #a06020);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(240,176,96,0.7), 0 0 80px 30px rgba(240,176,96,0.3);
  animation: ar-brazier 3s ease-in-out infinite alternate;
}
.scn-ariaeus-betrayal .shadow-drapes {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  pointer-events: none;
  animation: ar-shadow 10s ease-in-out infinite alternate;
}
@keyframes ar-rug { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ar-arius { 0% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ar-hellene { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes ar-spear { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes ar-brazier { 0% { opacity: 0.8; } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(240,176,96,0.8); } 100% { opacity: 0.9; } }
@keyframes ar-shadow { 0% { opacity: 0.5; } 100% { opacity: 0.7; } }

/* truce-arranged */
.scn-truce-arranged {
  background: linear-gradient(180deg, #f0d8b0 0%, #c8a878 40%, #a08050 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
}
.scn-truce-arranged .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #f8e8c8 0%, #e0c898 60%, transparent 100%); animation: tarr-sky 8s ease-in-out infinite alternate; }
.scn-truce-arranged .hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 60% 40% 0 0; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.3); animation: tarr-hills 12s ease-in-out infinite; }
.scn-truce-arranged .tent { position:absolute; bottom:28%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: linear-gradient(135deg, #b09870 0%, #8a7050 50%, #6a5030 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: tarr-tent 4s ease-in-out infinite; }
.scn-truce-arranged .herald { position:absolute; bottom:25%; width:14px; height:32px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tarr-walk 3s ease-in-out infinite; }
.scn-truce-arranged .left-herald { left:32%; animation-delay:-0.5s; }
.scn-truce-arranged .right-herald { left:58%; animation-delay:-2s; }
.scn-truce-arranged .standard { position:absolute; bottom:30%; left:48%; width:4px; height:50px; background:#5a3a2a; transform-origin:bottom center; animation: tarr-flag 2s ease-in-out infinite alternate; }
.scn-truce-arranged .standard::after { content:''; position:absolute; top:0; left:2px; width:20px; height:14px; background: linear-gradient(180deg, #a0461a 0%, #80361a 100%); border-radius:0 30% 30% 0; box-shadow:0 2px 6px rgba(0,0,0,0.3); animation: tarr-banner 2.5s ease-in-out infinite alternate; }
.scn-truce-arranged .shadow-ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.35) 100%); }
@keyframes tarr-sky { 0%{opacity:0.85;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.02)} 100%{opacity:0.9;transform:scaleY(1)} }
@keyframes tarr-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes tarr-tent { 0%,100%{transform:translateX(-50%)} 50%{transform:translateX(-50%) translateY(-3px)} }
@keyframes tarr-walk { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(6px) rotate(2deg)} 50%{transform:translateX(12px) rotate(-2deg)} 75%{transform:translateX(18px) rotate(2deg)} 100%{transform:translateX(24px) rotate(0deg)} }
@keyframes tarr-flag { 0%{transform:rotate(-5deg)} 100%{transform:rotate(5deg)} }
@keyframes tarr-banner { 0%{transform:scaleX(0.8)} 100%{transform:scaleX(1.2)} }

/* truce-announced */
.scn-truce-announced {
  background: linear-gradient(180deg, #f2e6c8 0%, #d4c4a0 40%, #b4a080 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 70%);
}
.scn-truce-announced .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f8e8d0 0%, #e0d0b0 70%, transparent 100%); animation: tanc-sky 10s ease-in-out infinite alternate; }
.scn-truce-announced .horizon { position:absolute; bottom:45%; left:0; right:0; height:2px; background: #8a7a5a; box-shadow: 0 0 6px rgba(138,122,90,0.4); animation: tanc-horiz 14s ease-in-out infinite; }
.scn-truce-announced .land { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 70% 0 0; }
.scn-truce-announced .soldier-column { position:absolute; bottom:15%; left:10%; width:70%; height:30px; display:flex; justify-content:space-around; animation: tanc-march 20s linear infinite; }
.scn-truce-announced .soldier-column::before { content:''; display:block; width:100%; height:100%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, transparent 6px, transparent 12px); mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 80%); -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 80%); }
.scn-truce-announced .rearguard { position:absolute; bottom:18%; right:8%; width:16px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tanc-walk 3.5s ease-in-out infinite; }
.scn-truce-announced .trench-water { position:absolute; bottom:30%; left:0; right:0; height:8px; background: linear-gradient(90deg, #6a8a9a 0%, #8aaaba 50%, #6a8a9a 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); animation: tanc-water 8s ease-in-out infinite alternate; }
@keyframes tanc-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes tanc-horiz { 0%{transform:translateY(0);opacity:0.6} 50%{transform:translateY(-2px);opacity:1} 100%{transform:translateY(0);opacity:0.6} }
@keyframes tanc-march { 0%{transform:translateX(0)} 100%{transform:translateX(-20px)} }
@keyframes tanc-walk { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(4px) rotate(2deg)} 50%{transform:translateX(8px) rotate(-1deg)} 75%{transform:translateX(12px) rotate(1deg)} 100%{transform:translateX(16px) rotate(0deg)} }
@keyframes tanc-water { 0%{transform:scaleY(1);opacity:0.7} 50%{transform:scaleY(1.5);opacity:1} 100%{transform:scaleY(1);opacity:0.7} }

/* palm-villages */
.scn-palm-villages {
  background: linear-gradient(180deg, #fce8c0 0%, #e8c898 40%, #c8a868 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-palm-villages .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fdf0d8 0%, #f0d8b0 60%, transparent 100%); animation: palm-sky 12s ease-in-out infinite alternate; }
.scn-palm-villages .sand { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #d0b880 0%, #b09860 100%); border-radius: 20% 80% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.1); }
.scn-palm-villages .palm-trunk { position:absolute; bottom:20%; left:25%; width:10px; height:100px; background: linear-gradient(180deg, #5a3a1a 0%, #8a5a2a 50%, #5a3a1a 100%); border-radius: 40%; transform-origin: bottom center; animation: palm-sway 6s ease-in-out infinite; }
.scn-palm-villages .palm-fronds { position:absolute; bottom:60%; left:25%; width:80px; height:20px; background: radial-gradient(ellipse at 50% 100%, #4a7a2a 0%, #2a5a1a 70%, transparent 100%); border-radius: 50%; transform: rotate(-20deg); transform-origin: 0% 100%; animation: palm-frond 5s ease-in-out infinite alternate; }
.scn-palm-villages .wine-jar { position:absolute; bottom:18%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: palm-jar 8s ease-in-out infinite; }
.scn-palm-villages .dates { position:absolute; bottom:25%; left:45%; width:60px; height:30px; background: radial-gradient(circle at 30% 50%, #a06020 0%, #704010 80%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: palm-dates 10s ease-in-out infinite alternate; }
.scn-palm-villages .figure-tasting { position:absolute; bottom:15%; right:15%; width:18px; height:36px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: palm-taste 3s ease-in-out infinite; }
@keyframes palm-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes palm-sway { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes palm-frond { 0%{transform:rotate(-25deg)} 100%{transform:rotate(-15deg)} }
@keyframes palm-jar { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
@keyframes palm-dates { 0%{transform:scale(1);opacity:0.9} 50%{transform:scale(1.1);opacity:1} 100%{transform:scale(1);opacity:0.9} }
@keyframes palm-taste { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(6px) rotate(2deg)} 100%{transform:translateX(0) rotate(-2deg)} }

/* tissaphernes-speaks */
.scn-tissaphernes-speaks {
  background: linear-gradient(180deg, #f0d8b8 0%, #d0b090 40%, #a08060 100%), radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 60%);
}
.scn-tissaphernes-speaks .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f8e0c0 0%, #e0c0a0 60%, transparent 100%); animation: tiss-sky 6s ease-in-out infinite alternate; }
.scn-tissaphernes-speaks .platform { position:absolute; bottom:25%; left:50%; width:120px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-tissaphernes-speaks .speaker { position:absolute; bottom:28%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3018 0%, #2a1808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tiss-speak 2.5s ease-in-out infinite; }
.scn-tissaphernes-speaks .audience { position:absolute; bottom:20%; left:10%; right:10%; height:30px; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 8px, transparent 8px, transparent 16px); mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 90%); -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 90%); animation: tiss-audience 15s linear infinite; }
.scn-tissaphernes-speaks .banner { position:absolute; bottom:32%; left:45%; width:4px; height:40px; background:#5a3a2a; transform-origin:bottom center; animation: tiss-banner 1.8s ease-in-out infinite alternate; }
.scn-tissaphernes-speaks .banner::after { content:''; position:absolute; top:0; left:2px; width:16px; height:10px; background: linear-gradient(90deg, #a0461a 0%, #80361a 100%); border-radius:0 20% 20% 0; animation: tiss-flag 2s ease-in-out infinite alternate; }
.scn-tissaphernes-speaks .shadow-strip { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); }
.scn-tissaphernes-speaks .dust-particles { position:absolute; bottom:20%; left:30%; width:60px; height:40px; background: radial-gradient(circle at 30% 50%, rgba(200,180,150,0.3) 0%, transparent 60%); animation: tiss-dust 4s ease-in-out infinite alternate; }
@keyframes tiss-sky { 0%{opacity:0.8;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.03)} 100%{opacity:0.85;transform:scaleY(1)} }
@keyframes tiss-speak { 0%{transform:translateX(-50%) rotate(-1deg)} 50%{transform:translateX(-50%) rotate(2deg)} 100%{transform:translateX(-50%) rotate(-1deg)} }
@keyframes tiss-audience { 0%{transform:translateX(0)} 100%{transform:translateX(-20px)} }
@keyframes tiss-banner { 0%{transform:rotate(-4deg)} 100%{transform:rotate(4deg)} }
@keyframes tiss-flag { 0%{transform:scaleX(0.9)} 100%{transform:scaleX(1.1)} }
@keyframes tiss-dust { 0%{transform:translateY(0);opacity:0.3} 50%{transform:translateY(-10px);opacity:0.6} 100%{transform:translateY(0);opacity:0.3} }

.scn-myriandus-desertion { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 60%); }
.scn-myriandus-desertion .sky-overcast { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%); animation: md-sky 15s ease-in-out infinite alternate; }
.scn-myriandus-desertion .sea-troubled { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: md-sea 8s ease-in-out infinite; }
.scn-myriandus-desertion .dock { position:absolute; bottom:44%; left:15%; width:40%; height:6px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:2px; transform:scaleY(1.5); box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-myriandus-desertion .ship-small { position:absolute; bottom:50%; right:10%; width:60px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 60% 40% 40% 60% / 80% 80% 20% 20%; transform:rotate(-5deg); animation: md-ship 25s linear infinite; }
.scn-myriandus-desertion .sail-departing { position:absolute; bottom:55%; right:12%; width:35px; height:40px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); border-radius:10% 10% 0 0; transform:rotate(10deg); animation: md-sail 10s ease-in-out infinite alternate; }
.scn-myriandus-desertion .figure-left { position:absolute; bottom:43%; left:20%; width:14px; height:28px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: md-figure 5s ease-in-out infinite; }
.scn-myriandus-desertion .figure-right { position:absolute; bottom:43%; left:28%; width:14px; height:28px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: md-figure 5s ease-in-out infinite reverse; animation-delay:-2.5s; }
.scn-myriandus-desertion .cloud-gloom-a { position:absolute; top:12%; left:-10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(80,90,100,.5) 0%, rgba(60,70,80,.1) 100%); border-radius:50%; filter: blur(8px); animation: md-cloud 40s linear infinite; }
.scn-myriandus-desertion .cloud-gloom-b { position:absolute; top:25%; right:-5%; width:90px; height:15px; background: linear-gradient(180deg, rgba(80,90,100,.4) 0%, rgba(60,70,80,.05) 100%); border-radius:50%; filter: blur(6px); animation: md-cloud 50s linear infinite reverse; animation-delay:-10s; }
@keyframes md-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes md-sea { 0% { transform: translateY(0) } 25% { transform: translateY(2px) } 50% { transform: translateY(-2px) } 75% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes md-ship { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(-30px) rotate(-8deg) } 100% { transform: translateX(-60px) rotate(-5deg) } }
@keyframes md-sail { 0% { transform: rotate(5deg) scaleX(1) } 50% { transform: rotate(15deg) scaleX(.9) } 100% { transform: rotate(5deg) scaleX(1) } }
@keyframes md-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-3px) translateY(1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes md-cloud { 0% { transform: translateX(0) } 50% { transform: translateX(30vw) } 100% { transform: translateX(60vw) } }

.scn-cyrus-noble-response { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%); }
.scn-cyrus-noble-response .wall-dim { position:absolute; inset:0 0 10% 0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 40%, #2a1a0a 100%); }
.scn-cyrus-noble-response .floor-dark { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); border-radius:0; }
.scn-cyrus-noble-response .pillar-left { position:absolute; bottom:10%; left:15%; width:8px; height:70%; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 0 12px rgba(0,0,0,.5); }
.scn-cyrus-noble-response .pillar-right { position:absolute; bottom:10%; right:15%; width:8px; height:70%; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 0 12px rgba(0,0,0,.5); }
.scn-cyrus-noble-response .cyrus-silhouette { position:absolute; bottom:15%; left:50%; width:20px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cnr-fig 6s ease-in-out infinite; }
.scn-cyrus-noble-response .listener-silhouette { position:absolute; bottom:15%; left:38%; width:16px; height:52px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cnr-fig 6s ease-in-out infinite reverse; animation-delay:-3s; }
.scn-cyrus-noble-response .lantern-glow { position:absolute; bottom:45%; left:50%; width:60px; height:60px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,200,100,.8) 0%, rgba(255,150,50,.3) 50%, transparent 100%); border-radius:50%; animation: cnr-glow 4s ease-in-out infinite alternate; }
.scn-cyrus-noble-response .lantern-body { position:absolute; bottom:43%; left:50%; width:12px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 0 8px #a08040; }
@keyframes cnr-fig { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-45%) rotate(3deg) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-55%) rotate(-3deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes cnr-glow { 0% { transform: translate(-50%,-50%) scale(.9); opacity:.7 } 50% { transform: translate(-50%,-50%) scale(1.1); opacity:1 } 100% { transform: translate(-50%,-50%) scale(.95); opacity:.8 } }

.scn-euphrates-approach { background: linear-gradient(180deg, #8a9a8a 0%, #7a8a7a 40%, #6a7a6a 100%), radial-gradient(ellipse at 50% 100%, #6a7a6a 0%, transparent 60%); }
.scn-euphrates-approach .sky-calm-overcast { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #9aab9a 0%, #8a9a8a 100%); animation: ea-sky 20s ease-in-out infinite alternate; }
.scn-euphrates-approach .river-mist { position:absolute; bottom:30%; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(120,140,120,.6) 0%, rgba(100,120,100,.2) 100%); filter: blur(4px); animation: ea-mist 30s ease-in-out infinite alternate; }
.scn-euphrates-approach .riverbank-left { position:absolute; bottom:0; left:0; width:30%; height:35%; background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 100%); border-radius:0 60% 0 0 / 0 80% 0 0; }
.scn-euphrates-approach .riverbank-right { position:absolute; bottom:0; right:0; width:30%; height:35%; background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 100%); border-radius:60% 0 0 0 / 80% 0 0 0; }
.scn-euphrates-approach .tree-tall { position:absolute; bottom:35%; left:15%; width:10px; height:50px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom; animation: ea-tree 12s ease-in-out infinite; }
.scn-euphrates-approach .tree-small { position:absolute; bottom:35%; left:25%; width:7px; height:30px; background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom; animation: ea-tree 14s ease-in-out infinite reverse; animation-delay:-6s; }
.scn-euphrates-approach .soldier-march { position:absolute; bottom:0%; left:40%; width:12px; height:30px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ea-march 4s ease-in-out infinite; }
.scn-euphrates-approach .smoke-distant { position:absolute; top:5%; right:30%; width:40px; height:30px; background: radial-gradient(circle, rgba(150,140,130,.5) 0%, transparent 100%); filter: blur(10px); animation: ea-smoke 25s ease-in-out infinite; }
@keyframes ea-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ea-mist { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes ea-tree { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes ea-march { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(5px) translateY(-1px) rotate(3deg) } 50% { transform: translateX(10px) translateY(0) rotate(0) } 75% { transform: translateX(5px) translateY(1px) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ea-smoke { 0% { transform: scaleY(1) translateY(0); opacity:.3 } 50% { transform: scaleY(1.5) translateY(-10px); opacity:.6 } 100% { transform: scaleY(1) translateY(0); opacity:.3 } }

.scn-thapsacus-cross { background: linear-gradient(180deg, #4a3a5a 0%, #3a2a4a 40%, #2a1a3a 100%), radial-gradient(ellipse at 50% 100%, #2a1a3a 0%, transparent 60%); }
.scn-thapsacus-cross .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a5a7a 0%, #4a3a5a 100%); animation: tc-sky 18s ease-in-out infinite alternate; }
.scn-thapsacus-cross .river-wide { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 6px 14px rgba(0,0,0,.5); animation: tc-river 7s ease-in-out infinite; }
.scn-thapsacus-cross .boat-fore { position:absolute; bottom:38%; left:20%; width:40px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30%; transform:rotate(5deg); animation: tc-boat 4s ease-in-out infinite; }
.scn-thapsacus-cross .boat-aft { position:absolute; bottom:40%; left:55%; width:40px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30%; transform:rotate(-3deg); animation: tc-boat 5s ease-in-out infinite reverse; animation-delay:-2.5s; }
.scn-thapsacus-cross .soldier-standing { position:absolute; bottom:42%; left:25%; width:14px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: tc-fig 3s ease-in-out infinite; }
.scn-thapsacus-cross .soldier-rowing { position:absolute; bottom:40%; left:58%; width:14px; height:26px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: tc-fig 3s ease-in-out infinite reverse; animation-delay:-1.5s; }
.scn-thapsacus-cross .torch-flare { position:absolute; bottom:44%; left:42%; width:20px; height:20px; background: radial-gradient(circle, #ffa060 0%, #ff8040 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,160,96,.5); animation: tc-torch 2s ease-in-out infinite alternate; }
.scn-thapsacus-cross .tent-shape { position:absolute; bottom:24%; right:8%; width:40px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); }
.scn-thapsacus-cross .shadow-band { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); pointer-events:none; animation: tc-shadow 10s ease-in-out infinite; }
@keyframes tc-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes tc-river { 0% { transform: translateY(0) } 25% { transform: translateY(2px) } 50% { transform: translateY(-2px) } 75% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes tc-boat { 0% { transform: rotate(5deg) translateX(0) } 25% { transform: rotate(8deg) translateX(3px) } 50% { transform: rotate(5deg) translateX(0) } 75% { transform: rotate(3deg) translateX(-3px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes tc-fig { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tc-torch { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes tc-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* Scene: procles-arrives */
.scn-procles-arrives { background: linear-gradient(180deg, #0a0a1a 0%, #1a2a3a 30%, #3a4a3a 60%, #8a6a2a 80%, #daaa4a 100%), radial-gradient(ellipse at 50% 0%, #daaa4a 0%, transparent 70%); }
.scn-procles-arrives .p-sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3a 0%, #3a3a5a 30%, #5a5a2a 60%, transparent 100%); animation: pr-sky 14s ease-in-out infinite alternate; }
.scn-procles-arrives .p-sun   { position:absolute; top:20%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #c08020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,128,.5), 0 0 80px 40px rgba(200,100,20,.3); animation: pr-sun 8s ease-in-out infinite; }
.scn-procles-arrives .p-hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 70% 50% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,.5); animation: pr-hills 20s ease-in-out infinite alternate; }
.scn-procles-arrives .p-city  { position:absolute; bottom:28%; left:35%; width:120px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: pr-city 12s ease-in-out infinite; }
.scn-procles-arrives .p-rider1{ position:absolute; bottom:22%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: pr-rider 6s ease-in-out infinite; }
.scn-procles-arrives .p-rider2{ position:absolute; bottom:22%; left:52%; width:28px; height:38px; background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: pr-rider 6s ease-in-out 2s infinite; }
.scn-procles-arrives .p-mist  { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(200,180,140,.25) 0%, transparent 100%); filter: blur(10px); animation: pr-mist 10s ease-in-out infinite alternate; }
@keyframes pr-sky   { 0% { opacity:.6; transform:scaleY(1) } 50% { opacity:.9; transform:scaleY(1.05) } 100% { opacity:.7; transform:scaleY(.95) } }
@keyframes pr-sun   { 0% { transform:translateX(-50%) translateY(0) scale(1); box-shadow:0 0 30px 15px rgba(255,208,128,.4) } 50% { transform:translateX(-50%) translateY(-8px) scale(1.1); box-shadow:0 0 60px 30px rgba(255,208,128,.7) } 100% { transform:translateX(-50%) translateY(0) scale(1); box-shadow:0 0 40px 20px rgba(255,208,128,.5) } }
@keyframes pr-hills { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-4px) scaleX(1.02) } 100% { transform:translateY(2px) scaleX(.98) } }
@keyframes pr-city  { 0% { transform:translateY(0); opacity:.8 } 50% { transform:translateY(-2px); opacity:1 } 100% { transform:translateY(0); opacity:.85 } }
@keyframes pr-rider { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(5px) translateY(-3px) rotate(1deg) } 50% { transform:translateX(10px) translateY(0) rotate(2deg) } 75% { transform:translateX(15px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(20px) translateY(0) rotate(0) } }
@keyframes pr-mist  { 0% { opacity:.3; transform:translateX(0) } 50% { opacity:.6; transform:translateX(10px) } 100% { opacity:.4; transform:translateX(-10px) } }

/* Scene: ariaeus-retreat */
.scn-ariaeus-retreat { background: linear-gradient(180deg, #0a0a1e 0%, #1a2a3e 30%, #2a3a2e 60%, #7a5a2a 80%, #b08030 100%), radial-gradient(ellipse at 50% 0%, #b08030 0%, transparent 60%); }
.scn-ariaeus-retreat .a-sky   { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a0a2e 0%, #2a3a4a 40%, #3a4a2a 70%, transparent 100%); animation: ar-sky 16s ease-in-out infinite alternate; }
.scn-ariaeus-retreat .a-sun   { position:absolute; top:15%; left:60%; width:35px; height:45px; transform:translateX(-50%); background: radial-gradient(circle, #e0b060 0%, #a07020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(200,160,80,.4), 0 0 60px 30px rgba(160,112,32,.2); animation: ar-sun 10s ease-in-out infinite; }
.scn-ariaeus-retreat .a-tents { position:absolute; bottom:30%; left:10%; width:80px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 80% 20% 0 0 / 100% 50% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: ar-tents 15s ease-in-out infinite alternate; }
.scn-ariaeus-retreat .a-figures{ position:absolute; bottom:22%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ar-figures 7s ease-in-out infinite; }
.scn-ariaeus-retreat .a-ground{ position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.7); animation: ar-ground 12s ease-in-out infinite; }
.scn-ariaeus-retreat .a-haze  { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(120,100,60,.2) 0%, transparent 100%); filter: blur(8px); animation: ar-haze 20s linear infinite; }
@keyframes ar-sky   { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.03) } 100% { opacity:.8; transform:scaleY(.97) } }
@keyframes ar-sun   { 0% { transform:translateX(-50%) translateY(0) scale(1); box-shadow:0 0 20px 10px rgba(200,160,80,.3) } 50% { transform:translateX(-50%) translateY(-6px) scale(1.08); box-shadow:0 0 40px 20px rgba(200,160,80,.6) } 100% { transform:translateX(-50%) translateY(0) scale(1); box-shadow:0 0 30px 15px rgba(200,160,80,.4) } }
@keyframes ar-tents { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-2px) scaleX(1.03) } 100% { transform:translateY(1px) scaleX(.97) } }
@keyframes ar-figures{ 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform:translateX(8px) translateY(0) rotate(0) } 75% { transform:translateX(12px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(16px) translateY(0) rotate(0) } }
@keyframes ar-ground{ 0% { opacity:.8; transform:translateY(0) } 50% { opacity:1; transform:translateY(-2px) } 100% { opacity:.85; transform:translateY(1px) } }
@keyframes ar-haze  { 0% { opacity:.3; transform:translateX(0) } 50% { opacity:.6; transform:translateX(15px) } 100% { opacity:.4; transform:translateX(-15px) } }

/* Scene: clearchus-answers */
.scn-clearchus-answers { background: linear-gradient(180deg, #2a4a6a 0%, #6a8a7a 30%, #baa05a 60%, #e0c060 80%, #f0e0a0 100%), radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%); }
.scn-clearchus-answers .c-sky   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a8a7a 0%, #baa05a 40%, transparent 100%); animation: cl-sky 12s ease-in-out infinite alternate; }
.scn-clearchus-answers .c-sun   { position:absolute; top:10%; left:80%; width:50px; height:50px; background: radial-gradient(circle, #ffffe0 0%, #f0d080 50%, #c09040 100%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(240,208,128,.5), 0 0 100px 50px rgba(192,144,64,.3); animation: cl-sun 8s ease-in-out infinite; }
.scn-clearchus-answers .c-profile{ position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%); border-radius: 40% 30% 20% 30% / 50% 40% 30% 40%; transform-origin: bottom center; animation: cl-profile 4s ease-in-out infinite; }
.scn-clearchus-answers .c-hand  { position:absolute; bottom:35%; left:42%; width:12px; height:25px; background: #2a2a2a; border-radius: 30% 30% 20% 20%; transform-origin: bottom left; animation: cl-hand 2s ease-in-out infinite alternate; }
.scn-clearchus-answers .c-soldiers{ position:absolute; bottom:18%; left:55%; width:80px; height:40px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 3px 8px rgba(0,0,0,.5); animation: cl-soldiers 10s ease-in-out infinite; }
.scn-clearchus-answers .c-ground{ position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); animation: cl-ground 15s ease-in-out infinite; }
@keyframes cl-sky   { 0% { opacity:.8; transform:translateY(0) } 50% { opacity:1; transform:translateY(-5px) } 100% { opacity:.85; transform:translateY(3px) } }
@keyframes cl-sun   { 0% { transform:translateX(-50%) translateY(0) scale(1); box-shadow:0 0 50px 25px rgba(240,208,128,.4) } 50% { transform:translateX(-50%) translateY(-10px) scale(1.15); box-shadow:0 0 80px 40px rgba(240,208,128,.7) } 100% { transform:translateX(-50%) translateY(0) scale(1); box-shadow:0 0 60px 30px rgba(240,208,128,.5) } }
@keyframes cl-profile{ 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 50% { transform:translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes cl-hand  { 0% { transform:rotate(-10deg) translateX(0) } 50% { transform:rotate(15deg) translateX(2px) } 100% { transform:rotate(-5deg) translateX(0) } }
@keyframes cl-soldiers { 0% { opacity:.7; transform:scaleX(1) } 50% { opacity:1; transform:scaleX(1.02) } 100% { opacity:.8; transform:scaleX(.98) } }
@keyframes cl-ground { 0% { opacity:.9; transform:translateY(0) } 50% { opacity:1; transform:translateY(-2px) } 100% { opacity:.85; transform:translateY(1px) } }

/* Scene: offer-to-arius */
.scn-offer-to-arius { background: linear-gradient(180deg, #3a5a7a 0%, #7a9a7a 30%, #baaa5a 60%, #e0d080 80%, #f0e0a0 100%), radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%); }
.scn-offer-to-arius .o-sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a9a7a 0%, #baaa5a 40%, transparent 100%); animation: of-sky 14s ease-in-out infinite alternate; }
.scn-offer-to-arius .o-sun   { position:absolute; top:8%; left:70%; width:45px; height:45px; background: radial-gradient(circle, #ffffe0 0%, #f0d080 50%, #c09040 100%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(240,208,128,.5), 0 0 80px 40px rgba(192,144,64,.3); animation: of-sun 9s ease-in-out infinite; }
.scn-offer-to-arius .o-arius { position:absolute; bottom:15%; left:20%; width:35px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 30% 35% 20% 25% / 50% 55% 30% 30%; transform-origin: bottom center; animation: of-arius 5s ease-in-out infinite; }
.scn-offer-to-arius .o-messenger{ position:absolute; bottom:15%; left:50%; width:30px; height:55px; background: linear-gradient(180deg, #2a2a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 45% 45% 30% 30%; transform-origin: bottom center; animation: of-messenger 5s ease-in-out 2.5s infinite; }
.scn-offer-to-arius .o-scroll{ position:absolute; bottom:28%; left:38%; width:15px; height:8px; background: #5a4a2a; border-radius:20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: of-scroll 3s ease-in-out infinite; }
.scn-offer-to-arius .o-ground{ position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a1a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); animation: of-ground 12s ease-in-out infinite; }
@keyframes of-sky   { 0% { opacity:.8; transform:translateY(0) } 50% { opacity:1; transform:translateY(-4px) } 100% { opacity:.85; transform:translateY(2px) } }
@keyframes of-sun   { 0% { transform:translateX(-50%) translateY(0) scale(1); box-shadow:0 0 40px 20px rgba(240,208,128,.4) } 50% { transform:translateX(-50%) translateY(-8px) scale(1.12); box-shadow:0 0 70px 35px rgba(240,208,128,.7) } 100% { transform:translateX(-50%) translateY(0) scale(1); box-shadow:0 0 50px 25px rgba(240,208,128,.5) } }
@keyframes of-arius { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 50% { transform:translateX(5px) translateY(-2px) rotate(1deg) } 100% { transform:translateX(10px) translateY(0) rotate(0) } }
@keyframes of-messenger{ 0% { transform:translateX(0) translateY(0) rotate(1deg) } 50% { transform:translateX(-4px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(-8px) translateY(0) rotate(0) } }
@keyframes of-scroll{ 0% { transform:translateY(0) rotate(-5deg); opacity:.8 } 50% { transform:translateY(-3px) rotate(5deg); opacity:1 } 100% { transform:translateY(0) rotate(-2deg); opacity:.85 } }
@keyframes of-ground{ 0% { opacity:.9; transform:translateY(0) } 50% { opacity:1; transform:translateY(-2px) } 100% { opacity:.85; transform:translateY(1px) } }

/* feast-with-headman */
.scn-feast-with-headman {
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a12 50%, #2a0a00 100%),
              radial-gradient(ellipse at 50% 40%, #d96d3a 0%, transparent 60%);
}
.scn-feast-with-headman .tent-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(135deg, #6a3a1a 0%, #8a4a2a 40%, #4a2a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-feast-with-headman .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
}
.scn-feast-with-headman .wine-jar {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: -2px 2px 6px rgba(0,0,0,.5);
}
.scn-feast-with-headman .table {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
}
.scn-feast-with-headman .fire-pit {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d95c3a 0%, #8a3a1a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(217,92,58,.4);
}
.scn-feast-with-headman .flame-a {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 18px;
  margin-left: -10px;
  background: radial-gradient(circle, #f4a261 0%, #e76f51 60%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: fe-flame-a 0.8s ease-in-out infinite alternate;
}
.scn-feast-with-headman .flame-b {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 14px;
  margin-left: 4px;
  background: radial-gradient(circle, #f4e261 0%, #e79a51 60%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: fe-flame-a 0.6s ease-in-out infinite alternate-reverse;
}
.scn-feast-with-headman .host-figure {
  position: absolute; bottom: 18%; left: 45%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-host 4s ease-in-out infinite;
}
.scn-feast-with-headman .guest-figure {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-guest 3.5s ease-in-out infinite;
}
@keyframes fe-flame-a {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.7; }
}
@keyframes fe-host {
  0% { transform: rotate(-2deg) translateX(0) scaleX(1); }
  50% { transform: rotate(2deg) translateX(3px) scaleX(1.02); }
  100% { transform: rotate(-1deg) translateX(0) scaleX(0.98); }
}
@keyframes fe-guest {
  0% { transform: rotate(1deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(-2px); }
  100% { transform: rotate(1deg); }
}

/* guide-escapes */
.scn-guide-escapes {
  background: linear-gradient(180deg, #3a4a6a 0%, #6a7a8a 30%, #9a7a5a 60%, #7a5a3a 100%),
              radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 70%);
}
.scn-guide-escapes .dawn-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #7a8a9a 40%, #baa87a 70%, #dab84a 100%);
  animation: ge-sky 12s ease-in-out infinite alternate;
}
.scn-guide-escapes .dawn-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,.4);
  animation: ge-hills 20s ease-in-out infinite alternate;
}
.scn-guide-escapes .camp-tent-a {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: -4px 4px 8px rgba(0,0,0,.5);
}
.scn-guide-escapes .camp-tent-b {
  position: absolute; bottom: 30%; left: 50%; width: 35px; height: 25px;
  margin-left: -20px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 2px 4px 6px rgba(0,0,0,.5);
}
.scn-guide-escapes .guard-figure {
  position: absolute; bottom: 26%; left: 30%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-guard 8s ease-in-out infinite;
}
.scn-guide-escapes .escapee-figure {
  position: absolute; bottom: 26%; left: 70%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ge-escapee 3s ease-in-out infinite;
}
.scn-guide-escapes .morning-breeze {
  position: absolute; top: 15%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,200,200,.1) 30%, transparent 60%);
  filter: blur(5px);
  animation: ge-breeze 6s ease-in-out infinite;
}
@keyframes ge-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ge-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ge-guard {
  0% { transform: rotate(0) translateX(0); }
  50% { transform: rotate(2deg) translateX(5px); }
  100% { transform: rotate(0); }
}
@keyframes ge-escapee {
  0% { transform: translateX(0) rotate(-5deg); }
  25% { transform: translateX(-8px) rotate(-15deg); }
  50% { transform: translateX(-18px) rotate(-25deg); }
  75% { transform: translateX(-25px) rotate(-35deg); }
  100% { transform: translateX(-30px) rotate(-45deg); }
}
@keyframes ge-breeze {
  0% { transform: translateX(0); opacity: 0.2; }
  50% { transform: translateX(30px); opacity: 0.5; }
  100% { transform: translateX(0); opacity: 0.2; }
}

/* chalybes-block */
.scn-chalybes-block {
  background: linear-gradient(180deg, #4a5a6a 0%, #5a6a7a 40%, #4a5a5a 80%, #3a4a3a 100%),
              radial-gradient(ellipse at 50% 30%, #6a7a8a 0%, transparent 70%);
}
.scn-chalybes-block .overcast-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #6a7a8a 50%, #7a8a9a 100%);
  animation: cb-sky 20s ease-in-out infinite alternate;
}
.scn-chalybes-block .far-peak {
  position: absolute; bottom: 40%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  clip-path: polygon(0% 100%, 20% 60%, 40% 80%, 60% 50%, 80% 70%, 100% 100%);
  opacity: 0.6;
  animation: cb-peak 30s linear infinite;
}
.scn-chalybes-block .near-peak {
  position: absolute; bottom: 25%; left: 5%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 100%, 30% 40%, 50% 60%, 70% 30%, 100% 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-chalybes-block .enemy-row {
  position: absolute; bottom: 45%; left: 30%; width: 50%; height: 15px;
  background: repeating-linear-gradient(90deg,
    #1a1a1a 0px, #1a1a1a 14px, transparent 14px, transparent 18px);
  animation: cb-enemy 6s ease-in-out infinite alternate;
}
.scn-chalybes-block .hoplite-row {
  position: absolute; bottom: 18%; left: 10%; width: 60%; height: 14px;
  background: repeating-linear-gradient(90deg,
    #3a2a1a 0px, #3a2a1a 8px, #4a3a2a 8px, #4a3a2a 16px, transparent 16px, transparent 20px);
  animation: cb-hoplite 8s ease-in-out infinite;
}
.scn-chalybes-block .standard {
  position: absolute; bottom: 20%; left: 50%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cb-standard 3s ease-in-out infinite;
}
.scn-chalybes-block .wind-gust {
  position: absolute; top: 10%; left: 0; right: 0; height: 5%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,200,200,.15) 30%, transparent 70%);
  filter: blur(8px);
  animation: cb-wind 12s linear infinite;
}
@keyframes cb-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes cb-peak {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.02); }
  100% { transform: translateX(-5px) scaleY(0.98); }
}
@keyframes cb-enemy {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-1px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.7; }
}
@keyframes cb-hoplite {
  0% { transform: translateX(0); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(0); }
}
@keyframes cb-standard {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes cb-wind {
  0% { transform: translateX(-50px); opacity: 0; }
  50% { transform: translateX(50px); opacity: 0.3; }
  100% { transform: translateX(150px); opacity: 0; }
}

/* laconic-joking */
.scn-laconic-joking {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 40%, #1a1a2a 80%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a5a 0%, transparent 60%);
}
.scn-laconic-joking .night-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2a 100%);
  animation: lj-sky 15s ease-in-out infinite alternate;
}
.scn-laconic-joking .ridge {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 60% 0 0 / 60% 50% 0 0;
}
.scn-laconic-joking .mountain {
  position: absolute; bottom: 40%; left: 40%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  clip-path: polygon(0% 100%, 15% 70%, 30% 85%, 50% 30%, 70% 75%, 85% 60%, 100% 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: lj-mountain 5s ease-in-out infinite;
}
.scn-laconic-joking .stealer-1 {
  position: absolute; bottom: 32%; left: 33%; width: 12px; height: 22px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lj-steal 2s ease-in-out infinite;
}
.scn-laconic-joking .stealer-2 {
  position: absolute; bottom: 35%; left: 55%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lj-steal 2.3s ease-in-out infinite 0.5s;
}
.scn-laconic-joking .stealer-3 {
  position: absolute; bottom: 38%; left: 65%; width: 11px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lj-steal 1.8s ease-in-out infinite 1s;
}
.scn-laconic-joking .laugh-cloud {
  position: absolute; top: 8%; left: 20%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lj-cloud 40s linear infinite;
}
@keyframes lj-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes lj-mountain {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-3px); }
  100% { transform: scaleX(0.98) translateY(0); }
}
@keyframes lj-steal {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  20% { transform: translateX(-2px) rotate(-10deg) scaleY(1.1); }
  50% { transform: translateX(5px) rotate(5deg) scaleY(0.9); }
  80% { transform: translateX(-3px) rotate(-5deg) scaleY(1.05); }
  100% { transform: translateX(0) rotate(0) scaleY(1); }
}
@keyframes lj-cloud {
  0% { transform: translateX(-30px); opacity: 0.1; }
  50% { transform: translateX(50px); opacity: 0.3; }
  100% { transform: translateX(120px); opacity: 0.1; }
}

.scn-deputation-to-cyrus {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1a1210 50%, #141012 100%),
    radial-gradient(ellipse at 30% 60%, #3d2a1a 0%, transparent 70%);
}
.scn-deputation-to-cyrus .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1410 0%, #2a1e18 50%, #1a1410 100%);
}
.scn-deputation-to-cyrus .table {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-deputation-to-cyrus .speaker {
  position: absolute; bottom: 25%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dep-speaker 4s ease-in-out infinite;
}
.scn-deputation-to-cyrus .listener {
  position: absolute; bottom: 25%; right: 28%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #2a1e14 0%, #141010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dep-listener 5s ease-in-out infinite;
}
.scn-deputation-to-cyrus .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 10px;
  background: radial-gradient(circle, #c08040 0%, #8a5a2a 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.5), 0 0 60px 20px rgba(192,128,64,0.2);
  animation: dep-lamp 3s ease-in-out infinite alternate;
}
.scn-deputation-to-cyrus .shadow-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.8) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.8) 100%);
  animation: dep-shad 8s ease-in-out infinite alternate;
}
.scn-deputation-to-cyrus .dust {
  position: absolute; top: 50%; left: 10%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,160,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: dep-dust 15s linear infinite;
}

@keyframes dep-speaker {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dep-listener {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-1px) rotate(-1deg); }
  80% { transform: translateY(0) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dep-lamp {
  0% { box-shadow: 0 0 25px 8px rgba(192,128,64,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(192,128,64,0.6); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(192,128,64,0.4); opacity: 0.85; }
}
@keyframes dep-shad {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes dep-dust {
  0% { transform: translateX(-20px) translateY(0); opacity: 0.6; }
  50% { transform: translateX(100vw) translateY(-10px); opacity: 0.2; }
  100% { transform: translateX(120vw) translateY(0); opacity: 0.6; }
}

.scn-cyrus-reply {
  background:
    linear-gradient(180deg, #1e1814 0%, #14100e 50%, #100c0a 100%),
    radial-gradient(ellipse at 60% 40%, #2a1e14 0%, transparent 60%);
}
.scn-cyrus-reply .tent-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a1e14 0%, #1a1410 50%, #0e0c0a 100%);
}
.scn-cyrus-reply .tent-rope {
  position: absolute; top: 30%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, transparent 0%, #3a2a1a 20%, #3a2a1a 80%, transparent 100%);
}
.scn-cyrus-reply .deputation {
  position: absolute; bottom: 20%; left: 15%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cyr-dep 6s ease-in-out infinite alternate;
}
.scn-cyrus-reply .cyrus-figure {
  position: absolute; bottom: 20%; right: 20%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cyr-cyrus 5s ease-in-out infinite;
}
.scn-cyrus-reply .map {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a241a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
}
.scn-cyrus-reply .brazier {
  position: absolute; bottom: 25%; left: 35%; width: 14px; height: 16px;
  background: radial-gradient(circle, #b08040 0%, #6a4222 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 12px rgba(176,128,64,0.5), 0 0 60px 20px rgba(176,128,64,0.2);
  animation: cyr-braze 4s ease-in-out infinite alternate;
}
.scn-cyrus-reply .smoke {
  position: absolute; top: 25%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,160,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: cyr-smoke 10s linear infinite;
}
.scn-cyrus-reply .shadow-cyrus {
  position: absolute; bottom: 10%; right: 18%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: cyr-shadow 5s ease-in-out infinite;
}

@keyframes cyr-dep {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cyr-cyrus {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-3px) rotate(1deg); }
  80% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cyr-braze {
  0% { box-shadow: 0 0 25px 8px rgba(176,128,64,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px rgba(176,128,64,0.6); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(176,128,64,0.4); opacity: 0.85; }
}
@keyframes cyr-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.1; }
  100% { transform: translateY(0) scale(1); opacity: 0.4; }
}
@keyframes cyr-shadow {
  0% { width: 40px; opacity: 0.8; }
  50% { width: 35px; opacity: 0.5; }
  100% { width: 40px; opacity: 0.8; }
}

.scn-pay-increase {
  background:
    linear-gradient(180deg, #1a1816 0%, #141210 50%, #100e0c 100%),
    radial-gradient(ellipse at 40% 50%, #2a221a 0%, transparent 70%);
}
.scn-pay-increase .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
}
.scn-pay-increase .tent-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a2018 0%, #1a1410 50%, #14100e 100%);
}
.scn-pay-increase .soldier-left {
  position: absolute; bottom: 20%; left: 20%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pay-sold1 6s ease-in-out infinite alternate;
}
.scn-pay-increase .soldier-right {
  position: absolute; bottom: 20%; right: 20%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #2a1e14 0%, #141010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pay-sold2 7s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-pay-increase .cyrus-calm {
  position: absolute; bottom: 20%; left: 45%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pay-cyrus 5s ease-in-out infinite;
}
.scn-pay-increase .fire-pit {
  position: absolute; bottom: 23%; left: 35%; width: 16px; height: 14px;
  background: radial-gradient(circle, #c09050 0%, #8a6030 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 35px 12px rgba(192,144,80,0.5), 0 0 70px 20px rgba(192,144,80,0.2);
  animation: pay-fire 4s ease-in-out infinite alternate;
}
.scn-pay-increase .shield-stand {
  position: absolute; bottom: 18%; left: 60%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-pay-increase .coin-pile {
  position: absolute; bottom: 24%; left: 48%; width: 20px; height: 10px;
  background: radial-gradient(circle, #b09060 0%, #8a7040 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pay-coins 3s ease-in-out infinite alternate;
}

@keyframes pay-sold1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pay-sold2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pay-cyrus {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pay-fire {
  0% { box-shadow: 0 0 25px 8px rgba(192,144,80,0.4); opacity: 0.85; }
  50% { box-shadow: 0 0 40px 15px rgba(192,144,80,0.6); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(192,144,80,0.4); opacity: 0.9; }
}
@keyframes pay-coins {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.1) translateY(-2px); }
  100% { transform: scale(1) translateY(0); }
}

.scn-issi-arrivals {
  background:
    linear-gradient(180deg, #9ab4c4 0%, #d4e4e8 30%, #eaf3f0 60%, #c4d8d0 100%),
    radial-gradient(ellipse at 40% 20%, #fce8c4 0%, transparent 70%);
}
.scn-issi-arrivals .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a8eb0 0%, #a0c0d8 40%, #d4e4e8 100%);
  animation: iss-sky 12s ease-in-out infinite alternate;
}
.scn-issi-arrivals .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: iss-hills 18s ease-in-out infinite alternate;
}
.scn-issi-arrivals .camp-wall {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-issi-arrivals .hoplite {
  position: absolute; bottom: 16%; left: 35%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iss-hop1 6s ease-in-out infinite alternate;
}
.scn-issi-arrivals .hoplite-2 {
  position: absolute; bottom: 16%; right: 30%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iss-hop2 7s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-issi-arrivals .banner {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #a8553d 0%, #803a2a 100%);
  border-radius: 2% 2% 10% 10% / 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: iss-banner 4s ease-in-out infinite;
}
.scn-issi-arrivals .dust-cloud {
  position: absolute; bottom: 16%; left: 20%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(160,140,120,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: iss-dust 20s linear infinite;
}
.scn-issi-arrivals .sun {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe4a0 0%, #e0c080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,228,160,0.3);
  animation: iss-sun 8s ease-in-out infinite alternate;
}

@keyframes iss-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes iss-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes iss-hop1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes iss-hop2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes iss-banner {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes iss-dust {
  0% { transform: translateX(-10px) translateY(0); opacity: 0.4; }
  50% { transform: translateX(100px) translateY(-5px); opacity: 0.2; }
  100% { transform: translateX(110px) translateY(0); opacity: 0.4; }
}
@keyframes iss-sun {
  0% { transform: scale(0.95) translateY(0); opacity: 0.85; }
  50% { transform: scale(1.05) translateY(-3px); opacity: 1; }
  100% { transform: scale(0.95) translateY(0); opacity: 0.9; }
}

/* ridges-taken */
.scn-ridges-taken {
  background: linear-gradient(180deg, #1e3a5f 0%, #3b6b8a 40%, #d4a95a 100%),
              radial-gradient(ellipse at 70% 60%, #d4a95a 0%, transparent 70%);
}
.scn-ridges-taken .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f2338 0%, #4b7ba4 100%);
  animation: rt-sky 15s ease-in-out infinite alternate;
}
.scn-ridges-taken .ridge-back {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #2d4a3a 0%, #1a2e24 100%);
  border-radius: 40% 30% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.4);
  transform: scaleX(1.1);
  animation: rt-ridge 20s ease-in-out infinite alternate;
}
.scn-ridges-taken .ridge-front {
  position: absolute; bottom: 20%; left: 15%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1e3020 100%);
  border-radius: 50% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: rt-ridge 18s ease-in-out infinite alternate-reverse;
}
.scn-ridges-taken .soldiers-back {
  position: absolute; bottom: 28%; left: 10%; width: 40px; height: 25px;
  background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: rt-soldiers 4s ease-in-out infinite;
}
.scn-ridges-taken .soldiers-front {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: rt-soldiers 3s ease-in-out infinite reverse;
}
.scn-ridges-taken .commander {
  position: absolute; bottom: 22%; left: 45%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a3a2a 0%, #0f1a0f 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rt-walk 5s ease-in-out infinite;
}
.scn-ridges-taken .sun-glow {
  position: absolute; top: 45%; left: 50%; width: 100px; height: 100px;
  background: radial-gradient(circle, #f5d998 0%, #e8b750 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  opacity: 0.6;
  animation: rt-glow 8s ease-in-out infinite alternate;
}
@keyframes rt-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes rt-ridge {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes rt-soldiers {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.05); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes rt-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(10px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes rt-glow {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* crossing-centrites */
.scn-crossing-centrites {
  background: linear-gradient(180deg, #1e3a5f 0%, #4b7ba4 50%, #c9a96e 100%),
              radial-gradient(ellipse at 40% 100%, #c9a96e 0%, transparent 70%);
}
.scn-crossing-centrites .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0f2338 0%, #3b6b8a 100%);
  animation: cc-sky 20s ease-in-out infinite alternate;
}
.scn-crossing-centrites .plain {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8e4e 0%, #4a6a3a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.3);
  transform: scaleY(0.95);
  animation: cc-plain 25s ease-in-out infinite alternate;
}
.scn-crossing-centrites .village-left {
  position: absolute; bottom: 28%; left: 8%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cc-village 6s ease-in-out infinite;
}
.scn-crossing-centrites .village-right {
  position: absolute; bottom: 26%; right: 12%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cc-village 7s ease-in-out infinite reverse;
}
.scn-crossing-centrites .horsemen {
  position: absolute; bottom: 32%; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cc-ride 12s linear infinite;
}
.scn-crossing-centrites .dust {
  position: absolute; bottom: 30%; left: 35%; width: 100px; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,160,120,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: cc-dust 10s ease-in-out infinite alternate;
}
.scn-crossing-centrites .sun-beam {
  position: absolute; top: 50%; left: 20%; width: 150px; height: 200px;
  background: linear-gradient(180deg, rgba(245,217,152,0.2) 0%, transparent 100%);
  transform: rotate(-15deg);
  animation: cc-beam 5s ease-in-out infinite alternate;
}
@keyframes cc-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes cc-plain {
  0% { transform: translateY(0) scaleY(0.95); }
  50% { transform: translateY(-2px) scaleY(1); }
  100% { transform: translateY(0) scaleY(0.95); }
}
@keyframes cc-village {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03) translateY(-1px); }
  100% { transform: scaleY(1); }
}
@keyframes cc-ride {
  0% { transform: translateX(-20px) scaleX(1); }
  50% { transform: translateX(20px) scaleX(1.1); }
  100% { transform: translateX(-20px) scaleX(1); }
}
@keyframes cc-dust {
  0% { transform: translateX(0) scaleY(1); opacity: 0.3; }
  50% { transform: translateX(10px) scaleY(1.5); opacity: 0.6; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.3; }
}
@keyframes cc-beam {
  0% { opacity: 0.2; transform: rotate(-15deg) scaleY(0.9); }
  50% { opacity: 0.5; transform: rotate(-10deg) scaleY(1.1); }
  100% { opacity: 0.2; transform: rotate(-15deg) scaleY(0.9); }
}

/* xenophon-dream-chains */
.scn-xenophon-dream-chains {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a1a2a 100%),
              radial-gradient(ellipse at 50% 20%, #4a2a3a 0%, transparent 70%);
}
.scn-xenophon-dream-chains .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 50%, #1a0a1a 100%);
  animation: xd-pulse 10s ease-in-out infinite alternate;
}
.scn-xenophon-dream-chains .tent-wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; top: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(100,50,0,0.3);
  transform: scale(0.95);
  animation: xd-wall 15s ease-in-out infinite alternate;
}
.scn-xenophon-dream-chains .chain-falling {
  position: absolute; top: 15%; left: 45%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 50%, #3a2a1a 100%);
  border-radius: 20%;
  transform-origin: top center;
  animation: xd-chain-fall 4s cubic-bezier(0.68, -0.55, 0.27, 1.55) infinite alternate;
}
.scn-xenophon-dream-chains .chain-glowing {
  position: absolute; top: 15%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(192,128,64,0.8);
  animation: xd-chain-glow 3s ease-in-out infinite alternate;
}
.scn-xenophon-dream-chains .xenophon-figure {
  position: absolute; bottom: 22%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xd-figure 6s ease-in-out infinite;
}
.scn-xenophon-dream-chains .cheirisophus-silhouette {
  position: absolute; bottom: 22%; left: 55%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.7;
  animation: xd-figure 7s ease-in-out infinite reverse;
}
.scn-xenophon-dream-chains .sacrificial-fire {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #f06020 0%, #c04010 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  filter: blur(3px);
  animation: xd-fire 2s ease-in-out infinite alternate;
}
.scn-xenophon-dream-chains .dream-pulse {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(100,60,30,0.1) 0%, transparent 60%);
  animation: xd-pulse 8s ease-in-out infinite;
}
@keyframes xd-pulse {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes xd-wall {
  0% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes xd-chain-fall {
  0% { transform: translateY(-20px) rotate(-10deg); }
  50% { transform: translateY(20px) rotate(10deg); }
  100% { transform: translateY(-20px) rotate(-10deg); }
}
@keyframes xd-chain-glow {
  0% { box-shadow: 0 0 10px 3px rgba(192,128,64,0.6); opacity: 0.7; }
  50% { box-shadow: 0 0 25px 8px rgba(240,192,104,0.9); opacity: 1; }
  100% { box-shadow: 0 0 10px 3px rgba(192,128,64,0.6); opacity: 0.7; }
}
@keyframes xd-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes xd-fire {
  0% { transform: scaleY(0.8) rotate(-5deg); opacity: 0.7; }
  50% { transform: scaleY(1.2) rotate(5deg); opacity: 1; }
  100% { transform: scaleY(0.8) rotate(-5deg); opacity: 0.7; }
}

/* crossing-planned */
.scn-crossing-planned {
  background: linear-gradient(180deg, #1e3a5f 0%, #4b7ba4 50%, #c9a96e 100%),
              radial-gradient(ellipse at 50% 80%, #c9a96e 0%, transparent 70%);
}
.scn-crossing-planned .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f2338 0%, #3b6b8a 100%);
  animation: cp-sky 18s ease-in-out infinite alternate;
}
.scn-crossing-planned .river {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a6b8a 0%, #1e4a6a 100%);
  border-radius: 20% 20% 0 0;
  transform: scaleY(0.9);
  animation: cp-river 8s ease-in-out infinite alternate;
}
.scn-crossing-planned .bank-near {
  position: absolute; bottom: 25%; left: 5%; right: 50%; height: 15%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 10% 20% 0 0;
  box-shadow: inset 0 5px 12px rgba(0,0,0,0.4);
  animation: cp-bank 12s ease-in-out infinite alternate;
}
.scn-crossing-planned .bank-far {
  position: absolute; bottom: 25%; left: 50%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 20% 10% 0 0;
  box-shadow: inset 0 5px 12px rgba(0,0,0,0.4);
  animation: cp-bank 14s ease-in-out infinite alternate-reverse;
}
.scn-crossing-planned .soldiers-crossing {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 15px;
  background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cp-cross 6s ease-in-out infinite;
}
.scn-crossing-planned .xenophon-libation {
  position: absolute; bottom: 28%; left: 12%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-figure 5s ease-in-out infinite;
}
.scn-crossing-planned .cheirisophus-guide {
  position: absolute; bottom: 28%; right: 15%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-figure 6s ease-in-out infinite reverse;
}
.scn-crossing-planned .morning-mist {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(200,180,150,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: cp-mist 20s ease-in-out infinite alternate;
}
@keyframes cp-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes cp-river {
  0% { transform: translateY(0) scaleY(0.9); opacity: 0.7; }
  50% { transform: translateY(-2px) scaleY(1); opacity: 0.9; }
  100% { transform: translateY(0) scaleY(0.9); opacity: 0.7; }
}
@keyframes cp-bank {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cp-cross {
  0% { transform: translateX(0) scaleY(1); opacity: 0.5; }
  50% { transform: translateX(10px) scaleY(1.1); opacity: 0.8; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.5; }
}
@keyframes cp-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes cp-mist {
  0% { opacity: 0.2; transform: translateY(0); }
  50% { opacity: 0.5; transform: translateY(-5px); }
  100% { opacity: 0.2; transform: translateY(0); }
}

/* Scene: sons-of-darius-summoned */
.scn-sons-of-darius-summoned {
  background: linear-gradient(135deg, #2a1f1a 0%, #3a2a22 40%, #4a342a 100%),
              radial-gradient(ellipse at 50% 60%, #6a4a3a 0%, transparent 70%);
}
.scn-sons-of-darius-summoned .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1f1815 0%, #3a2a22 50%, #2a1f1a 100%);
  animation: sds-fade 8s ease-in-out infinite alternate;
}
.scn-sons-of-darius-summoned .bed {
  position: absolute; bottom: 15%; left: 40%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-sons-of-darius-summoned .figure-left,
.scn-sons-of-darius-summoned .figure-right {
  position: absolute; bottom: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sds-figures 6s ease-in-out infinite;
}
.scn-sons-of-darius-summoned .figure-left { left: 25%; }
.scn-sons-of-darius-summoned .figure-right { right: 25%; animation-delay: 1.5s; }
.scn-sons-of-darius-summoned .king {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 10% 10%;
  animation: sds-king 8s ease-in-out infinite;
}
.scn-sons-of-darius-summoned .lantern {
  position: absolute; top: 30%; left: 45%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #ffc080 0%, #b06030 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(255,192,128,0.5), 0 0 60px 15px rgba(255,192,128,0.2);
  animation: sds-lantern 4s ease-in-out infinite alternate;
}
.scn-sons-of-darius-summoned .glow-spot {
  position: absolute; top: 28%; left: 43%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,192,128,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: sds-glow 5s ease-in-out infinite alternate;
}
.scn-sons-of-darius-summoned .pillar-left,
.scn-sons-of-darius-summoned .pillar-right {
  position: absolute; bottom: 0; width: 20px; height: 100%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  opacity: 0.6;
}
.scn-sons-of-darius-summoned .pillar-left { left: 10%; }
.scn-sons-of-darius-summoned .pillar-right { right: 10%; }

@keyframes sds-fade {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sds-figures {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes sds-king {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.95); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes sds-lantern {
  0% { opacity: 0.8; transform: rotate(-3deg); }
  50% { opacity: 1; transform: rotate(3deg); }
  100% { opacity: 0.9; transform: rotate(0deg); }
}
@keyframes sds-glow {
  0% { transform: scale(0.9); opacity: 0.5; }
  100% { transform: scale(1.2); opacity: 0.8; }
}

/* Scene: cyrus-secret-preparations */
.scn-cyrus-secret-preparations {
  background: linear-gradient(180deg, #0a0a14 0%, #14142a 40%, #1a1a30 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a44 0%, transparent 70%);
}
.scn-cyrus-secret-preparations .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12121e 0%, #1a1a2e 50%, #0e0e1a 100%);
  animation: csp-wall 12s ease-in-out infinite alternate;
}
.scn-cyrus-secret-preparations .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 180px; height: 16px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1410 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.8);
}
.scn-cyrus-secret-preparations .map {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 150px; height: 100px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a40 50%, #5a4a30 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: csp-map 20s ease-in-out infinite alternate;
}
.scn-cyrus-secret-preparations .candle {
  position: absolute; bottom: 32%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #b08030 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.6), 0 0 40px 12px rgba(255,208,128,0.3);
  animation: csp-candle 3s ease-in-out infinite alternate;
}
.scn-cyrus-secret-preparations .figure-cyrus {
  position: absolute; bottom: 22%; left: 45%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csp-cyrus 5s ease-in-out infinite;
}
.scn-cyrus-secret-preparations .shadow-figure {
  position: absolute; bottom: 22%; right: 35%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #0a0a14 0%, #060610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: csp-shadow 7s ease-in-out infinite;
}
.scn-cyrus-secret-preparations .sword {
  position: absolute; bottom: 15%; left: 35%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #666 0%, #444 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: csp-sword 4s ease-in-out infinite alternate;
}

@keyframes csp-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes csp-map {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes csp-candle {
  0% { opacity: 0.7; transform: scaleY(0.95); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}
@keyframes csp-cyrus {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(5px) rotate(2deg); }
  60% { transform: translateX(10px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes csp-shadow {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes csp-sword {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-15deg) translateY(-2px); }
}

/* Scene: miletus-siege */
.scn-miletus-siege {
  background: linear-gradient(180deg, #0c0c1a 0%, #14142e 40%, #1a1a36 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-miletus-siege .night-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a20 0%, #151530 80%, #1a1a3e 100%);
  animation: mis-sky 15s ease-in-out infinite alternate;
}
.scn-miletus-siege .city-wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
  animation: mis-wall 20s ease-in-out infinite alternate;
}
.scn-miletus-siege .tent-ceiling {
  position: absolute; top: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  opacity: 0.8;
  animation: mis-tent 10s ease-in-out infinite alternate;
}
.scn-miletus-siege .commander {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mis-commander 6s ease-in-out infinite;
}
.scn-miletus-siege .map-table {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.8);
}
.scn-miletus-siege .campfire {
  position: absolute; bottom: 22%; left: 68%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #ff8040 0%, #b04020 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,128,64,0.5);
  animation: mis-fire 2s ease-in-out infinite alternate;
}
.scn-miletus-siege .spear {
  position: absolute; bottom: 15%; left: 15%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #8a8a8a 0%, #4a4a4a 100%);
  border-radius: 1px;
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: mis-spear 8s ease-in-out infinite alternate;
}

@keyframes mis-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes mis-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mis-tent {
  0% { transform: scaleY(0.95); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.98); }
}
@keyframes mis-commander {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-4px) rotate(1deg); }
  60% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mis-fire {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes mis-spear {
  0% { transform: rotate(25deg) translateY(0); }
  100% { transform: rotate(20deg) translateY(-3px); }
}

/* Scene: clearchus-recruitment */
.scn-clearchus-recruitment {
  background: linear-gradient(180deg, #1f1a15 0%, #2a221c 40%, #3a2e26 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a2e 0%, transparent 70%);
}
.scn-clearchus-recruitment .tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1512 0%, #2a221c 50%, #1f1a15 100%);
  animation: clr-bg 10s ease-in-out infinite alternate;
}
.scn-clearchus-recruitment .brazier {
  position: absolute; bottom: 20%; left: 15%; width: 30px; height: 35px;
  background: radial-gradient(circle at 50% 20%, #ffa050 0%, #c07030 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 12px rgba(255,160,80,0.4), 0 0 80px 20px rgba(255,160,80,0.15);
  animation: clr-brazier 6s ease-in-out infinite alternate;
}
.scn-clearchus-recruitment .table-coins {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-clearchus-recruitment .clearchus {
  position: absolute; bottom: 25%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: clr-commander 7s ease-in-out infinite;
}
.scn-clearchus-recruitment .recruit {
  position: absolute; bottom: 25%; right: 25%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: clr-recruit 8s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-clearchus-recruitment .helmet {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 18px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: clr-helmet 10s ease-in-out infinite alternate;
}
.scn-clearchus-recruitment .coin-pile {
  position: absolute; bottom: 20%; left: 42%; width: 30px; height: 15px;
  background: radial-gradient(ellipse at 50% 30%, #d4a060 0%, #b08030 70%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: clr-coins 12s ease-in-out infinite alternate;
}
.scn-clearchus-recruitment .tent-post {
  position: absolute; bottom: 0; left: 30%; width: 8px; height: 100%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  opacity: 0.4;
}

@keyframes clr-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes clr-brazier {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes clr-commander {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-3px) rotate(1deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes clr-recruit {
  0% { transform: translateY(0) rotate(1deg); }
  30% { transform: translateY(-2px) rotate(-1deg); }
  60% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes clr-helmet {
  0% { transform: translateX(-50%) rotate(-5deg); }
  100% { transform: translateX(-50%) rotate(5deg); }
}
@keyframes clr-coins {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(0.98); }
}

/* ------------------------------------------------------------------ */
/* Scene: clearetus-sacking (tag: cs) */
.scn-clearetus-sacking {
  background:
    radial-gradient(ellipse at 30% 60%, #3b2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1c1310 0%, #2a1e16 40%, #130b08 100%);
}

.scn-clearetus-sacking .tent-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a1a0e 0%, #1c1008 100%);
  clip-path: polygon(10% 0%, 90% 0%, 85% 100%, 15% 100%);
  animation: cs-wall 20s ease-in-out infinite;
}
.scn-clearetus-sacking .tent-pole {
  position: absolute; bottom: 0; left: 50%; width: 8px; height: 85%;
  background: linear-gradient(180deg, #5a3a1a, #3a2210);
  transform: translateX(-50%);
  box-shadow: 2px 0 6px rgba(0,0,0,0.6);
}
.scn-clearetus-sacking .entrance-light {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #d4a060 0%, transparent 70%);
  opacity: 0.7;
  animation: cs-light 4s ease-in-out infinite alternate;
}
.scn-clearetus-sacking .figure-captain {
  position: absolute; bottom: 8%; left: 30%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cs-captain 3s ease-in-out infinite;
}
.scn-clearetus-sacking .figure-attacker {
  position: absolute; bottom: 8%; left: 52%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #2a1a10 0%, #150a06 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  animation: cs-attacker 2s ease-in-out infinite alternate;
}
.scn-clearetus-sacking .blood-splash {
  position: absolute; bottom: 10%; left: 36%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #9a3a2a 0%, transparent 100%);
  opacity: 0.8;
  animation: cs-blood 1.5s ease-in-out infinite;
}
.scn-clearetus-sacking .dawn-glow {
  position: absolute; top: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #e8b060 0%, #c88030 50%, transparent 100%);
  opacity: 0.4;
  animation: cs-dawn 8s ease-in-out infinite alternate;
}
.scn-clearetus-sacking .shadow-blade {
  position: absolute; top: 25%; left: 55%; width: 4px; height: 50px;
  background: #201010;
  transform: rotate(-20deg);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  animation: cs-blade 2s ease-in-out infinite alternate;
}

@keyframes cs-wall {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}
@keyframes cs-light {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.98); }
}
@keyframes cs-captain {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cs-attacker {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(-5px); }
  100% { transform: rotate(12deg) translateX(0); }
}
@keyframes cs-blood {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes cs-dawn {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes cs-blade {
  0% { transform: rotate(-25deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-8px); }
  100% { transform: rotate(-22deg) translateY(0); }
}

/* ------------------------------------------------------------------ */
/* Scene: mob-violence (tag: mv) */
.scn-mob-violence {
  background:
    radial-gradient(ellipse at 50% 40%, #2a1a10 0%, transparent 70%),
    linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
}

.scn-mob-violence .hall-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 4%, rgba(0,0,0,0.2) 4%, rgba(0,0,0,0.2) 4.5%);
  animation: mv-hall 15s linear infinite;
}
.scn-mob-violence .pillar {
  position: absolute; width: 12px; height: 80%; bottom: 0;
  background: linear-gradient(180deg, #3a2210, #1a0e06);
  border-radius: 4px;
}
.scn-mob-violence .pillar.left {
  left: 8%;
}
.scn-mob-violence .pillar.right {
  right: 8%;
}
.scn-mob-violence .crowd-left {
  position: absolute; bottom: 0; left: 15%; width: 35%; height: 50%;
  background: repeating-linear-gradient(0deg, #1a0e08 0%, #1a0e08 6%, #0d0604 6%, #0d0604 12%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: mv-crowd 2s ease-in-out infinite alternate;
}
.scn-mob-violence .crowd-right {
  position: absolute; bottom: 0; right: 15%; width: 35%; height: 45%;
  background: repeating-linear-gradient(0deg, #1a0e08 0%, #1a0e08 5%, #0d0604 5%, #0d0604 10%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 20% 100%);
  animation: mv-crowd 2.5s ease-in-out infinite alternate-reverse;
}
.scn-mob-violence .victim-zelarchus {
  position: absolute; bottom: 8%; left: 50%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a1a10, #150a06);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform: translateX(-50%);
  animation: mv-victim 1.8s ease-in-out infinite;
}
.scn-mob-violence .raised-arm {
  position: absolute; bottom: 60%; left: 58%; width: 4px; height: 30px;
  background: #1a0e08;
  transform: rotate(-30deg);
  border-radius: 2px;
  animation: mv-arm 0.8s ease-in-out infinite alternate;
}
.scn-mob-violence .torch-flicker {
  position: absolute; top: 20%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e08030 0%, #c06020 50%, transparent 100%);
  border-radius: 50%;
  animation: mv-torch 0.4s ease-in-out infinite alternate;
}

@keyframes mv-hall {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes mv-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes mv-victim {
  0% { transform: translateX(-50%) rotate(0); }
  25% { transform: translateX(-48%) rotate(4deg); }
  50% { transform: translateX(-52%) rotate(-3deg); }
  75% { transform: translateX(-49%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes mv-arm {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-40deg) translateY(-5px); }
  100% { transform: rotate(-25deg) translateY(0); }
}
@keyframes mv-torch {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(0.9); }
}

/* ------------------------------------------------------------------ */
/* Scene: purification (tag: pu) */
.scn-purification {
  background:
    radial-gradient(ellipse at 50% 30%, #1e140c 0%, transparent 80%),
    linear-gradient(180deg, #0f0a06 0%, #1a1008 100%);
}

.scn-purification .tribunal-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0e, #1c0e06);
  border-bottom: 2px solid #3a2210;
}
.scn-purification .bench {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #3a2210, #2a180a);
  border-radius: 4px;
}
.scn-purification .magistrate {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a180a, #150c06);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 40%;
  transform: translateX(-50%);
  animation: pu-mag 6s ease-in-out infinite;
}
.scn-purification .assembly-left {
  position: absolute; bottom: 0; left: 0; width: 25%; height: 35%;
  background: repeating-linear-gradient(0deg, transparent 0%, transparent 8%, #1a0e06 8%, #1a0e06 16%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
}
.scn-purification .assembly-right {
  position: absolute; bottom: 0; right: 0; width: 25%; height: 35%;
  background: repeating-linear-gradient(0deg, transparent 0%, transparent 8%, #1a0e06 8%, #1a0e06 16%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 20% 100%);
}
.scn-purification .witness-stand {
  position: absolute; bottom: 26%; left: 30%; width: 16px; height: 18px;
  background: #2a180a;
  border-radius: 4px;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.4);
}
.scn-purification .scroll-table {
  position: absolute; bottom: 38%; left: 45%; width: 40px; height: 4px;
  background: #3a2210;
  border-radius: 2px;
  transform: rotate(-5deg);
}
.scn-purification .judge-hammer {
  position: absolute; bottom: 40%; left: 52%; width: 6px; height: 20px;
  background: #4a2a12;
  border-radius: 2px;
  transform: rotate(15deg);
  animation: pu-hammer 3s ease-in-out infinite alternate;
}

@keyframes pu-mag {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pu-hammer {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(0); }
}

/* ------------------------------------------------------------------ */
/* Scene: struck-in-snow (tag: ss) */
.scn-struck-in-snow {
  background:
    radial-gradient(ellipse at 20% 50%, #2a1a10 0%, transparent 70%),
    linear-gradient(180deg, #0d0805 0%, #1a1008 100%);
}

.scn-struck-in-snow .hut-interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a0e06 0%, #0f0804 100%);
  clip-path: polygon(5% 0%, 95% 0%, 90% 100%, 10% 100%);
}
.scn-struck-in-snow .window-snow {
  position: absolute; top: 15%; left: 70%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #b0c0c0 0%, #809090 100%);
  border: 2px solid #2a180a;
  border-radius: 4px;
  opacity: 0.8;
  animation: ss-window 12s ease-in-out infinite alternate;
}
.scn-struck-in-snow .candle {
  position: absolute; bottom: 25%; left: 25%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8c060 0%, #c08020 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(200,120,30,0.6);
  animation: ss-candle 1.5s ease-in-out infinite alternate;
}
.scn-struck-in-snow .prisoner {
  position: absolute; bottom: 8%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1008, #0d0604);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 40%;
  transform: rotate(-10deg);
  animation: ss-prisoner 4s ease-in-out infinite;
}
.scn-struck-in-snow .interrogator {
  position: absolute; bottom: 10%; left: 52%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #2a180a, #150a06);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(5deg);
  animation: ss-inter 3s ease-in-out infinite alternate;
}
.scn-struck-in-snow .blow-strike {
  position: absolute; bottom: 55%; left: 48%; width: 8px; height: 50px;
  background: #1a0e06;
  transform: rotate(-40deg);
  border-radius: 2px;
  animation: ss-blow 0.6s ease-in-out infinite alternate;
}
.scn-struck-in-snow .blood-drip {
  position: absolute; bottom: 30%; left: 35%; width: 4px; height: 20px;
  background: #7a2a1a;
  border-radius: 2px;
  animation: ss-drip 2s ease-in-out infinite;
}

@keyframes ss-window {
  0% { opacity: 0.5; filter: brightness(0.8); }
  50% { opacity: 0.8; filter: brightness(1); }
  100% { opacity: 0.6; filter: brightness(0.9); }
}
@keyframes ss-candle {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.8; transform: scaleY(0.95); }
}
@keyframes ss-prisoner {
  0% { transform: rotate(-10deg) translateX(0); }
  25% { transform: rotate(-12deg) translateX(2px); }
  50% { transform: rotate(-8deg) translateX(-1px); }
  75% { transform: rotate(-14deg) translateX(3px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes ss-inter {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(-3px); }
  100% { transform: rotate(2deg) translateX(0); }
}
@keyframes ss-blow {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-50deg) translateY(-10px); }
  100% { transform: rotate(-35deg) translateY(0); }
}
@keyframes ss-drip {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.5); opacity: 1; }
  100% { transform: scaleY(0.8); opacity: 0.6; }
}

.scn-despair {
  background: linear-gradient(180deg, #0f0f1e 0%, #1a1530 40%, #2a1f40 100%), 
              radial-gradient(ellipse at 30% 80%, #1e1840 0%, transparent 70%);
}
.scn-despair .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #161636 0%, #0d0d1a 100%); animation: dp-sky 10s ease-in-out infinite alternate; }
.scn-despair .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); }
.scn-despair .hill-left { position:absolute; bottom:40%; left:0; width:40%; height:30%; background: linear-gradient(180deg, #2a3040 0%, #1a1c2a 100%); border-radius: 0 60% 0 0 / 0 80% 0 0; animation: dp-hill 15s ease-in-out infinite; }
.scn-despair .hill-right { position:absolute; bottom:42%; right:0; width:50%; height:25%; background: linear-gradient(180deg, #242c3a 0%, #12141e 100%); border-radius: 60% 0 0 0 / 70% 0 0 0; animation: dp-hill 18s ease-in-out infinite reverse; }
.scn-despair .campfire { position:absolute; bottom:30%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #ff9933 0%, #cc6600 40%, #331100 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,153,51,0.4), 0 0 80px 40px rgba(204,102,0,0.2); animation: dp-fire 2s ease-in-out infinite alternate; }
.scn-despair .smoke { position:absolute; bottom:40%; left:49%; width:20px; height:60px; background: radial-gradient(ellipse at center, rgba(80,70,60,0.4) 0%, transparent 70%); filter: blur(4px); animation: dp-smoke 5s ease-in-out infinite; }
.scn-despair .figure-far { position:absolute; bottom:28%; left:30%; width:10px; height:30px; background: linear-gradient(180deg, #222 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scale(0.8); animation: dp-figure 8s ease-in-out infinite; }
.scn-despair .figure-near { position:absolute; bottom:25%; left:60%; width:14px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: dp-figure 6s ease-in-out infinite reverse; }
@keyframes dp-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes dp-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes dp-fire { 0% { transform: translateX(-50%) scale(0.8); opacity:0.7 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.9); opacity:0.8 } }
@keyframes dp-smoke { 0% { transform: translateY(0) scale(1); opacity:0.5 } 50% { transform: translateY(-20px) scale(1.5); opacity:0.2 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }
@keyframes dp-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-4px) rotate(-2deg) } }

.scn-xenophon-consults-socrates {
  background: linear-gradient(180deg, #3a2e1c 0%, #2a2010 50%, #1a1408 100%), 
              radial-gradient(ellipse at 50% 0, #4a3a20 0%, transparent 60%);
}
.scn-xenophon-consults-socrates .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #4a3a22 0%, #5a4a32 50%, #4a3a22 100%); }
.scn-xenophon-consults-socrates .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2e1c 0%, #2a1e0c 100%); }
.scn-xenophon-consults-socrates .column-left { position:absolute; bottom:20%; left:15%; width:15px; height:80px; background: linear-gradient(90deg, #6a5a42 0%, #8a7a62 40%, #6a5a42 100%); border-radius: 5px; box-shadow: 2px 0 4px rgba(0,0,0,0.3); }
.scn-xenophon-consults-socrates .column-right { position:absolute; bottom:20%; right:15%; width:15px; height:80px; background: linear-gradient(90deg, #6a5a42 0%, #8a7a62 40%, #6a5a42 100%); border-radius: 5px; box-shadow: -2px 0 4px rgba(0,0,0,0.3); }
.scn-xenophon-consults-socrates .lamp { position:absolute; bottom:35%; left:50%; width:14px; height:18px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #ffd080 0%, #cc9955 40%, #664422 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.4); animation: xcs-lamp 4s ease-in-out infinite alternate; }
.scn-xenophon-consults-socrates .figure-socrates { position:absolute; bottom:22%; left:30%; width:16px; height:50px; background: linear-gradient(180deg, #8a7a62 0%, #4a3a22 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(-10deg); animation: xcs-figure 6s ease-in-out infinite; }
.scn-xenophon-consults-socrates .figure-xenophon { position:absolute; bottom:22%; right:30%; width:14px; height:48px; background: linear-gradient(180deg, #7a6a52 0%, #3a2a12 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(5deg); animation: xcs-figure 7s ease-in-out infinite reverse; }
.scn-xenophon-consults-socrates .shadow { position:absolute; bottom:22%; left:25%; width:50%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: xcs-shadow 8s ease-in-out infinite alternate; }
@keyframes xcs-lamp { 0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(255,208,128,0.2); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,208,128,0.5); } 100% { opacity:0.7; box-shadow: 0 0 25px 8px rgba(255,208,128,0.3); } }
@keyframes xcs-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes xcs-shadow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }

.scn-xenophon-joins-cyrus {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%), 
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-xenophon-joins-cyrus .wall-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-xenophon-joins-cyrus .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:40%; background: repeating-conic-gradient(#3a2a1a 0% 25%, #4a3a2a 0% 50%) 0 0 / 40px 40px; animation: xjc-floor 20s linear infinite; }
.scn-xenophon-joins-cyrus .table { position:absolute; bottom:25%; left:50%; width:80px; height:20px; transform:translateX(-50%); background: linear-gradient(90deg, #6a5a42 0%, #8a7a62 50%, #6a5a42 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-xenophon-joins-cyrus .map { position:absolute; bottom:34%; left:50%; width:60px; height:40px; transform:translateX(-50%) rotate(-3deg); background: linear-gradient(135deg, #b8a888 0%, #c8b898 30%, #a89878 70%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: xjc-map 12s ease-in-out infinite alternate; }
.scn-xenophon-joins-cyrus .goblet { position:absolute; bottom:26%; left:48%; width:10px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #cc9966 0%, #aa7744 100%); border-radius: 0 0 4px 4px; box-shadow: 0 0 6px rgba(0,0,0,0.2); }
.scn-xenophon-joins-cyrus .figure-proxenus { position:absolute; bottom:18%; left:20%; width:14px; height:50px; background: linear-gradient(180deg, #6a5a42 0%, #3a2a12 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(5deg); animation: xjc-figure 6s ease-in-out infinite; }
.scn-xenophon-joins-cyrus .figure-cyrus { position:absolute; bottom:18%; left:50%; width:16px; height:52px; transform:translateX(-50%); background: linear-gradient(180deg, #7a6a52 0%, #4a3a22 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: xjc-figure 7s ease-in-out infinite reverse; }
.scn-xenophon-joins-cyrus .figure-xenophon { position:absolute; bottom:18%; right:20%; width:13px; height:48px; background: linear-gradient(180deg, #5a4a32 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(-4deg); animation: xjc-figure 8s ease-in-out infinite; }
@keyframes xjc-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes xjc-map { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes xjc-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-xenophon-resolves {
  background: linear-gradient(180deg, #0c0c1a 0%, #14142e 50%, #1a1a3e 100%), 
              radial-gradient(ellipse at 50% 30%, #1e1e3a 0%, transparent 70%);
}
.scn-xenophon-resolves .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #101028 100%); animation: xr-sky 8s ease-in-out infinite alternate; }
.scn-xenophon-resolves .ground-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); }
.scn-xenophon-resolves .torch { position:absolute; bottom:38%; left:30%; width:8px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 3px 3px 5px 5px; transform: rotate(-5deg); animation: xr-torch-bob 3s ease-in-out infinite; }
.scn-xenophon-resolves .torch-light { position:absolute; bottom:44%; left:30%; width:50px; height:50px; transform:translate(-50%, -50%); background: radial-gradient(circle, #ffcc66 0%, #cc8844 30%, #441100 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,204,102,0.3); animation: xr-flicker 0.3s steps(2) infinite; }
.scn-xenophon-resolves .figure-speaker { position:absolute; bottom:22%; left:30%; width:18px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: xr-speaker 4s ease-in-out infinite; }
.scn-xenophon-resolves .crowd-silhouette { position:absolute; bottom:20%; left:50%; right:10%; height:40px; background: linear-gradient(180deg, #12121e 0%, #0a0a10 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; clip-path: polygon(0% 100%, 0% 30%, 15% 20%, 30% 40%, 50% 15%, 70% 35%, 85% 20%, 100% 30%, 100% 100%); animation: xr-crowd 5s ease-in-out infinite; }
.scn-xenophon-resolves .spear { position:absolute; bottom:30%; left:45%; width:3px; height:70px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); transform: rotate(10deg); animation: xr-spear 6s ease-in-out infinite; }
@keyframes xr-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes xr-torch-bob { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-5deg); } }
@keyframes xr-flicker { 0%, 100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes xr-speaker { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes xr-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes xr-spear { 0% { transform: rotate(10deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(10deg); } }

/* cyrus-wine-gift */
.scn-cyrus-wine-gift {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2a20 40%, #4a3a2e 100%),
    radial-gradient(ellipse at 60% 40%, #5a4a3e 0%, transparent 70%);
}
.scn-cyrus-wine-gift .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #2a1f1a 60%, #3a2a20 100%); }
.scn-cyrus-wine-gift .table { position:absolute; bottom:20%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 -2px 6px rgba(0,0,0,.4); }
.scn-cyrus-wine-gift .flagon { position:absolute; bottom:28%; left:45%; width:40px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 40% 40%; box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: wg-flagon 6s ease-in-out infinite; }
.scn-cyrus-wine-gift .wine-glow { position:absolute; bottom:30%; left:46%; width:20px; height:15px; background: radial-gradient(circle, #c08040 0%, #a06030 60%, transparent); border-radius:50%; filter: blur(3px); animation: wg-glow 4s ease-in-out infinite alternate; }
.scn-cyrus-wine-gift .candle { position:absolute; bottom:35%; left:60%; width:6px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #a06030 100%); border-radius:2px; box-shadow: 0 0 12px 4px #f0a060; animation: wg-candle 2s ease-in-out infinite; }
.scn-cyrus-wine-gift .hand { position:absolute; bottom:22%; right:35%; width:25px; height:35px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%; transform-origin: bottom center; animation: wg-hand 8s ease-in-out infinite; }
.scn-cyrus-wine-gift .shadow { position:absolute; bottom:20%; left:30%; right:30%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%); animation: wg-shadow 6s ease-in-out infinite; }
@keyframes wg-flagon { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wg-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(0.9); } }
@keyframes wg-candle { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-2px) scaleY(1.1); } 50% { transform: translateY(1px) scaleY(0.95); } 75% { transform: translateY(-1px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes wg-hand { 0% { transform: translate(0,0) rotate(-5deg); } 33% { transform: translate(5px,-2px) rotate(0deg); } 66% { transform: translate(2px,-1px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(-5deg); } }
@keyframes wg-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(1); } }

/* cyrus-beloved */
.scn-cyrus-beloved {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #4a3a5e 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a6e 0%, transparent 60%);
}
.scn-cyrus-beloved .hall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #3a3a5e 100%); }
.scn-cyrus-beloved .throne { position:absolute; bottom:20%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-cyrus-beloved .cyrus-fig { position:absolute; bottom:30%; left:50%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: bl-cyrus 5s ease-in-out infinite; }
.scn-cyrus-beloved .follower-a { position:absolute; bottom:20%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: bl-follower 7s ease-in-out infinite; }
.scn-cyrus-beloved .follower-b { position:absolute; bottom:20%; right:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: bl-follower 7s ease-in-out infinite reverse; }
.scn-cyrus-beloved .banner { position:absolute; top:15%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:5px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: bl-banner 12s ease-in-out infinite; }
.scn-cyrus-beloved .light-ray { position:absolute; top:0; left:40%; right:40%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,150,.15) 0%, transparent 80%); animation: bl-ray 10s ease-in-out infinite alternate; }
@keyframes bl-cyrus { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes bl-follower { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bl-banner { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes bl-ray { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.2; } }

/* king-mutilates-cyrus */
.scn-king-mutilates-cyrus {
  background: 
    linear-gradient(180deg, #4a6a8a 0%, #6a8aaa 40%, #8aaaca 100%),
    radial-gradient(ellipse at 50% 0%, #aaccee 0%, transparent 70%);
}
.scn-king-mutilates-cyrus .sky-km { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a6a8a 0%, #8aaaca 100%); animation: km-sky 20s ease-in-out infinite alternate; }
.scn-king-mutilates-cyrus .ground-km { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-king-mutilates-cyrus .king-fig { position:absolute; bottom:20%; left:30%; width:40px; height:90px; background: #1a1a1a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 10px rgba(0,0,0,.5); animation: km-king 4s ease-in-out infinite; }
.scn-king-mutilates-cyrus .fallen-fig { position:absolute; bottom:15%; left:55%; width:50px; height:40px; background: #2a2a2a; border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform:rotate(-30deg); animation: km-fallen 8s ease-in-out infinite; }
.scn-king-mutilates-cyrus .severed-hand { position:absolute; bottom:18%; left:70%; width:12px; height:18px; background: #3a2a2a; border-radius: 40% 40% 30% 30%; animation: km-hand 6s ease-in-out infinite; }
.scn-king-mutilates-cyrus .sword { position:absolute; bottom:25%; left:25%; width:4px; height:60px; background: #c0c0c0; border-radius:2px; transform:rotate(15deg); box-shadow: 0 0 8px 2px rgba(255,255,200,.3); animation: km-sword 5s ease-in-out infinite; }
.scn-king-mutilates-cyrus .blood-spot { position:absolute; bottom:10%; left:60%; width:15px; height:10px; background: radial-gradient(circle, #a0461a 0%, #5e1a1d 70%, transparent); border-radius:50%; filter:blur(2px); animation: km-blood 3s ease-in-out infinite alternate; }
.scn-king-mutilates-cyrus .cloud-km { position:absolute; top:10%; left:20%; width:80px; height:20px; background: rgba(255,255,255,.3); border-radius:50%; filter: blur(8px); animation: km-cloud 40s linear infinite; }
@keyframes km-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes km-king { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-5px); } 50% { transform: rotate(-1deg) translateY(2px); } 75% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes km-fallen { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(10px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes km-hand { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-5px) rotate(20deg); } 66% { transform: translateY(3px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes km-sword { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(-5px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes km-blood { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.3); } 100% { opacity:0.6; transform:scale(0.9); } }
@keyframes km-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* heles-save-woman */
.scn-heles-save-woman {
  background: 
    linear-gradient(180deg, #4a2a3a 0%, #7a4a5a 30%, #c07050 60%, #e0a060 100%),
    radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 70%);
}
.scn-heles-save-woman .dusk-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a2a3a 0%, #7a4a5a 50%, #c07050 100%); animation: hs-sky 18s ease-in-out infinite alternate; }
.scn-heles-save-woman .dusk-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-heles-save-woman .hoplite-line { position:absolute; bottom:15%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10px; clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); animation: hs-line 6s ease-in-out infinite; }
.scn-heles-save-woman .shield-row { position:absolute; bottom:20%; left:12%; right:12%; height:15%; background: repeating-linear-gradient(90deg, #4a3a3a 0%, #4a3a3a 10px, #3a2a2a 10px, #3a2a2a 12px); border-radius: 20% 20% 0 0; animation: hs-shields 4s ease-in-out infinite; }
.scn-heles-save-woman .woman { position:absolute; bottom:12%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: hs-woman 3s ease-in-out infinite; }
.scn-heles-save-woman .enemy-a { position:absolute; bottom:15%; right:25%; width:25px; height:55px; background: #1a1a2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); animation: hs-enemy 7s ease-in-out infinite; }
.scn-heles-save-woman .enemy-b { position:absolute; bottom:15%; right:10%; width:25px; height:55px; background: #1a1a2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: hs-enemy 7s ease-in-out infinite 2s; }
.scn-heles-save-woman .spear { position:absolute; bottom:25%; left:30%; width:3px; height:50px; background: #806040; border-radius:1px; transform:rotate(-10deg); animation: hs-spear 5s ease-in-out infinite; }
@keyframes hs-sky { 0% { opacity:0.7; } 33% { opacity:0.9; } 66% { opacity:0.6; } 100% { opacity:0.8; } }
@keyframes hs-line { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-3px) scaleY(1.05); } 50% { transform: translateY(2px) scaleY(0.95); } 75% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hs-shields { 0% { background-size: 100% 100%; } 50% { background-size: 110% 100%; } 100% { background-size: 100% 100%; } }
@keyframes hs-woman { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(5px) rotate(3deg); } 66% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hs-enemy { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(15deg) translateX(-10px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes hs-spear { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-5px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-drilae-fortress { background: linear-gradient(180deg, #4a4b5e 0%, #3a3b4e 40%, #2a2b3e 100%), radial-gradient(ellipse at 30% 60%, #6a5b4e 0%, transparent 80%); }
.scn-drilae-fortress .bg-haze   { position:absolute; inset:0; background:linear-gradient(180deg, rgba(80,80,100,.4) 0%, transparent 50%); animation:df-haze 20s ease-in-out infinite alternate; }
.scn-drilae-fortress .mount-far { position:absolute; bottom:30%; left:0; right:0; height:35%; background:linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:60% 40% 0 0 / 70% 50% 0 0; filter:blur(2px); animation:df-mount 25s ease-in-out infinite; }
.scn-drilae-fortress .mount-near{ position:absolute; bottom:20%; left:10%; width:50%; height:40%; background:linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:50% 50% 0 0 / 80% 60% 0 0; animation:df-mount 30s ease-in-out infinite reverse; }
.scn-drilae-fortress .fortress  { position:absolute; bottom:25%; left:50%; width:80px; height:60px; transform:translateX(-50%); background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6% 6% 4% 4%; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-drilae-fortress .fire-glow { position:absolute; bottom:25%; left:46%; width:30px; height:30px; background:radial-gradient(circle, #e08040 0%, #c06030 40%, transparent 70%); border-radius:50%; box-shadow:0 0 40px 20px #d07040; animation:df-fire 2s ease-in-out infinite alternate; }
.scn-drilae-fortress .smoke     { position:absolute; bottom:30%; left:44%; width:50px; height:50px; background:radial-gradient(circle, rgba(100,100,80,.5) 0%, transparent 80%); filter:blur(8px); animation:df-smoke 8s linear infinite; }
.scn-drilae-fortress .soldier   { position:absolute; bottom:20%; left:40%; width:16px; height:28px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40%; transform-origin:bottom; animation:df-walk 4s ease-in-out infinite; }
.scn-drilae-fortress .spear     { position:absolute; bottom:26%; left:42%; width:2px; height:22px; background:#6a6a5a; transform:rotate(-20deg); animation:df-spear 4s ease-in-out infinite; }
@keyframes df-haze   { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes df-mount  { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes df-fire   { 0%{opacity:.6;transform:scale(1)} 50%{opacity:1;transform:scale(1.2)} 100%{opacity:.7;transform:scale(1.1)} }
@keyframes df-smoke  { 0%{transform:translate(0,0) scale(1);opacity:.4} 50%{transform:translate(-8px,-12px) scale(1.5);opacity:.7} 100%{transform:translate(4px,-24px) scale(2);opacity:0} }
@keyframes df-walk   { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(4px) rotate(1deg)} 50%{transform:translateX(8px) rotate(-1deg)} 75%{transform:translateX(12px) rotate(2deg)} 100%{transform:translateX(16px) rotate(0)} }
@keyframes df-spear  { 0%{transform:translate(0,0) rotate(-20deg)} 50%{transform:translate(2px,-2px) rotate(-15deg)} 100%{transform:translate(0,0) rotate(-20deg)} }

.scn-agasias-climbs { background: linear-gradient(180deg, #4a4b5e 0%, #3a3b4e 50%, #2a2b3e 100%), radial-gradient(ellipse at 50% 0, #6a6b7e 0%, transparent 70%); }
.scn-agasias-climbs .cliff-bg   { position:absolute; inset:0; background:linear-gradient(135deg, #5a5b6e 0%, #3a3b4e 50%, #2a2b3e 100%); animation:ac-cliff 15s ease-in-out infinite alternate; }
.scn-agasias-climbs .ravine     { position:absolute; bottom:20%; left:35%; width:30%; height:40%; background:linear-gradient(180deg, #2a2b3e 0%, #1a1b2e 100%); border-radius:30% 30% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,.6); }
.scn-agasias-climbs .climber    { position:absolute; bottom:30%; left:40%; width:14px; height:26px; background:linear-gradient(180deg, #3a3b5e 0%, #2a2b4e 100%); border-radius:50% 50% 40% 40%; transform-origin:bottom; animation:ac-climb 3s ease-in-out infinite; }
.scn-agasias-climbs .shield     { position:absolute; bottom:35%; left:38%; width:16px; height:16px; background:radial-gradient(circle, #8a7a5a 0%, #6a5a3a 100%); border-radius:50%; box-shadow:0 0 8px 2px #a09a80; animation:ac-shield 3s ease-in-out infinite; }
.scn-agasias-climbs .missile    { position:absolute; bottom:45%; left:60%; width:4px; height:10px; background:#6a6a7a; transform:rotate(40deg); animation:ac-missile 1.5s linear infinite; }
.scn-agasias-climbs .dust       { position:absolute; bottom:18%; left:30%; width:40px; height:20px; background:radial-gradient(circle, rgba(80,80,90,.4) 0%, transparent 80%); filter:blur(4px); animation:ac-dust 4s ease-in-out infinite; }
@keyframes ac-cliff   { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes ac-climb   { 0%{transform:translateY(0) rotate(-2deg) scaleX(1)} 25%{transform:translateY(-4px) rotate(1deg) scaleX(.95)} 50%{transform:translateY(-8px) rotate(-1deg) scaleX(1)} 75%{transform:translateY(-4px) rotate(2deg) scaleX(.95)} 100%{transform:translateY(0) rotate(0) scaleX(1)} }
@keyframes ac-shield  { 0%{transform:translate(0,0) rotate(0)} 25%{transform:translate(2px,-1px) rotate(10deg)} 50%{transform:translate(4px,0) rotate(0)} 75%{transform:translate(2px,1px) rotate(-10deg)} 100%{transform:translate(0,0) rotate(0)} }
@keyframes ac-missile { 0%{transform:translate(0,0) rotate(40deg);opacity:1} 50%{transform:translate(-20px,15px) rotate(30deg);opacity:.8} 100%{transform:translate(-40px,30px) rotate(20deg);opacity:0} }
@keyframes ac-dust    { 0%{transform:scale(1);opacity:.4} 50%{transform:scale(1.5);opacity:.7} 100%{transform:scale(2);opacity:0} }

.scn-retreat-by-fire { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 40%, #1a0a04 100%), radial-gradient(ellipse at 50% 100%, #5a3a1e 0%, transparent 70%); }
.scn-retreat-by-fire .sky-dusk      { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); animation:rf-sky 12s ease-in-out infinite alternate; }
.scn-retreat-by-fire .house-left    { position:absolute; bottom:25%; left:15%; width:80px; height:60px; background:linear-gradient(180deg, #5a3a1e 0%, #3a1a0a 100%); border-radius:8% 8% 4% 4%; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-retreat-by-fire .house-right   { position:absolute; bottom:25%; right:15%; width:80px; height:60px; background:linear-gradient(180deg, #5a3a1e 0%, #3a1a0a 100%); border-radius:8% 8% 4% 4%; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-retreat-by-fire .flame         { position:absolute; bottom:30%; left:18%; width:40px; height:50px; background:radial-gradient(circle, #d08040 0%, #b06030 30%, #802010 70%, transparent 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 50px 20px #c07030; animation:rf-flame 1.5s ease-in-out infinite alternate; }
.scn-retreat-by-fire .retreat-fig   { position:absolute; bottom:20%; left:48%; width:16px; height:28px; background:linear-gradient(180deg, #1a0a04 0%, #0a0402 100%); border-radius:50% 50% 40% 40%; transform-origin:bottom; animation:rf-walk 3s ease-in-out infinite; }
.scn-retreat-by-fire .smoke-plume   { position:absolute; bottom:35%; left:25%; width:60px; height:50px; background:radial-gradient(circle, rgba(80,60,40,.6) 0%, transparent 80%); filter:blur(10px); animation:rf-smoke 8s linear infinite; }
.scn-retreat-by-fire .ground        { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #2a1a0e 0%, #1a0a04 100%); box-shadow:inset 0 8px 20px rgba(0,0,0,.5); }
@keyframes rf-sky    { 0%{opacity:.6} 50%{opacity:.9} 100%{opacity:.7} }
@keyframes rf-flame  { 0%{transform:scaleY(1) rotate(-2deg);opacity:.8} 50%{transform:scaleY(1.3) rotate(0);opacity:1} 100%{transform:scaleY(1.1) rotate(2deg);opacity:.85} }
@keyframes rf-walk   { 0%{transform:translateX(0) translateY(0) rotate(-3deg)} 25%{transform:translateX(-4px) translateY(-2px) rotate(1deg)} 50%{transform:translateX(-8px) translateY(0) rotate(-2deg)} 75%{transform:translateX(-12px) translateY(-1px) rotate(2deg)} 100%{transform:translateX(-16px) translateY(0) rotate(0)} }
@keyframes rf-smoke  { 0%{transform:translate(0,0) scale(1);opacity:.5} 50%{transform:translate(10px,-20px) scale(1.5);opacity:.8} 100%{transform:translate(20px,-40px) scale(2.5);opacity:0} }

.scn-mysian-rescued { background: linear-gradient(180deg, #3a3a2e 0%, #2a2a1e 40%, #1a1a0e 100%), radial-gradient(ellipse at 60% 100%, #4a4a3e 0%, transparent 70%); }
.scn-mysian-rescued .brush-bg     { position:absolute; inset:0; background:linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 60%, #1a2a1a 100%); animation:mr-bg 15s ease-in-out infinite alternate; }
.scn-mysian-rescued .bush-left    { position:absolute; bottom:25%; left:20%; width:70px; height:40px; background:radial-gradient(ellipse, #4a5a4a 0%, #2a3a2a 100%); border-radius:50% 40% 40% 50%; filter:blur(3px); animation:mr-bush 8s ease-in-out infinite; }
.scn-mysian-rescued .bush-right   { position:absolute; bottom:25%; right:20%; width:70px; height:40px; background:radial-gradient(ellipse, #4a5a4a 0%, #2a3a2a 100%); border-radius:50% 40% 40% 50%; filter:blur(3px); animation:mr-bush 10s ease-in-out infinite reverse; }
.scn-mysian-rescued .croucher     { position:absolute; bottom:22%; left:38%; width:14px; height:20px; background:linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:mr-crouch 4s ease-in-out infinite; }
.scn-mysian-rescued .shield-brass  { position:absolute; bottom:26%; left:36%; width:18px; height:18px; background:radial-gradient(circle, #8a7a4a 0%, #6a5a2a 100%); border-radius:50%; box-shadow:0 0 12px 4px #b0a060; animation:mr-shield 4s ease-in-out infinite; }
.scn-mysian-rescued .gleam        { position:absolute; bottom:28%; left:35%; width:8px; height:8px; background:radial-gradient(circle, #fff5c0 0%, #e0d080 100%); border-radius:50%; box-shadow:0 0 16px 6px rgba(255,245,192,.7); animation:mr-gleam 2s ease-in-out infinite alternate; }
.scn-mysian-rescued .path         { position:absolute; bottom:10%; left:30%; width:40%; height:15%; background:linear-gradient(90deg, #3a3a2e 0%, #5a5a4e 50%, #3a3a2e 100%); border-radius:20% 20% 0 0; filter:blur(2px); }
@keyframes mr-bg     { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes mr-bush   { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.1)} 100%{transform:scaleY(1)} }
@keyframes mr-crouch { 0%{transform:translateY(0) rotate(-2deg)} 25%{transform:translateY(-2px) rotate(1deg)} 50%{transform:translateY(0) rotate(-1deg)} 75%{transform:translateY(-1px) rotate(2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes mr-shield { 0%{transform:rotate(0);opacity:.8} 25%{transform:rotate(10deg);opacity:.9} 50%{transform:rotate(0);opacity:1} 75%{transform:rotate(-10deg);opacity:.9} 100%{transform:rotate(0);opacity:.8} }
@keyframes mr-gleam  { 0%{opacity:.5;transform:scale(1)} 50%{opacity:1;transform:scale(1.3)} 100%{opacity:.6;transform:scale(1.1)} }

.scn-aristippus-mercenaries {
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 60%, #1c0f08 100%),
              radial-gradient(ellipse at 50% 100%, #5c3820 0%, transparent 70%);
}
.scn-aristippus-mercenaries .tent-wall {
  position: absolute; inset: 10% 5% 20% 5%;
  background: linear-gradient(135deg, #6d5a44 0%, #4d3a2a 100%);
  border-radius: 30% 30% 10% 10% / 20% 20% 5% 5%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  transform: perspective(500px) rotateX(5deg);
}
.scn-aristippus-mercenaries .candle-glow {
  position: absolute; bottom: 35%; left: 50%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, #ffcc66 0%, #ff8833 30%, transparent 70%);
  transform: translateX(-50%);
  animation: aris-glow 4s ease-in-out infinite alternate;
}
.scn-aristippus-mercenaries .candle {
  position: absolute; bottom: 35%; left: 50%;
  width: 8px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d0a0 0%, #d4b08a 50%, #a08060 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px rgba(255, 200, 100, 0.5);
  animation: aris-flicker 0.8s ease-in-out infinite alternate;
}
.scn-aristippus-mercenaries .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 5px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-aristippus-mercenaries .scroll {
  position: absolute; bottom: 24%; left: 40%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #e8d4b4 0%, #c8a880 100%);
  border-radius: 3px 3px 50% 50% / 10px 10px 20% 20%;
  transform: rotate(-8deg);
  animation: aris-scroll 12s ease-in-out infinite alternate;
}
.scn-aristippus-mercenaries .coin-pile {
  position: absolute; bottom: 22%; left: 25%; width: 60px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #d4a050 0%, #b08030 50%, #705020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: aris-coin 8s ease-in-out infinite alternate;
}
.scn-aristippus-mercenaries .figure-scribe {
  position: absolute; bottom: 17%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: aris-scribe 6s ease-in-out infinite;
}
.scn-aristippus-mercenaries .shadow-fig {
  position: absolute; bottom: 15%; right: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.3) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: aris-shadow 10s ease-in-out infinite alternate;
}
@keyframes aris-glow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes aris-flicker { 0% { transform: translateX(-50%) scaleY(1); height: 50px; } 50% { height: 48px; } 100% { transform: translateX(-50%) scaleY(0.96); height: 52px; } }
@keyframes aris-scroll { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes aris-coin { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes aris-scribe { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(5px) rotate(2deg); } 66% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aris-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.5; } 50% { transform: translateX(-8px) scaleX(0.9); opacity: 0.7; } 100% { transform: translateX(4px) scaleX(1.1); opacity: 0.4; } }

.scn-gathering-forces {
  background: linear-gradient(180deg, #4a3828 0%, #2e1e12 50%, #1c0e06 100%),
              radial-gradient(ellipse at 50% 80%, #6d4a30 0%, transparent 60%);
}
.scn-gathering-forces .room-bg {
  position: absolute; inset: 5% 8% 15% 8%;
  background: linear-gradient(135deg, #5a4836 0%, #3a2a1a 100%);
  border-radius: 20% 20% 5% 5% / 15% 15% 5% 5%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-gathering-forces .map-table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 5px;
  perspective: 300px;
  transform: rotateX(40deg);
  transform-origin: bottom;
}
.scn-gathering-forces .map {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 15%;
  background: linear-gradient(180deg, #c8a878 0%, #a08858 100%);
  border-radius: 4px;
  transform: rotate(-3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: gather-map 15s ease-in-out infinite alternate;
}
.scn-gathering-forces .marker {
  position: absolute; bottom: 28%; left: 45%; width: 6px; height: 6px;
  background: #b86030;
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(184,96,48,0.6);
  animation: gather-marker 5s ease-in-out infinite;
}
.scn-gathering-forces .standing-figure {
  position: absolute; bottom: 10%; left: 20%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gather-stand 6s ease-in-out infinite;
}
.scn-gathering-forces .seated-figure {
  position: absolute; bottom: 10%; left: 60%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gather-seat 4s ease-in-out infinite alternate;
}
.scn-gathering-forces .lamp-glow {
  position: absolute; top: 15%; left: 50%; width: 160px; height: 160px;
  background: radial-gradient(circle, #ffdd88 0%, #ffaa44 20%, transparent 70%);
  transform: translateX(-50%);
  animation: gather-lamp 8s ease-in-out infinite alternate;
}
.scn-gathering-forces .lamp-body {
  position: absolute; top: 20%; left: 50%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #b08050 0%, #806040 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 16px 8px rgba(255,170,68,0.3);
}
@keyframes gather-map { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes gather-marker { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.4); } 100% { opacity: 0.9; transform: scale(0.9); } }
@keyframes gather-stand { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gather-seat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gather-lamp { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); } }

.scn-march-from-sardis {
  background: linear-gradient(180deg, #b8d0e0 0%, #e0d8c0 30%, #c8b090 70%, #8a7858 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 50%);
}
.scn-march-from-sardis .sky-sun {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #d0d8c8 60%, transparent 100%);
}
.scn-march-from-sardis .sun {
  position: absolute; top: 8%; right: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe880 0%, #ffcc44 40%, transparent 80%);
  border-radius: 50%;
  animation: march-sun 20s ease-in-out infinite alternate;
}
.scn-march-from-sardis .dust-cloud {
  position: absolute; bottom: 30%; left: -10%; width: 120%; height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,180,140,0.5) 30%, rgba(180,160,120,0.3) 60%, transparent 100%);
  filter: blur(8px);
  animation: march-dust 30s linear infinite;
}
.scn-march-from-sardis .column-soldiers {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, transparent 0%, #4a3a28 10%, #3a2a18 50%, #2a1a0e 100%);
  clip-path: polygon(0% 100%, 0% 20%, 5% 15%, 10% 25%, 15% 10%, 20% 20%, 25% 8%, 30% 18%, 35% 12%, 40% 22%, 45% 10%, 50% 20%, 55% 15%, 60% 25%, 65% 10%, 70% 18%, 75% 12%, 80% 22%, 85% 15%, 90% 20%, 95% 10%, 100% 25%, 100% 100%);
  animation: march-column 12s ease-in-out infinite alternate;
}
.scn-march-from-sardis .horse {
  position: absolute; bottom: 18%; left: 60%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #6a5038 0%, #4a3420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8);
  animation: march-horse 8s ease-in-out infinite;
}
.scn-march-from-sardis .banner {
  position: absolute; bottom: 35%; left: 70%; width: 6px; height: 40px;
  background: #5a3a28;
}
.scn-march-from-sardis .banner::after {
  content: '';
  position: absolute; top: -20%; left: -10px; width: 30px; height: 20px;
  background: #b06040;
  clip-path: polygon(100% 0, 100% 100%, 0% 50%);
  animation: march-banner 6s ease-in-out infinite alternate;
}
.scn-march-from-sardis .far-hills {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  filter: blur(2px);
  animation: march-hills 25s ease-in-out infinite alternate;
}
.scn-march-from-sardis .near-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a6a52 0%, #5a4a36 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
}
@keyframes march-sun { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-5px); opacity: 1; } 100% { transform: translateY(2px); opacity: 0.9; } }
@keyframes march-dust { 0% { transform: translateX(0); } 100% { transform: translateX(50px); } }
@keyframes march-column { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes march-horse { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(18px) rotate(1deg); } 100% { transform: translateX(24px) rotate(0deg); } }
@keyframes march-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes march-hills { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(10px); } }

.scn-troops-assembled {
  background: linear-gradient(180deg, #a8c4d8 0%, #c8d4c0 40%, #b8a888 70%, #8a7a62 100%),
              radial-gradient(ellipse at 30% 0%, #ffe0a0 0%, transparent 50%);
}
.scn-troops-assembled .camp-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #90b8d0 0%, #c0d0c0 60%, transparent 100%);
}
.scn-troops-assembled .camp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
}
.scn-troops-assembled .tent-row {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(90deg, rgba(120,100,80,0.6) 0%, rgba(160,140,120,0.4) 20%, rgba(120,100,80,0.5) 40%, rgba(160,140,120,0.3) 60%, rgba(120,100,80,0.6) 80%, transparent 100%);
  clip-path: polygon(0% 100%, 5% 20%, 15% 25%, 20% 10%, 30% 30%, 40% 15%, 50% 25%, 60% 10%, 70% 30%, 80% 15%, 95% 20%, 100% 100%);
  animation: troops-tents 20s ease-in-out infinite alternate;
}
.scn-troops-assembled .tent-large {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #8a7058 0%, #6a5238 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  transform: perspective(200px) rotateX(5deg);
  animation: troops-large-tent 15s ease-in-out infinite alternate;
}
.scn-troops-assembled .soldier-group {
  position: absolute; bottom: 5%; left: 15%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  clip-path: polygon(10% 100%, 20% 20%, 30% 25%, 40% 10%, 50% 30%, 60% 15%, 70% 20%, 80% 10%, 90% 30%, 100% 100%);
  animation: troops-group 12s ease-in-out infinite alternate;
}
.scn-troops-assembled .spear-rack {
  position: absolute; bottom: 15%; left: 70%; width: 10px; height: 90px;
  background: #5a4a38;
  transform: rotate(-5deg);
}
.scn-troops-assembled .spear-rack::after {
  content: '';
  position: absolute; top: -10px; left: -5px; width: 20px; height: 4px;
  background: #7a6a5a;
  border-radius: 2px;
}
.scn-troops-assembled .campfire {
  position: absolute; bottom: 10%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffcc66 0%, #ff8833 30%, #cc5500 60%, transparent 80%);
  transform: translateX(-50%);
  animation: troops-fire 4s ease-in-out infinite alternate;
}
.scn-troops-assembled .smoke {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 60px;
  background: radial-gradient(circle, rgba(180,170,160,0.4) 0%, transparent 70%);
  filter: blur(6px);
  transform: translateX(-50%);
  animation: troops-smoke 10s ease-in-out infinite alternate;
}
@keyframes troops-tents { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes troops-large-tent { 0% { transform: perspective(200px) rotateX(6deg) translateY(0); } 50% { transform: perspective(200px) rotateX(4deg) translateY(-3px); } 100% { transform: perspective(200px) rotateX(5deg) translateY(0); } }
@keyframes troops-group { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(0.98); } 100% { transform: translateX(-5px) scaleY(1); } }
@keyframes troops-fire { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); } }
@keyframes troops-smoke { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateX(-50%) translateY(-10px) scale(1.3); opacity: 0.6; } 100% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.3; } }

.scn-zeus-meilichios {
  background: linear-gradient(180deg, #261c15 0%, #3a2a1a 40%, #4a3422 100%), radial-gradient(ellipse at 50% 70%, #4a3422 0%, transparent 60%);
}
.scn-zeus-meilichios .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #1f1610 0%, #2a1e14 50%, #1a120c 100%); animation: zm-bg 12s ease-in-out infinite alternate; }
.scn-zeus-meilichios .wall { position:absolute; bottom:35%; left:5%; right:5%; height:65%; background: linear-gradient(180deg, #5e4230 0%, #3e2a1c 100%); border-radius: 20% 20% 4% 4% / 40% 40% 4% 4%; box-shadow: inset 0 0 40px rgba(0,0,0,.6); transform: perspective(800px) rotateX(2deg); }
.scn-zeus-meilichios .altar { position:absolute; bottom:30%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a32 0%, #3a281a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: zm-altar 6s ease-in-out infinite; }
.scn-zeus-meilichios .flame { position:absolute; bottom:44%; left:50%; width:12px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffa050 0%, #ff6a20 30%, #a03010 70%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 24px 8px #ff8020, 0 0 48px 16px rgba(255,128,32,.3); animation: zm-flame 2s ease-in-out infinite alternate; }
.scn-zeus-meilichios .smoke { position:absolute; bottom:50%; left:45%; width:40px; height:60px; background: rgba(200,180,150,.08); border-radius: 50%; filter: blur(12px); animation: zm-smoke 10s ease-in-out infinite; }
.scn-zeus-meilichios .s2 { left:55%; animation-delay: 4s; width:55px; }
.scn-zeus-meilichios .swine { position:absolute; bottom:26%; left:44%; width:28px; height:14px; background: #4a3020; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.5); transform: scaleX(1.2); animation: zm-swine 3s ease-in-out infinite; }
.scn-zeus-meilichios .priest { position:absolute; bottom:25%; left:58%; width:16px; height:36px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: zm-priest 8s ease-in-out infinite; }
@keyframes zm-bg     { 0% { opacity: .9; } 50% { opacity: .7; } 100% { opacity: .95; } }
@keyframes zm-altar  { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes zm-flame  { 0% { transform: translateX(-50%) scaleY(.9) rotate(-2deg); opacity: .9; } 50% { transform: translateX(-50%) scaleY(1.1) rotate(2deg); opacity: 1; } 100% { transform: translateX(-50%) scaleY(.95) rotate(-1deg); opacity: .95; } }
@keyframes zm-smoke  { 0% { transform: translateY(0) scale(1); opacity: .15; } 50% { transform: translateY(-20px) scale(1.3); opacity: .05; } 100% { transform: translateY(-40px) scale(1.6); opacity: 0; } }
@keyframes zm-swine  { 0%,100% { transform: scaleX(1.2) translateY(0); } 50% { transform: scaleX(1.15) translateY(-1px); } }
@keyframes zm-priest { 0%,100% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(2px) rotate(-2deg); } }

.scn-march-to-pergamus {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #f0e8c0 60%, #c0b080 100%), radial-gradient(ellipse at 50% 0%, #f0e8c0 0%, transparent 70%);
}
.scn-march-to-pergamus .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #add8e6 0%, #f0e68c 100%); animation: mp-sky 20s ease-in-out infinite alternate; }
.scn-march-to-pergamus .mountains { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: mp-mnt 30s ease-in-out infinite alternate; }
.scn-march-to-pergamus .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,.2); }
.scn-march-to-pergamus .march-fig { position:absolute; bottom:12%; left:20%; width:14px; height:30px; background: #1a1a2a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: mp-walk 6s ease-in-out infinite; }
.scn-march-to-pergamus .tree { position:absolute; bottom:27%; left:70%; width:8px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom; animation: mp-tree 10s ease-in-out infinite; }
.scn-march-to-pergamus .column { position:absolute; bottom:28%; left:50%; width:12px; height:90px; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: mp-col 15s ease-in-out infinite; }
.scn-march-to-pergamus .dust { position:absolute; bottom:10%; left:30%; width:80px; height:20px; background: rgba(200,180,150,.2); border-radius: 50%; filter: blur(6px); animation: mp-dust 12s linear infinite; }
@keyframes mp-sky   { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes mp-mnt   { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes mp-walk  { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(15px) rotate(2deg); } 50% { transform: translateX(30px) rotate(-2deg); } 75% { transform: translateX(45px) rotate(2deg); } 100% { transform: translateX(60px) rotate(0); } }
@keyframes mp-tree  { 0%,100% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.02) rotate(2deg); } }
@keyframes mp-col   { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-2px); } }
@keyframes mp-dust  { 0% { transform: translateX(0); opacity: .2; } 100% { transform: translateX(40px); opacity: .05; } }

.scn-asidates-attempt {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 30%, #2c2840 100%), radial-gradient(ellipse at 50% 30%, #2c2840 0%, transparent 70%);
}
.scn-asidates-attempt .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #12123a 0%, #1a1a2e 100%); animation: aa-night 25s ease-in-out infinite alternate; }
.scn-asidates-attempt .moon { position:absolute; top:10%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #e0e0f0 0%, #a0a0c0 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(160,160,200,.4); animation: aa-moon 8s ease-in-out infinite; }
.scn-asidates-attempt .tent { position:absolute; bottom:20%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: aa-tent 6s ease-in-out infinite; }
.scn-asidates-attempt .altar-dark { position:absolute; bottom:20%; left:30%; width:50px; height:25px; background: #2a1a1a; border-radius: 4px; box-shadow: 0 0 10px 2px rgba(255,100,50,.2); animation: aa-altar 12s ease-in-out infinite; }
.scn-asidates-attempt .sacrificial-fire { position:absolute; bottom:28%; left:35%; width:10px; height:20px; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff4000 30%, #600000 70%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(255,80,0,.5); animation: aa-fire 1.5s ease-in-out infinite alternate; }
.scn-asidates-attempt .figure-1 { position:absolute; bottom:16%; left:45%; width:16px; height:28px; background: #12121e; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: aa-fig1 4s ease-in-out infinite; }
.scn-asidates-attempt .figure-2 { position:absolute; bottom:16%; left:55%; width:16px; height:28px; background: #0e0e1a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: aa-fig2 4.2s ease-in-out infinite reverse; }
.scn-asidates-attempt .shadow-cast { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); animation: aa-shadow 3s ease-in-out infinite alternate; }
@keyframes aa-night  { 0% { opacity: .9; } 50% { opacity: .7; } 100% { opacity: .95; } }
@keyframes aa-moon   { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes aa-tent   { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes aa-altar  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes aa-fire   { 0% { transform: scaleY(.8) rotate(-3deg); opacity: .9; } 50% { transform: scaleY(1.15) rotate(3deg); opacity: 1; } 100% { transform: scaleY(.85) rotate(-2deg); opacity: .95; } }
@keyframes aa-fig1   { 0%,100% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(3px) rotate(-2deg); } }
@keyframes aa-fig2   { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(2deg); } }
@keyframes aa-shadow { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .5; } }

.scn-relief-party {
  background: linear-gradient(180deg, #ff8c50 0%, #ffa060 20%, #d06030 40%, #4a2a1a 70%, #1a0e08 100%), radial-gradient(ellipse at 50% 0%, #ffa060 0%, transparent 70%);
}
.scn-relief-party .dawn-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #ff8a4a 0%, #ffcc80 30%, #80a0d0 60%, #2a3a5a 100%); animation: rp-sky 30s ease-in-out infinite alternate; }
.scn-relief-party .hills-dark { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%); border-radius: 60% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-relief-party .beacon { position:absolute; bottom:25%; left:30%; width:60px; height:60px; background: radial-gradient(circle, #ffcc40 0%, #ff8020 30%, #a03000 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px #ff8020, 0 0 120px 40px rgba(255,128,32,.4); animation: rp-beacon 2s ease-in-out infinite alternate; }
.scn-relief-party .flames { position:absolute; bottom:30%; left:28%; width:20px; height:35px; background: radial-gradient(ellipse at 50% 100%, #ffd050 0%, #ff8020 30%, #800000 70%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: rp-flame 1.5s ease-in-out infinite alternate; }
.scn-relief-party .f2 { left:32%; animation-delay: .3s; }
.scn-relief-party .attacker { position:absolute; bottom:16%; left:20%; width:14px; height:24px; background: #1a1a1a; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: rp-att 3s ease-in-out infinite; }
.scn-relief-party .relief-rider { position:absolute; bottom:16%; right:25%; width:20px; height:24px; background: #0e0e0e; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scaleX(1.2); animation: rp-rider 5s ease-in-out infinite; }
.scn-relief-party .arrow { position:absolute; bottom:30%; left:35%; width:30px; height:2px; background: linear-gradient(90deg, transparent, #a0a0a0 50%, transparent); transform: rotate(45deg); animation: rp-arrow .8s ease-in-out infinite; }
@keyframes rp-sky    { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes rp-beacon { 0% { transform: scale(.95); opacity: .9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(.95); opacity: .9; } }
@keyframes rp-flame  { 0% { transform: scaleY(.8) rotate(-5deg); } 50% { transform: scaleY(1.15) rotate(5deg); } 100% { transform: scaleY(.85) rotate(-3deg); } }
@keyframes rp-att    { 0%,100% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(10px) rotate(-5deg); } }
@keyframes rp-rider  { 0% { transform: translateX(0) scaleX(1.2); } 50% { transform: translateX(-10px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1.2); } }
@keyframes rp-arrow  { 0% { transform: translateX(0) rotate(45deg) scaleX(1); opacity: 1; } 50% { transform: translateX(15px) rotate(50deg) scaleX(.5); opacity: .5; } 100% { transform: translateX(30px) rotate(45deg) scaleX(0); opacity: 0; } }

.scn-soldiers-doubt {
  background:
    linear-gradient(180deg, #f7e4c0 0%, #e8c88a 40%, #c4955a 100%),
    radial-gradient(ellipse at 60% 20%, #ffd699 0%, transparent 50%);
}
.scn-soldiers-doubt .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fce3a0 0%, #f5d080 100%);
  animation: sd-sky 10s ease-in-out infinite alternate;
}
.scn-soldiers-doubt .sun {
  position: absolute; top: 12%; left: 65%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #fff4c0 0%, #f5d060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f5d060, 0 0 120px 40px rgba(245,208,96,0.3);
  animation: sd-pulse 6s ease-in-out infinite;
}
.scn-soldiers-doubt .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b0854a 0%, #7a5e30 100%);
  border-radius: 20% 10% 0 0 / 15% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: sd-ground 14s ease-in-out infinite;
}
.scn-soldiers-doubt .figure-left {
  position: absolute; bottom: 30%; left: 20%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-figure 4s ease-in-out infinite;
}
.scn-soldiers-doubt .figure-center {
  position: absolute; bottom: 28%; left: 50%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sd-figure 5s ease-in-out infinite 0.5s;
}
.scn-soldiers-doubt .figure-right {
  position: absolute; bottom: 32%; left: 72%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sd-figure 4.5s ease-in-out infinite 1s;
}
.scn-soldiers-doubt .spear {
  position: absolute; bottom: 50%; left: 48%;
  width: 2px; height: 70px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  transform-origin: bottom center;
  animation: sd-spear 8s ease-in-out infinite;
}
.scn-soldiers-doubt .spear.head {
  position: absolute; bottom: 82%; left: 47%;
  width: 8px; height: 12px;
  background: #c8553d;
  border-radius: 0 0 50% 50%;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: sd-spear 8s ease-in-out infinite;
}
@keyframes sd-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes sd-pulse { 0%{box-shadow:0 0 40px 15px #f5d060,0 0 80px 30px rgba(245,208,96,0.3);transform:scale(0.95)} 50%{box-shadow:0 0 70px 25px #ffd070,0 0 140px 50px rgba(255,208,112,0.4);transform:scale(1)} 100%{box-shadow:0 0 40px 15px #f5d060,0 0 80px 30px rgba(245,208,96,0.3);transform:scale(0.95)} }
@keyframes sd-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes sd-figure { 0%{transform:translateY(0) rotate(-2deg)} 25%{transform:translateY(-5px) rotate(1deg)} 50%{transform:translateY(-8px) rotate(0)} 75%{transform:translateY(-5px) rotate(-1deg)} 100%{transform:translateY(0) rotate(2deg)} }
@keyframes sd-spear { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(3deg) translateY(-2px)} 100%{transform:rotate(-5deg) translateY(0)} }

.scn-empire-twist {
  background:
    linear-gradient(180deg, #f0d8a0 0%, #d4b070 40%, #a08040 100%),
    radial-gradient(ellipse at 50% 15%, #ffe8b0 0%, transparent 50%);
}
.scn-empire-twist .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f0d090 100%);
  animation: et-sky 12s ease-in-out infinite alternate;
}
.scn-empire-twist .sun {
  position: absolute; top: 8%; left: 50%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0c0 0%, #f5d060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #f5d060, 0 0 160px 60px rgba(245,208,96,0.2);
  animation: et-pulse 7s ease-in-out infinite;
}
.scn-empire-twist .hot-zone {
  position: absolute; bottom: 30%; left: 0; right: 50%; height: 25%;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 0 10% 0 0;
  filter: blur(2px);
  animation: et-shimmer 20s ease-in-out infinite;
}
.scn-empire-twist .cold-zone {
  position: absolute; bottom: 30%; left: 50%; right: 0; height: 25%;
  background: linear-gradient(180deg, #b0c0d0 0%, #8090a0 100%);
  border-radius: 10% 0 0 0;
  filter: blur(2px);
  animation: et-shimmer 22s ease-in-out infinite reverse;
}
.scn-empire-twist .mountain-hot {
  position: absolute; bottom: 30%; left: 15%;
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #c07030 0%, #a06020 100%);
  border-radius: 40% 40% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
}
.scn-empire-twist .mountain-cold {
  position: absolute; bottom: 30%; right: 15%;
  width: 90px; height: 70px;
  background: linear-gradient(180deg, #d0d8e0 0%, #b0b8c0 100%);
  border-radius: 40% 40% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
}
.scn-empire-twist .figure {
  position: absolute; bottom: 25%; left: 48%;
  width: 26px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: et-figure 6s ease-in-out infinite;
}
.scn-empire-twist .arm-extend {
  position: absolute; bottom: 58%; left: 52%;
  width: 40px; height: 6px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a10 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: et-arm 8s ease-in-out infinite;
}
@keyframes et-sky { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes et-pulse { 0%{box-shadow:0 0 50px 20px #f5d060,0 0 100px 40px rgba(245,208,96,0.2);transform:scale(0.95)} 50%{box-shadow:0 0 80px 30px #ffd070,0 0 160px 60px rgba(255,208,112,0.3);transform:scale(1)} 100%{box-shadow:0 0 50px 20px #f5d060,0 0 100px 40px rgba(245,208,96,0.2);transform:scale(0.95)} }
@keyframes et-shimmer { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.6} }
@keyframes et-figure { 0%{transform:translateY(0) rotate(-3deg)} 33%{transform:translateY(-6px) rotate(0)} 66%{transform:translateY(-3px) rotate(3deg)} 100%{transform:translateY(0) rotate(-3deg)} }
@keyframes et-arm { 0%{transform:rotate(-20deg) scaleX(1)} 50%{transform:rotate(30deg) scaleX(1.1)} 100%{transform:rotate(-20deg) scaleX(1)} }

.scn-forces-numbered {
  background:
    linear-gradient(180deg, #c0c8c8 0%, #a0a8a8 40%, #808888 100%),
    radial-gradient(ellipse at 50% 10%, #d0d4d4 0%, transparent 60%);
}
.scn-forces-numbered .cloudy-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d0d4d4 0%, #a8b0b0 100%);
  animation: fn-sky 20s ease-in-out infinite;
}
.scn-forces-numbered .cloud-bank {
  position: absolute; top: 15%; left: -10%; right: -10%; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.4) 0%, transparent 60%);
  filter: blur(8px);
  animation: fn-clouds 40s linear infinite;
}
.scn-forces-numbered .horizon-line {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #707878 20%, #707878 80%, transparent 100%);
}
.scn-forces-numbered .plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  animation: fn-plain 30s ease-in-out infinite;
}
.scn-forces-numbered .spear-rows {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60%;
  background:
    repeating-linear-gradient(0deg, transparent 0px, transparent 8px, #3a3a2a 8px, #3a3a2a 9px),
    repeating-linear-gradient(90deg, transparent 0px, transparent 6px, #2a2a1a 6px, #2a2a1a 7px);
  opacity: 0.3;
  animation: fn-march 25s linear infinite;
}
.scn-forces-numbered .dot-figures {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 12%;
  background: repeating-conic-gradient(#2a2a1a 0% 2%, transparent 2% 4%) 0 0 / 25px 25px;
  opacity: 0.2;
  animation: fn-dots 30s linear infinite;
}
@keyframes fn-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes fn-clouds { 0%{transform:translateX(0) scaleY(1)} 50%{transform:translateX(20%) scaleY(1.1)} 100%{transform:translateX(0) scaleY(1)} }
@keyframes fn-plain { 0%{transform:translateY(0) scale(0.95)} 50%{transform:translateY(-2px) scale(1)} 100%{transform:translateY(0) scale(0.95)} }
@keyframes fn-march { 0%{background-position:0 0,0 0} 100%{background-position:0 20%,20% 0} }
@keyframes fn-dots { 0%{background-position:0 0} 100%{background-position:30px 30px} }

.scn-trench-barrier {
  background:
    linear-gradient(180deg, #f7e0b0 0%, #d4b070 40%, #a08040 100%),
    radial-gradient(ellipse at 40% 30%, #ffd699 0%, transparent 50%);
}
.scn-trench-barrier .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce3a0 0%, #f5d080 100%);
  animation: tb-sky 10s ease-in-out infinite alternate;
}
.scn-trench-barrier .sun {
  position: absolute; top: 12%; left: 30%;
  width: 45px; height: 45px;
  background: radial-gradient(circle, #fff4c0 0%, #f5d060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #f5d060, 0 0 100px 40px rgba(245,208,96,0.3);
  animation: tb-pulse 6s ease-in-out infinite;
}
.scn-trench-barrier .wall {
  position: absolute; bottom: 0; left: 60%; right: 0; height: 70%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 5% 0 0 0 / 3% 0 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.4);
}
.scn-trench-barrier .trench-depth {
  position: absolute; bottom: 10%; left: 20%; right: 30%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #1a1510 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: tb-depth 8s ease-in-out infinite;
}
.scn-trench-barrier .river {
  position: absolute; bottom: 5%; left: 10%; right: 35%; height: 15%;
  background: linear-gradient(90deg, #3a6a8a 0%, #5a9aba 50%, #3a6a8a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: tb-flow 12s ease-in-out infinite;
}
.scn-trench-barrier .passage {
  position: absolute; bottom: 25%; left: 48%; right: 48%; height: 40%;
  background: linear-gradient(180deg, #7a5a3a 0%, #a08050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: tb-passage 9s ease-in-out infinite;
}
.scn-trench-barrier .figure-cross {
  position: absolute; bottom: 30%; left: 48%;
  width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tb-cross 5s ease-in-out infinite;
}
.scn-trench-barrier .spear-vertical {
  position: absolute; bottom: 50%; left: 47%;
  width: 2px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  transform-origin: bottom center;
  animation: tb-spear 7s ease-in-out infinite;
}
@keyframes tb-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes tb-pulse { 0%{box-shadow:0 0 30px 15px #f5d060,0 0 60px 30px rgba(245,208,96,0.3);transform:scale(0.95)} 50%{box-shadow:0 0 60px 25px #ffd070,0 0 120px 50px rgba(255,208,112,0.4);transform:scale(1)} 100%{box-shadow:0 0 30px 15px #f5d060,0 0 60px 30px rgba(245,208,96,0.3);transform:scale(0.95)} }
@keyframes tb-depth { 0%{clip-path:inset(0 0 0 0);transform:scaleY(1)} 50%{clip-path:inset(0 0 5% 0);transform:scaleY(0.95)} 100%{clip-path:inset(0 0 0 0);transform:scaleY(1)} }
@keyframes tb-flow { 0%{background-position:0 0;} 50%{background-position:40px 0;} 100%{background-position:0 0;} }
@keyframes tb-passage { 0%{transform:scaleY(1)} 50%{transform:scaleY(0.97)} 100%{transform:scaleY(1)} }
@keyframes tb-cross { 0%{transform:translateX(-50%) translateY(0) rotate(-5deg)} 25%{transform:translateX(-50%) translateY(-6px) rotate(0)} 50%{transform:translateX(-50%) translateY(-10px) rotate(5deg)} 75%{transform:translateX(-50%) translateY(-6px) rotate(0)} 100%{transform:translateX(-50%) translateY(0) rotate(-5deg)} }
@keyframes tb-spear { 0%{transform:rotate(3deg)} 50%{transform:rotate(-2deg)} 100%{transform:rotate(3deg)} }

.scn-heraclea-gifts {
  background: linear-gradient(180deg, #f7e8c0 0%, #d4c48a 40%, #a8b87a 100%),
              radial-gradient(ellipse at 50% 100%, #a8b87a 0%, transparent 60%);
}
.scn-heraclea-gifts .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, #e0f0ff 70%, transparent 100%);
  animation: hg-sky 20s ease-in-out infinite alternate;
}
.scn-heraclea-gifts .fields {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8b050 0%, #8a7a30 100%);
  border-radius: 30% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.2);
  animation: hg-fields 30s ease-in-out infinite alternate;
}
.scn-heraclea-gifts .river {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(90deg, #7ab8d8 0%, #a0d8f0 50%, #7ab8d8 100%);
  border-radius: 0 0 50% 50%;
  filter: blur(2px);
  animation: hg-river 12s linear infinite;
}
.scn-heraclea-gifts .tent {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #d0b070 0%, #b09050 100%);
  border-radius: 20% 20% 10% 10%;
  transform: skewX(-5deg);
  box-shadow: 4px 6px 10px rgba(0,0,0,0.3);
}
.scn-heraclea-gifts .gifts-barley {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 20px;
  background: radial-gradient(circle, #d0b060 0%, #b09040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.2);
  animation: hg-gifts 6s ease-in-out infinite;
}
.scn-heraclea-gifts .gifts-wine {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #604020 0%, #402818 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.3);
  animation: hg-gifts 6s ease-in-out infinite 2s;
}
.scn-heraclea-gifts .sheep {
  position: absolute; bottom: 28%; left: 65%; width: 15px; height: 10px;
  background: radial-gradient(ellipse, #f0e8d0 0%, #c8b89a 100%);
  border-radius: 50%;
  box-shadow: 20px 0 0 #f0e8d0, 35px 2px 0 #e0d0b0;
  animation: hg-sheep 14s ease-in-out infinite alternate;
}
.scn-heraclea-gifts .soldiers-meet {
  position: absolute; bottom: 32%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.8);
  box-shadow: 10px 0 0 #6a4a30, 20px 2px 0 #5a3a20;
  animation: hg-meeting 8s ease-in-out infinite;
}

@keyframes hg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; background-position: 0% 50%; }
  100% { opacity: 0.85; }
}
@keyframes hg-fields {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hg-river {
  0% { background-position: 0% 50%; }
  50% { background-position: 50% 50%; }
  100% { background-position: 100% 50%; }
}
@keyframes hg-gifts {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes hg-sheep {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes hg-meeting {
  0%,100% { transform: scale(0.8) translateY(0); }
  50% { transform: scale(0.82) translateY(-1px); }
}

.scn-lycon-threatens {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2818 30%, #1a0e08 100%),
              radial-gradient(ellipse at 30% 40%, #4a3020 0%, transparent 60%);
}
.scn-lycon-threatens .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #3a2818 0%, #4a3828 30%, #2a1a10 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: lt-wall 30s linear infinite alternate;
}
.scn-lycon-threatens .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-lycon-threatens .brazier {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #ff8030 0%, #a04010 60%, #301000 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #ff6020, 0 0 60px 20px rgba(255,96,32,0.3);
  transform: translateX(-50%);
  animation: lt-brazier 4s ease-in-out infinite alternate;
}
.scn-lycon-threatens .figure-lycon {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-figure 6s ease-in-out infinite;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-lycon-threatens .figure-callimachus {
  position: absolute; bottom: 22%; left: 38%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #5a3820 0%, #3a2010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-figure 6s ease-in-out infinite 2s;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-lycon-threatens .figure-agasias {
  position: absolute; bottom: 22%; left: 46%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #4a2818 0%, #2a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-figure 6s ease-in-out infinite 4s;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-lycon-threatens .gates {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
  overflow: hidden;
}

@keyframes lt-wall {
  0% { background-position: 0% 50%; }
  50% { background-position: 50% 50%; }
  100% { background-position: 100% 50%; }
}
@keyframes lt-brazier {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; box-shadow: 0 0 20px 6px #ff6020; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px #ff9040; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.85; box-shadow: 0 0 25px 8px #ff6020; }
}
@keyframes lt-figure {
  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); }
}

.scn-three-divisions {
  background: linear-gradient(180deg, #2a2018 0%, #3a3028 30%, #1a1410 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-three-divisions .bg-camp {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-three-divisions .column-arcadians {
  position: absolute; bottom: 20%; left: 10%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2010 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 8px 0 0 #5a3a28, 16px 0 0 #4a2a18;
  transform: scaleX(0.8);
  animation: td-column 18s ease-in-out infinite alternate;
}
.scn-three-divisions .column-cheirisophus {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #5a4030 0%, #2a1810 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 6px 0 0 #4a3020, 12px 0 0 #3a2010;
  transform: scaleX(0.9);
  animation: td-column 18s ease-in-out infinite alternate 6s;
}
.scn-three-divisions .column-xenophon {
  position: absolute; bottom: 20%; left: 50%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #6a5038 0%, #3a2818 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 7px 0 0 #5a4030, 14px 0 0 #4a3020;
  transform: scaleX(0.85);
  animation: td-column 18s ease-in-out infinite alternate 12s;
}
.scn-three-divisions .cavalry {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6840 0%, #5a3820 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: td-cavalry 10s ease-in-out infinite;
}
.scn-three-divisions .ships {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 0 0 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: perspective(200px) rotateX(20deg);
  animation: td-ships 15s linear infinite;
}
.scn-three-divisions .map-scroll {
  position: absolute; top: 15%; left: 30%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #d0b880 0%, #b09860 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(300px) rotateX(15deg);
  animation: td-scroll 8s ease-in-out infinite alternate;
}

@keyframes td-column {
  0% { transform: translateY(0) scaleX(0.8); }
  50% { transform: translateY(-2px) scaleX(0.82); }
  100% { transform: translateY(0) scaleX(0.8); }
}
@keyframes td-cavalry {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes td-ships {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}
@keyframes td-scroll {
  0% { transform: perspective(300px) rotateX(15deg) translateY(0); }
  100% { transform: perspective(300px) rotateX(13deg) translateY(-2px); }
}

.scn-smicres-killed {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 50%, #1a2a2a 0%, transparent 80%);
}
.scn-smicres-killed .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #121218 0%, #1a1a24 60%, #0a0a10 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
}
.scn-smicres-killed .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: sk-hills 20s ease-in-out infinite alternate;
}
.scn-smicres-killed .knoll {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 100% 100% 60% 60%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-smicres-killed .thracians {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 15px 0 0 #2a1a10, 30px 2px 0 #3a2010;
  transform: scale(0.9);
  animation: sk-thracians 8s ease-in-out infinite;
}
.scn-smicres-killed .fallen {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(ellipse, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 10px 0 0 #1a0a0a, 20px 2px 0 #2a1a1a;
  animation: sk-fallen 12s linear infinite;
}
.scn-smicres-killed .escapees {
  position: absolute; bottom: 22%; left: 60%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(0) rotate(0deg);
  animation: sk-escape 6s ease-in-out infinite alternate;
}
.scn-smicres-killed .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(40,60,60,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: sk-mist 25s ease-in-out infinite alternate;
}

@keyframes sk-hills {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-2px); }
  100% { opacity: 0.7; transform: translateY(0); }
}
@keyframes sk-thracians {
  0% { transform: translateX(0) scale(0.9); }
  25% { transform: translateX(4px) scale(0.92); }
  50% { transform: translateX(0) scale(0.9); }
  75% { transform: translateX(-4px) scale(0.88); }
  100% { transform: translateX(0) scale(0.9); }
}
@keyframes sk-fallen {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.3; transform: translateY(2px); }
  100% { opacity: 0.5; transform: translateY(0); }
}
@keyframes sk-escape {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(20px) rotate(5deg); }
}
@keyframes sk-mist {
  0% { opacity: 0.4; background-position: 0% 50%; }
  50% { opacity: 0.7; background-position: 50% 50%; }
  100% { opacity: 0.5; background-position: 100% 50%; }
}

/* wall-of-media – calm, sunlit */
.scn-wall-of-media {
  background: linear-gradient(180deg, #f9e4b7 0%, #dfc38a 30%, #9bb8d4 70%, #6a9bc3 100%),
              radial-gradient(ellipse at 50% 120%, #ffe8a0 0%, transparent 70%);
}
.scn-wall-of-media .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d4e8 0%, transparent 100%); animation: wm-sky 12s ease-in-out infinite alternate; }
.scn-wall-of-media .park { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #6b8f4a 0%, #4a6a2e 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-wall-of-media .trees { position:absolute; bottom:32%; left:10%; width:120px; height:80px; background: radial-gradient(ellipse 40% 100% at 50% 100%, #3a6a2a 0%, #2a4a1a 60%, transparent 90%); filter: blur(2px); animation: wm-trees 18s ease-in-out infinite alternate; }
.scn-wall-of-media .tent { position:absolute; bottom:22%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: linear-gradient(135deg, #d4b080 0%, #b8905a 100%); clip-path: polygon(10% 100%, 50% 0, 90% 100%); box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: wm-tent 5s ease-in-out infinite;}
.scn-wall-of-media .figures { position:absolute; bottom:26%; left:30%; width:12px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wm-figures 8s ease-in-out infinite; }
.scn-wall-of-media .sun { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffe680 0%, #f0c040 60%, transparent 90%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(240,192,64,.5); animation: wm-sun 20s linear infinite; }
@keyframes wm-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wm-trees { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-4px) scale(1.02) } 100% { transform: translateX(2px) scale(.98) } }
@keyframes wm-tent { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } }
@keyframes wm-figures { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes wm-sun { 0% { transform: translateX(-10px) } 50% { transform: translateX(10px) } 100% { transform: translateX(-10px) } }

/* bridge-crossing – tense, dawn */
.scn-bridge-crossing {
  background: linear-gradient(180deg, #4a6078 0%, #7a8a9a 30%, #b0a890 60%, #d4c090 100%),
              radial-gradient(ellipse at 50% 100%, #e0c080 0%, transparent 60%);
}
.scn-bridge-crossing .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a5a 0%, #7a8880 60%, transparent 100%); animation: bc-sky 10s ease-in-out infinite alternate; }
.scn-bridge-crossing .water { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: bc-water 4s ease-in-out infinite; }
.scn-bridge-crossing .bridge { position:absolute; bottom:38%; left:20%; right:20%; height:12px; background: linear-gradient(90deg, #5a4a3a 0%, #7a5a3a 50%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: bc-bridge 2s ease-in-out infinite; }
.scn-bridge-crossing .soldiers { position:absolute; bottom:34%; left:22%; width:8px; height:24px; background: #2a2a3a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: bc-soldiers 3s ease-in-out infinite; }
.scn-bridge-crossing .soldiers:nth-child(2) { left:28%; animation-delay: .3s; }
.scn-bridge-crossing .soldiers:nth-child(3) { left:34%; animation-delay: .6s; }
.scn-bridge-crossing .soldiers:nth-child(4) { left:40%; animation-delay: .9s; }
.scn-bridge-crossing .glus { position:absolute; bottom:42%; right:10%; width:16px; height:32px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-glus 5s ease-in-out infinite; }
.scn-bridge-crossing .mist { position:absolute; inset:20% 0 30% 0; background: radial-gradient(ellipse at 30% 50%, rgba(200,200,200,.15) 0%, transparent 70%); filter: blur(10px); animation: bc-mist 15s linear infinite; }
@keyframes bc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes bc-water { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes bc-bridge { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(.5deg) } }
@keyframes bc-soldiers { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(8px) rotate(-2deg) } }
@keyframes bc-glus { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-5deg) } }
@keyframes bc-mist { 0% { transform: translateX(0) } 100% { transform: translateX(60px) } }

/* opis-and-kings-brother – tense, sunlit */
.scn-opis-and-kings-brother {
  background: linear-gradient(180deg, #8ab0d4 0%, #d4b870 50%, #c89850 100%),
              radial-gradient(ellipse at 50% 100%, #e8c860 0%, transparent 60%);
}
.scn-opis-and-kings-brother .sky-sun { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a8aaa 0%, #b0c8d4 40%, transparent 100%); animation: ok-sky 15s ease-in-out infinite alternate; }
.scn-opis-and-kings-brother .river { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: ok-river 6s ease-in-out infinite; }
.scn-opis-and-kings-brother .bridge-ok { position:absolute; bottom:38%; left:25%; right:25%; height:14px; background: linear-gradient(90deg, #5a4a3a 0%, #8a6a4a 50%, #5a4a3a 100%); border-radius: 3px; box-shadow: 0 3px 8px rgba(0,0,0,.5); }
.scn-opis-and-kings-brother .column { position:absolute; bottom:32%; left:30%; width:12px; height:30px; background: #3a4a3a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ok-column 2s ease-in-out infinite; }
.scn-opis-and-kings-brother .column:nth-child(2) { left:35%; animation-delay: .2s; }
.scn-opis-and-kings-brother .column:nth-child(3) { left:40%; animation-delay: .4s; }
.scn-opis-and-kings-brother .column:nth-child(4) { left:45%; animation-delay: .6s; }
.scn-opis-and-kings-brother .column:nth-child(5) { left:50%; animation-delay: .8s; }
.scn-opis-and-kings-brother .king-brother { position:absolute; bottom:36%; left:55%; width:18px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ok-king 4s ease-in-out infinite; }
.scn-opis-and-kings-brother .dust { position:absolute; bottom:25%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(180,140,80,.3) 0%, transparent 70%); filter: blur(4px); animation: ok-dust 8s linear infinite; }
@keyframes ok-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ok-river { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-2px) } }
@keyframes ok-column { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ok-king { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(10deg) scaleY(1.08) } 100% { transform: rotate(-10deg) scaleY(1) } }
@keyframes ok-dust { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }

/* parysatis-villages – calm, overcast */
.scn-parysatis-villages {
  background: linear-gradient(180deg, #8a9a9a 0%, #b0a890 40%, #9a8a7a 100%),
              radial-gradient(ellipse at 50% 100%, #b0a080 0%, transparent 70%);
}
.scn-parysatis-villages .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a7a8a 0%, #8a9890 50%, transparent 100%); animation: pv-sky 20s ease-in-out infinite alternate; }
.scn-parysatis-villages .ground { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); }
.scn-parysatis-villages .village { position:absolute; bottom:28%; left:15%; width:80px; height:40px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: pv-village 12s ease-in-out infinite; }
.scn-parysatis-villages .cattle { position:absolute; bottom:34%; left:30%; width:20px; height:16px; background: #6a5a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pv-cattle 6s ease-in-out infinite; }
.scn-parysatis-villages .cattle:nth-child(2) { left:36%; animation-delay: 2s; }
.scn-parysatis-villages .cattle:nth-child(3) { left:42%; animation-delay: 4s; }
.scn-parysatis-villages .river-pv { position:absolute; bottom:22%; left:0; right:0; height:12%; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); box-shadow: inset 0 3px 6px rgba(0,0,0,.4); animation: pv-river 10s linear infinite; }
.scn-parysatis-villages .trees-pv { position:absolute; bottom:30%; left:55%; width:60px; height:40px; background: radial-gradient(ellipse 50% 100% at 50% 100%, #5a7a3a 0%, #3a5a2a 60%, transparent 90%); filter: blur(3px); animation: pv-trees 25s ease-in-out infinite alternate; }
@keyframes pv-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes pv-village { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pv-cattle { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes pv-river { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }
@keyframes pv-trees { 0% { transform: scale(1) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(.98) rotate(-1deg) } }

/* scene: threats-and-peace - dim interior, tense */
.scn-threats-and-peace {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a24 40%, #1a1210 100%), radial-gradient(ellipse at 50% 60%, #4a3a32 0%, transparent 60%);
}
.scn-threats-and-peace .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%);
  border-radius: 0 0 30% 30%;
  animation: tp-wall 12s ease-in-out infinite alternate;
}
.scn-threats-and-peace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-threats-and-peace .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: tp-table 8s ease-in-out infinite alternate;
}
.scn-threats-and-peace .speaker {
  position: absolute; bottom: 26%; left: 30%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tp-speaker 4s ease-in-out infinite;
}
.scn-threats-and-peace .listener {
  position: absolute; bottom: 26%; right: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tp-listener 6s ease-in-out infinite;
}
.scn-threats-and-peace .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #d4a060 0%, #8c6030 100%);
  border-radius: 2px;
  animation: tp-candle 3s ease-in-out infinite;
}
.scn-threats-and-peace .shadow {
  position: absolute; bottom: 24%; left: 5%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: tp-shadow 5s ease-in-out infinite alternate;
}
@keyframes tp-wall {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes tp-table {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg) scale(1.01); }
  100% { transform: rotate(-1deg); }
}
@keyframes tp-speaker {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(2px) rotate(4deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tp-listener {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tp-candle {
  0% { opacity: 0.7; box-shadow: 0 0 8px 2px #d4a060, 0 0 16px 4px rgba(212,160,96,.3); }
  50% { opacity: 1; box-shadow: 0 0 12px 4px #f0c080, 0 0 24px 6px rgba(240,192,128,.5); }
  100% { opacity: 0.75; box-shadow: 0 0 8px 2px #d4a060, 0 0 16px 4px rgba(212,160,96,.3); }
}
@keyframes tp-shadow {
  0% { transform: translateX(0); opacity: 0.5; }
  50% { transform: translateX(10px); opacity: 0.8; }
  100% { transform: translateX(-5px); opacity: 0.6; }
}

/* scene: hecatonymus-warns - dim interior, tense */
.scn-hecatonymus-warns {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2438 40%, #12101a 100%), radial-gradient(ellipse at 50% 50%, #3a3250 0%, transparent 70%);
}
.scn-hecatonymus-warns .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2438 0%, #1a1628 100%);
  border-radius: 0 0 20% 20%;
  animation: hw-bg 14s ease-in-out infinite alternate;
}
.scn-hecatonymus-warns .map {
  position: absolute; bottom: 20%; left: 28%; width: 44%; height: 30%;
  background: linear-gradient(135deg, #c8b080 0%, #a08860 50%, #806840 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform-origin: center center;
  animation: hw-map 20s ease-in-out infinite;
}
.scn-hecatonymus-warns .pointer {
  position: absolute; bottom: 35%; left: 42%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #a08040 0%, #604020 100%);
  border-radius: 50%; 
  animation: hw-pointer 3s ease-in-out infinite;
}
.scn-hecatonymus-warns .figure1 {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2438 0%, #1a1628 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hw-fig1 5s ease-in-out infinite;
}
.scn-hecatonymus-warns .figure2 {
  position: absolute; bottom: 20%; right: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2438 0%, #1a1628 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hw-fig2 7s ease-in-out infinite;
}
.scn-hecatonymus-warns .lamp {
  position: absolute; bottom: 42%; left: 50%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffe090 0%, #d4a060 60%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px #d4a060, 0 0 36px 12px rgba(212,160,96,.3);
  animation: hw-lamp 4s ease-in-out infinite alternate;
}
.scn-hecatonymus-warns .inkpot {
  position: absolute; bottom: 22%; left: 58%; width: 12px; height: 10px;
  background: linear-gradient(180deg, #2a1a20 0%, #1a0a10 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: hw-ink 10s ease-in-out infinite;
}
@keyframes hw-bg {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.01); }
  100% { opacity: 0.8; transform: scaleY(0.99); }
}
@keyframes hw-map {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(2deg) scale(1.02); }
  50% { transform: rotate(-1deg) scale(1); }
  75% { transform: rotate(3deg) scale(1.01); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes hw-pointer {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(15deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-6px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hw-fig1 {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-1px) rotate(3deg); }
  60% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes hw-fig2 {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes hw-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 12px 4px #d4a060, 0 0 24px 8px rgba(212,160,96,.3); }
  50% { opacity: 1; box-shadow: 0 0 20px 6px #ffe090, 0 0 40px 14px rgba(255,224,144,.5); }
  100% { opacity: 0.85; box-shadow: 0 0 14px 4px #d4a060, 0 0 28px 8px rgba(212,160,96,.35); }
}
@keyframes hw-ink {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}

/* scene: vote-for-sea - calm, dim interior, wide */
.scn-vote-for-sea {
  background: linear-gradient(180deg, #1e2a30 0%, #2a3840 40%, #121820 100%), radial-gradient(ellipse at 70% 50%, #3a4a50 0%, transparent 60%);
}
.scn-vote-for-sea .backwall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a3840 0%, #1a2830 100%);
  border-radius: 0 0 10% 10%;
  animation: vs-wall 10s ease-in-out infinite alternate;
}
.scn-vote-for-sea .rostrum {
  position: absolute; bottom: 28%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,.5);
}
.scn-vote-for-sea .orator {
  position: absolute; bottom: 32%; left: 45%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a3038 0%, #1a1e24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vs-orator 6s ease-in-out infinite;
}
.scn-vote-for-sea .row1 {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 12%;
  background: repeating-linear-gradient(90deg, #1a2028 0px, #1a2028 16px, transparent 16px, transparent 20px);
  border-radius: 2px;
  animation: vs-row 8s ease-in-out infinite;
}
.scn-vote-for-sea .row2 {
  position: absolute; bottom: 10%; left: 12%; width: 76%; height: 10%;
  background: repeating-linear-gradient(90deg, #1a2028 0px, #1a2028 14px, transparent 14px, transparent 18px);
  animation: vs-row2 9s ease-in-out infinite alternate;
}
.scn-vote-for-sea .row3 {
  position: absolute; bottom: 2%; left: 15%; width: 70%; height: 10%;
  background: repeating-linear-gradient(90deg, #1a2028 0px, #1a2028 12px, transparent 12px, transparent 16px);
  animation: vs-row3 7s ease-in-out infinite;
}
.scn-vote-for-sea .window {
  position: absolute; top: 5%; right: 10%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #3a5a6a 0%, #2a4a5a 100%);
  border: 4px solid #2a2a20;
  border-radius: 4px;
  animation: vs-window 15s ease-in-out infinite alternate;
}
.scn-vote-for-sea .moonlight {
  position: absolute; top: 0; right: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,200,220,0.15) 0%, transparent 70%);
  animation: vs-moon 20s linear infinite;
}
@keyframes vs-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes vs-orator {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes vs-row {
  0% { transform: translateX(0); }
  50% { transform: translateX(1px); }
  100% { transform: translateX(0); }
}
@keyframes vs-row2 {
  0% { transform: translateX(0); opacity: 0.7; }
  50% { transform: translateX(-1px); opacity: 1; }
  100% { transform: translateX(0); opacity: 0.8; }
}
@keyframes vs-row3 {
  0% { transform: translateX(0); }
  100% { transform: translateX(1px); }
}
@keyframes vs-window {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.02); }
  100% { opacity: 0.7; transform: scaleY(0.98); }
}
@keyframes vs-moon {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { transform: translateX(10px); opacity: 0.5; }
  100% { transform: translateX(0); opacity: 0.3; }
}

/* scene: xenophon-colony-dream - calm, dim interior, dreamy */
.scn-xenophon-colony-dream {
  background: linear-gradient(180deg, #121a28 0%, #1e2840 40%, #0a1020 100%), radial-gradient(ellipse at 50% 40%, #283050 0%, transparent 70%);
}
.scn-xenophon-colony-dream .nightbg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2840 0%, #0e1a2e 100%);
  border-radius: 0 0 20% 20%;
  animation: xd-bg 12s ease-in-out infinite alternate;
}
.scn-xenophon-colony-dream .altar {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 14%;
  background: linear-gradient(180deg, #3a3a2e 0%, #1a1a12 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: xd-altar 14s ease-in-out infinite;
}
.scn-xenophon-colony-dream .flame {
  position: absolute; bottom: 32%; left: 48%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #ff8040 50%, #c04020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px #ff8040, 0 0 40px 12px rgba(255,128,64,.3);
  animation: xd-flame 2s ease-in-out infinite alternate;
}
.scn-xenophon-colony-dream .smoke {
  position: absolute; bottom: 40%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,200,200,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: xd-smoke 6s ease-in-out infinite;
}
.scn-xenophon-colony-dream .xenophon {
  position: absolute; bottom: 24%; left: 25%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xd-xeno 8s ease-in-out infinite;
}
.scn-xenophon-colony-dream .silvanus {
  position: absolute; bottom: 24%; right: 25%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: xd-silv 9s ease-in-out infinite alternate;
}
.scn-xenophon-colony-dream .vision {
  position: absolute; top: 2%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, rgba(100,130,200,0.1) 0%, transparent 100%);
  border: 1px solid rgba(150,180,230,0.2);
  border-radius: 10%;
  animation: xd-vision 20s ease-in-out infinite;
}
@keyframes xd-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes xd-altar {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes xd-flame {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; box-shadow: 0 0 12px 4px #ff8040, 0 0 24px 8px rgba(255,128,64,.3); }
  50% { transform: scaleY(1.2) rotate(0deg); opacity: 1; box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 14px rgba(255,208,128,.5); }
  100% { transform: scaleY(0.9) rotate(2deg); opacity: 0.75; box-shadow: 0 0 14px 4px #ff8040, 0 0 28px 8px rgba(255,128,64,.3); }
}
@keyframes xd-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.1; }
  100% { transform: translateY(0) scale(1); opacity: 0.3; }
}
@keyframes xd-xeno {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-1px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xd-silv {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(0); }
}
@keyframes xd-vision {
  0% { opacity: 0.1; transform: scale(0.95); }
  50% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 0.15; transform: scale(0.95); }
}

.scn-xenophon-rescues {
  background: linear-gradient(180deg, #2e3a3e 0%, #404a4e 30%, #5a6468 60%, #3e484c 100%),
              radial-gradient(ellipse at 30% 70%, #6a7a7e 0%, transparent 60%);
}
.scn-xenophon-rescues .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a5458 0%, #6a7478 50%, #8a9498 100%);
  animation: xr-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-rescues .hills-bleak {
  position: absolute; bottom: 30%; left: -10%; right: -10%; height: 35%;
  background: linear-gradient(180deg, #3a4438 0%, #2a3428 100%);
  border-radius: 50% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.4);
  animation: xr-hills 20s ease-in-out infinite alternate;
}
.scn-xenophon-rescues .burning-path {
  position: absolute; bottom: 28%; left: 20%; right: 30%; height: 4%;
  background: linear-gradient(90deg, #a05630 0%, #c07040 50%, #d08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px #a05630, 0 0 40px 12px rgba(160,86,48,0.4);
  animation: xr-burn 3s ease-in-out infinite alternate;
}
.scn-xenophon-rescues .cavalry-leader {
  position: absolute; bottom: 30%; left: 45%; width: 28px; height: 50px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: xr-ride 4s ease-in-out infinite;
}
.scn-xenophon-rescues .cavalry-leader::before { /* horse body */
  content: ''; position: absolute; bottom: -10px; left: -15px; width: 40px; height: 20px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a2018 100%);
  border-radius: 40% 20% 10% 10% / 60% 40% 20% 20%;
}
.scn-xenophon-rescues .peltast {
  position: absolute; bottom: 28%; left: 65%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a342c 0%, #28221a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: xr-run 3.5s ease-in-out infinite 0.5s;
}
.scn-xenophon-rescues .smoke-smear {
  position: absolute; bottom: 35%; left: 10%; width: 120px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,90,80,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: xr-smoke 12s ease-in-out infinite alternate;
}
.scn-xenophon-rescues .spear-gleam {
  position: absolute; bottom: 50%; left: 55%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #b0a088 0%, #706050 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px 2px #b0a088;
  animation: xr-spear 2s ease-in-out infinite alternate;
}
@keyframes xr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes xr-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes xr-burn { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.1); } 100% { opacity:0.7; transform: scaleX(0.95); } }
@keyframes xr-ride { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes xr-run { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 60% { transform: translateX(8px) rotate(-2deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes xr-smoke { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-5px) scale(1.2); opacity:0.8; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }
@keyframes xr-spear { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-calpe-haven {
  background: linear-gradient(180deg, #7ab0c0 0%, #a0d0e0 40%, #d0e8f0 70%, #f0f8fc 100%),
              radial-gradient(ellipse at 40% 80%, #c0e0f0 0%, transparent 50%);
}
.scn-calpe-haven .sea-bright {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #8ac0d0 0%, #70b0c0 50%, #6098a8 100%);
  animation: ch-sea 12s ease-in-out infinite alternate;
}
.scn-calpe-haven .cliff-promontory {
  position: absolute; bottom: 30%; left: 20%; right: 30%; height: 40%;
  background: linear-gradient(180deg, #a08860 0%, #7a6644 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.2);
  animation: ch-cliff 20s ease-in-out infinite alternate;
}
.scn-calpe-haven .figures-embrace {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 30% 50%, #4a5a4a 30%, #2a3a2a 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ch-embrace 4s ease-in-out infinite;
}
.scn-calpe-haven .figures-embrace::before {
  content: ''; position: absolute; left: -20px; bottom: 0; width: 40px; height: 40px;
  background: radial-gradient(ellipse at 70% 50%, #4a5a4a 30%, #2a3a2a 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ch-embrace2 4s ease-in-out infinite 0.5s;
}
.scn-calpe-haven .sun-glow {
  position: absolute; top: 15%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle at center, #ffe0a0 0%, #ffc070 40%, transparent 70%);
  box-shadow: 0 0 60px 20px #ffc070, 0 0 120px 40px rgba(255,192,112,0.3);
  animation: ch-sun 6s ease-in-out infinite alternate;
}
.scn-calpe-haven .wave-lap {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, #8ac0d0 0%, #a0d8e8 20%, #8ac0d0 40%, #a0d8e8 60%, #8ac0d0 80%, #a0d8e8 100%);
  background-size: 200% 100%;
  animation: ch-wave 10s linear infinite;
}
.scn-calpe-haven .cloud-light {
  position: absolute; top: 10%; left: 20%; width: 100px; height: 25px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.1) 100%);
  filter: blur(8px);
  animation: ch-cloud 30s linear infinite;
}
.scn-calpe-haven .beach-sand {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #d0b88a 0%, #b8a070 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: ch-sand 5s ease-in-out infinite alternate;
}
@keyframes ch-sea { 0% { opacity:0.8; background-position: 0 0; } 50% { opacity:1; background-position: 0 5px; } 100% { opacity:0.9; background-position: 0 0; } }
@keyframes ch-cliff { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ch-embrace { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-48%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ch-embrace2 { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes ch-sun { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes ch-wave { 0% { background-position: 0 0; } 100% { background-position: 200% 0; } }
@keyframes ch-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes ch-sand { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }

.scn-unfavourable-victims {
  background: linear-gradient(180deg, #3a3c3e 0%, #505456 30%, #686c6e 60%, #484a4c 100%),
              radial-gradient(ellipse at 50% 100%, #585c5e 0%, transparent 70%);
}
.scn-unfavourable-victims .grave-mound {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5);
  animation: uv-mound 8s ease-in-out infinite alternate;
}
.scn-unfavourable-victims .cenotaph-stone {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #707070 0%, #505050 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: uv-stone 6s ease-in-out infinite;
}
.scn-unfavourable-victims .soldiers-kneel {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uv-kneel 4s ease-in-out infinite;
}
.scn-unfavourable-victims .soldiers-kneel::before {
  content: ''; position: absolute; left: -25px; bottom: 0; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uv-kneel 4s ease-in-out infinite 0.3s;
}
.scn-unfavourable-victims .smoke-altar {
  position: absolute; bottom: 35%; left: 25%; width: 80px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, rgba(80,70,60,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: uv-smoke 10s ease-in-out infinite alternate;
}
.scn-unfavourable-victims .spear-vertical {
  position: absolute; bottom: 40%; left: 20%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #888070 0%, #605040 100%);
  border-radius: 2px;
  animation: uv-spear 5s ease-in-out infinite;
}
.scn-unfavourable-victims .shadow-stretch {
  position: absolute; bottom: 0; left: 20%; right: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.5) 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: uv-shadow 12s ease-in-out infinite alternate;
}
@keyframes uv-mound { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes uv-stone { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes uv-kneel { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(5deg); } 60% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes uv-smoke { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-8px) scale(1.3); opacity:0.7; } 100% { transform: translateY(0) scale(1); opacity:0.5; } }
@keyframes uv-spear { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes uv-shadow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-three-sacrifices-fail {
  background: linear-gradient(180deg, #2e3438 0%, #424a4e 40%, #5a6268 70%, #4a5256 100%),
              radial-gradient(ellipse at 50% 80%, #525a5e 0%, transparent 60%);
}
.scn-three-sacrifices-fail .altar-stone {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 20px;
  background: linear-gradient(180deg, #707068 0%, #505048 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
  animation: tsf-altar 4s ease-in-out infinite alternate;
}
.scn-three-sacrifices-fail .victim-sacrifice {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: tsf-victim 5s ease-in-out infinite;
}
.scn-three-sacrifices-fail .flock-crowd {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(60,60,50,0.8) 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: tsf-crowd 8s ease-in-out infinite alternate;
}
.scn-three-sacrifices-fail .smoke-rising {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(80,70,60,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: tsf-smoke 6s ease-in-out infinite;
}
.scn-three-sacrifices-fail .seer-figure {
  position: absolute; bottom: 25%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a3430 0%, #2a2420 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsf-seer 3s ease-in-out infinite;
}
.scn-three-sacrifices-fail .knife-glow {
  position: absolute; bottom: 35%; left: 40%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px #c0a070;
  animation: tsf-knife 2s ease-in-out infinite alternate;
}
.scn-three-sacrifices-fail .blood-stain {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 6px;
  background: radial-gradient(ellipse, #8a3a2a 0%, #5a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #8a3a2a;
  animation: tsf-blood 4s ease-in-out infinite alternate;
}
@keyframes tsf-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-48%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes tsf-victim { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(5deg); } 60% { transform: translateX(-50%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes tsf-crowd { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.7; transform: scaleY(1); } }
@keyframes tsf-smoke { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-5px) scale(1.2); opacity:0.8; } 100% { transform: translateY(0) scale(1); opacity:0.5; } }
@keyframes tsf-seer { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tsf-knife { 0% { opacity:0.7; transform: rotate(-10deg); } 50% { opacity:1; transform: rotate(10deg); } 100% { opacity:0.8; transform: rotate(-10deg); } }
@keyframes tsf-blood { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.95); } }

.scn-long-march-planned {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 50%, #0e0a08 100%),
              radial-gradient(ellipse at 30% 20%, #3a2a20 0%, transparent 70%);
}
.scn-long-march-planned .tent-wall {
  position: absolute; inset: 10% 10% 20% 15%;
  background: linear-gradient(135deg, #4a3a30 0%, #2a1e1a 100%);
  border-radius: 20% 40% 10% 30% / 30% 50% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: lm-wall 14s ease-in-out infinite alternate;
}
.scn-long-march-planned .tent-pole {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  box-shadow: 2px 0 8px rgba(0,0,0,.5);
  animation: lm-pole 8s ease-in-out infinite;
}
.scn-long-march-planned .table {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
  animation: lm-table 6s ease-in-out infinite;
}
.scn-long-march-planned .map {
  position: absolute; bottom: 30%; left: 33%; width: 34%; height: 8%;
  background: linear-gradient(135deg, #b89a6a 0%, #8a7040 100%);
  border-radius: 2%;
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
  transform: rotate(-2deg);
  animation: lm-map 12s ease-in-out infinite alternate;
}
.scn-long-march-planned .figure-a {
  position: absolute; bottom: 32%; left: 38%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lm-fig-a 4s ease-in-out infinite;
}
.scn-long-march-planned .figure-b {
  position: absolute; bottom: 32%; left: 52%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lm-fig-b 5s ease-in-out infinite;
}
.scn-long-march-planned .lantern {
  position: absolute; bottom: 45%; left: 45%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 60%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.3);
  animation: lm-lantern 3s ease-in-out infinite alternate;
}
.scn-long-march-planned .shadow {
  position: absolute; bottom: 26%; left: 30%; width: 40%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lm-shadow 8s ease-in-out infinite;
}
@keyframes lm-wall { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1) } }
@keyframes lm-pole { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes lm-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lm-map { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(0deg) translateX(2px) } 100% { transform: rotate(-1deg) translateX(-2px) } }
@keyframes lm-fig-a { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes lm-fig-b { 0% { transform: translateX(0) rotate(1deg) } 30% { transform: translateX(-3px) rotate(-1deg) } 60% { transform: translateX(-6px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes lm-lantern { 0% { box-shadow: 0 0 18px 4px #c08040, 0 0 36px 8px rgba(192,128,64,.3); opacity:.85 } 50% { box-shadow: 0 0 32px 10px #ffd060, 0 0 64px 18px rgba(255,208,96,.5); opacity:1 } 100% { box-shadow: 0 0 22px 5px #c08040, 0 0 40px 10px rgba(192,128,64,.35); opacity:.9 } }
@keyframes lm-shadow { 0%,100% { opacity:.4 } 50% { opacity:.7 } }

.scn-daybreak-march {
  background: linear-gradient(180deg, #f0c090 0%, #d08060 20%, #805030 60%, #302020 100%),
              radial-gradient(ellipse at 50% 0%, #f0d0a0 0%, transparent 60%);
}
.scn-daybreak-march .sky-dawn {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0c0a0 0%, #c08050 40%, #705040 100%);
  animation: dm-sky 20s ease-in-out infinite alternate;
}
.scn-daybreak-march .horizon {
  position: absolute; bottom: 48%; left: 0; right: 0; height: 4%;
  background: linear-gradient(90deg, #604030 0%, #806040 50%, #604030 100%);
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
  animation: dm-horizon 12s ease-in-out infinite;
}
.scn-daybreak-march .hills {
  position: absolute; bottom: 30%; left: -10%; right: -10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.4);
  animation: dm-hills 18s ease-in-out infinite alternate;
}
.scn-daybreak-march .dust-cloud {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 12%;
  background: radial-gradient(ellipse, rgba(180,140,100,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: dm-dust 35s linear infinite;
}
.scn-daybreak-march .column-soldier {
  position: absolute; bottom: 20%; left: 10%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 8px 0 0 #2a2a3a, 16px 0 0 #1a1a2a, 24px 0 0 #2a2a3a, 32px 0 0 #1a1a2a, 40px 0 0 #2a2a3a, 48px 0 0 #1a1a2a, 56px 0 0 #2a2a3a, 64px 0 0 #1a1a2a, 72px 0 0 #2a2a3a, 80px 0 0 #1a1a2a;
  animation: dm-march 6s ease-in-out infinite;
}
.scn-daybreak-march .scout-horse {
  position: absolute; bottom: 22%; left: 70%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: dm-scout 8s ease-in-out infinite;
}
.scn-daybreak-march .sun-glow {
  position: absolute; bottom: 50%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #ffb060 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: dm-sun 14s ease-in-out infinite alternate;
}
@keyframes dm-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dm-horizon { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes dm-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dm-dust { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes dm-march { 0% { transform: translateY(0) } 30% { transform: translateY(-1px) } 60% { transform: translateY(0) } 100% { transform: translateY(-1px) } }
@keyframes dm-scout { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(15px) rotate(0deg) } 100% { transform: translateX(20px) rotate(-2deg) } }
@keyframes dm-sun { 0% { transform: scale(0.9); opacity:.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:.8 } }

.scn-village-sacked {
  background: linear-gradient(180deg, #2a2020 0%, #1a1010 30%, #18101a 60%, #0e0a0e 100%),
              radial-gradient(ellipse at 40% 60%, #3a1a10 0%, transparent 70%);
}
.scn-village-sacked .sky-dusk {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #4a3030 0%, #2a1818 40%, #1a0e0e 100%);
  animation: vs-sky 18s ease-in-out infinite alternate;
}
.scn-village-sacked .ruin-wall {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  clip-path: polygon(0% 100%, 0% 30%, 10% 30%, 10% 0%, 90% 0%, 90% 50%, 100% 50%, 100% 100%);
  animation: vs-wall 20s ease-in-out infinite;
}
.scn-village-sacked .ruin-beam {
  position: absolute; bottom: 50%; left: 35%; width: 8px; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  transform: rotate(35deg);
  transform-origin: bottom center;
  box-shadow: 0 2px 8px rgba(0,0,0,.6);
  animation: vs-beam 12s ease-in-out infinite alternate;
}
.scn-village-sacked .smoke-plume {
  position: absolute; bottom: 40%; left: 50%; width: 100px; height: 100px;
  background: radial-gradient(ellipse, rgba(100,80,60,.3) 0%, rgba(60,40,30,.15) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: vs-smoke 30s linear infinite;
}
.scn-village-sacked .ember-glow {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ff8030 0%, #c04010 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c04010, 0 0 60px 20px rgba(192,64,16,.3);
  animation: vs-ember 3s ease-in-out infinite alternate;
}
.scn-village-sacked .rubble-pile {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
  animation: vs-rubble 15s ease-in-out infinite;
}
.scn-village-sacked .figure-shadow {
  position: absolute; bottom: 20%; left: 60%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: vs-fig 6s ease-in-out infinite;
}
@keyframes vs-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes vs-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes vs-beam { 0% { transform: rotate(35deg) } 50% { transform: rotate(32deg) } 100% { transform: rotate(37deg) } }
@keyframes vs-smoke { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-20px) scale(1.2) opacity:.6 } 100% { transform: translateY(-40px) scale(0.8) opacity:.3 } }
@keyframes vs-ember { 0% { box-shadow: 0 0 20px 6px #c04010, 0 0 40px 12px rgba(192,64,16,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 14px #ff8030, 0 0 80px 24px rgba(255,128,48,.5); opacity:1 } 100% { box-shadow: 0 0 25px 8px #c04010, 0 0 50px 15px rgba(192,64,16,.35); opacity:.7 } }
@keyframes vs-rubble { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes vs-fig { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(5px) rotate(0) } 60% { transform: translateX(10px) rotate(1deg) } 100% { transform: translateX(15px) rotate(0) } }

.scn-line-of-battle {
  background: linear-gradient(180deg, #d0b090 0%, #a08060 30%, #604030 60%, #201818 100%),
              radial-gradient(ellipse at 50% 0%, #f0d0b0 0%, transparent 70%);
}
.scn-line-of-battle .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0c0a0 0%, #c09070 40%, #806050 100%);
  animation: lb-sky 20s ease-in-out infinite alternate;
}
.scn-line-of-battle .dawn-sun {
  position: absolute; bottom: 50%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lb-sun 16s ease-in-out infinite alternate;
}
.scn-line-of-battle .rank-row-1 {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 20%;
  background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 8px, transparent 8px, transparent 10px);
  mask-image: linear-gradient(180deg, #000 0%, transparent 100%);
  animation: lb-rank1 4s ease-in-out infinite;
}
.scn-line-of-battle .rank-row-2 {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 18%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 8px, transparent 8px, transparent 10px);
  mask-image: linear-gradient(180deg, #000 0%, transparent 100%);
  animation: lb-rank2 5s ease-in-out infinite reverse;
}
.scn-line-of-battle .rank-row-3 {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 16%;
  background: repeating-linear-gradient(90deg, #0a0a1a 0px, #0a0a1a 8px, transparent 8px, transparent 10px);
  mask-image: linear-gradient(180deg, #000 0%, transparent 100%);
  animation: lb-rank3 6s ease-in-out infinite;
}
.scn-line-of-battle .spear-wall {
  position: absolute; bottom: 28%; left: 5%; right: 5%; height: 40%;
  background: repeating-linear-gradient(90deg, #806040 0px, #806040 2px, transparent 2px, transparent 8px);
  mask-image: linear-gradient(180deg, #000 20%, transparent 80%);
  animation: lb-spear 3s ease-in-out infinite alternate;
}
.scn-line-of-battle .banner {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b05030 0%, #802010 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  transform-origin: bottom left;
  animation: lb-banner 4s ease-in-out infinite;
}
@keyframes lb-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lb-sun { 0% { transform: scale(0.9) translateX(0) } 50% { transform: scale(1.1) translateX(10px) } 100% { transform: scale(0.95) translateX(5px) } }
@keyframes lb-rank1 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes lb-rank2 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(1px) } }
@keyframes lb-rank3 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lb-spear { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes lb-banner { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) } 75% { transform: rotate(5deg) } }

.scn-gates-closed {
  background: linear-gradient(180deg, #2d1b4e 0%, #4a2e5c 30%, #6a3f4a 60%, #c07a3e 90%, #d9a05a 100%), radial-gradient(ellipse at 50% 100%, #d9a05a 0%, transparent 60%);
}
.scn-gates-closed .sky-dusk {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #1a0f33 0%, #3a2255 40%, transparent 100%); animation: gc-sky 12s ease-in-out infinite alternate;
}
.scn-gates-closed .wall-left {
  position: absolute; bottom: 25%; left: 0; width: 30%; height: 60%; background: linear-gradient(180deg, #3a2a1a 0%, #1f1510 100%); border-radius: 0 10% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.6); animation: gc-wall 6s ease-in-out infinite;
}
.scn-gates-closed .wall-right {
  position: absolute; bottom: 25%; right: 0; width: 30%; height: 60%; background: linear-gradient(180deg, #3a2a1a 0%, #1f1510 100%); border-radius: 10% 0 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.6); animation: gc-wall 6s ease-in-out infinite reverse;
}
.scn-gates-closed .gate {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #2f1e12 0%, #0f0a06 100%); border-radius: 4px 4px 0 0; box-shadow: 0 10px 20px rgba(0,0,0,.7); animation: gc-gate 4s ease-in-out infinite alternate;
}
.scn-gates-closed .torch-left {
  position: absolute; bottom: 40%; left: 25%; width: 6px; height: 20px; background: linear-gradient(180deg, #4a2a0a 0%, #1a0a02 100%); border-radius: 50% / 20% 20% 60% 60%; transform-origin: bottom center;
}
.scn-gates-closed .torch-left::before {
  content: ''; position: absolute; top: -12px; left: -4px; width: 14px; height: 16px; background: radial-gradient(circle, #ff8c3e 0%, #e65c20 40%, transparent 70%); border-radius: 50%; animation: gc-torch 0.8s ease-in-out infinite alternate;
}
.scn-gates-closed .torch-right {
  position: absolute; bottom: 40%; right: 25%; width: 6px; height: 20px; background: linear-gradient(180deg, #4a2a0a 0%, #1a0a02 100%); border-radius: 50% / 20% 20% 60% 60%; transform-origin: bottom center;
}
.scn-gates-closed .torch-right::before {
  content: ''; position: absolute; top: -12px; left: -4px; width: 14px; height: 16px; background: radial-gradient(circle, #ff8c3e 0%, #e65c20 40%, transparent 70%); border-radius: 50%; animation: gc-torch 0.8s ease-in-out infinite alternate-reverse;
}
.scn-gates-closed .soldier-1 {
  position: absolute; bottom: 28%; left: 38%; width: 16px; height: 32px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-run 1.2s ease-in-out infinite;
}
.scn-gates-closed .soldier-2 {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 32px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-run 1.2s ease-in-out infinite 0.4s; z-index:2;
}
.scn-gates-closed .dust {
  position: absolute; bottom: 25%; left: 30%; width: 60%; height: 10%; background: radial-gradient(ellipse at 50% 100%, rgba(100,70,40,0.4) 0%, transparent 80%); filter: blur(6px); animation: gc-dust 4s ease-in-out infinite;
}
@keyframes gc-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes gc-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes gc-gate { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes gc-torch { 0% { opacity: .7; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes gc-run { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg) translateY(-1px); } 50% { transform: translateX(10px) rotate(-2deg) translateY(0); } 75% { transform: translateX(15px) rotate(1deg) translateY(-1px); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes gc-dust { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .6; transform: scaleX(1.2) translateY(-2px); } 100% { opacity: .3; transform: scaleX(1); } }

.scn-xenophon-quiets-mob {
  background: linear-gradient(180deg, #2d1b4e 0%, #4a2e5c 30%, #6a3f4a 60%, #c07a3e 90%, #d9a05a 100%), radial-gradient(ellipse at 50% 100%, #d9a05a 0%, transparent 60%);
}
.scn-xenophon-quiets-mob .sky-dusk {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a0f33 0%, #3a2255 40%, transparent 100%); animation: xqm-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-quiets-mob .platform {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius: 6px 6px 0 0; box-shadow: 0 8px 12px rgba(0,0,0,.5); animation: xqm-platform 6s ease-in-out infinite;
}
.scn-xenophon-quiets-mob .speaker {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 42px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xqm-speak 3s ease-in-out infinite;
}
.scn-xenophon-quiets-mob .mob-back {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 40px; background: linear-gradient(180deg, rgba(30,20,20,0.8) 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: xqm-mob 8s ease-in-out infinite;
}
.scn-xenophon-quiets-mob .mob-front {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 50px; background: linear-gradient(180deg, rgba(40,30,30,0.6) 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(1px); animation: xqm-mob 8s ease-in-out infinite 1s;
}
.scn-xenophon-quiets-mob .torch-left {
  position: absolute; bottom: 35%; left: 20%; width: 6px; height: 20px; background: linear-gradient(180deg, #4a2a0a 0%, #1a0a02 100%); transform-origin: bottom center;
}
.scn-xenophon-quiets-mob .torch-left::before {
  content: ''; position: absolute; top: -12px; left: -4px; width: 14px; height: 16px; background: radial-gradient(circle, #ff8c3e 0%, #e65c20 40%, transparent 70%); border-radius: 50%; animation: xqm-torch 0.6s ease-in-out infinite alternate;
}
.scn-xenophon-quiets-mob .torch-right {
  position: absolute; bottom: 35%; right: 20%; width: 6px; height: 20px; background: linear-gradient(180deg, #4a2a0a 0%, #1a0a02 100%); transform-origin: bottom center;
}
.scn-xenophon-quiets-mob .torch-right::before {
  content: ''; position: absolute; top: -12px; left: -4px; width: 14px; height: 16px; background: radial-gradient(circle, #ff8c3e 0%, #e65c20 40%, transparent 70%); border-radius: 50%; animation: xqm-torch 0.6s ease-in-out infinite alternate-reverse;
}
.scn-xenophon-quiets-mob .shadow-beam {
  position: absolute; bottom: 15%; left: 45%; width: 10%; height: 60px; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%); filter: blur(4px); transform: skewX(-10deg); animation: xqm-shadow 5s ease-in-out infinite;
}
@keyframes xqm-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes xqm-platform { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes xqm-speak { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(3deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(-3deg) translateY(1px) } 75% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes xqm-mob { 0% { opacity: .4; transform: scaleY(1) } 50% { opacity: .7; transform: scaleY(1.05) translateY(-2px) } 100% { opacity: .4; transform: scaleY(1) } }
@keyframes xqm-torch { 0% { opacity: .6; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes xqm-shadow { 0% { opacity: .2; transform: skewX(-10deg) translateX(0); } 50% { opacity: .5; transform: skewX(-10deg) translateX(5px); } 100% { opacity: .2; transform: skewX(-10deg) translateX(0); } }

.scn-message-to-anaxibius {
  background: linear-gradient(180deg, #2d1b4e 0%, #4a2e5c 30%, #6a3f4a 60%, #c07a3e 90%, #d9a05a 100%), radial-gradient(ellipse at 50% 100%, #d9a05a 0%, transparent 60%);
}
.scn-message-to-anaxibius .sky-dusk {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a0f33 0%, #3a2255 40%, transparent 100%); animation: mta-sky 18s ease-in-out infinite alternate;
}
.scn-message-to-anaxibius .hill-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: mta-hill 14s ease-in-out infinite alternate;
}
.scn-message-to-anaxibius .tent-1 {
  position: absolute; bottom: 30%; left: 15%; width: 50px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius: 30% 30% 0 0; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); box-shadow: 0 6px 10px rgba(0,0,0,.5); animation: mta-tent 10s ease-in-out infinite;
}
.scn-message-to-anaxibius .tent-2 {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0f06 100%); border-radius: 30% 30% 0 0; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); box-shadow: 0 6px 10px rgba(0,0,0,.5); animation: mta-tent 10s ease-in-out infinite 3s;
}
.scn-message-to-anaxibius .messenger-1 {
  position: absolute; bottom: 22%; left: 55%; width: 16px; height: 32px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mta-walk 4s ease-in-out infinite;
}
.scn-message-to-anaxibius .messenger-2 {
  position: absolute; bottom: 22%; left: 70%; width: 16px; height: 32px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mta-walk 4s ease-in-out infinite 2s;
}
.scn-message-to-anaxibius .scroll {
  position: absolute; bottom: 24%; left: 62%; width: 10px; height: 14px; background: linear-gradient(180deg, #c0a060 0%, #806030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: mta-scroll 3s ease-in-out infinite;
}
.scn-message-to-anaxibius .dust {
  position: absolute; bottom: 20%; left: 40%; width: 40%; height: 8%; background: radial-gradient(ellipse at 50% 100%, rgba(100,70,40,0.3) 0%, transparent 80%); filter: blur(4px); animation: mta-dust 6s ease-in-out infinite;
}
@keyframes mta-sky { 0% { opacity: .5 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes mta-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mta-tent { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes mta-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(1deg) translateY(-1px); } 50% { transform: translateX(12px) rotate(-2deg) translateY(0); } 75% { transform: translateX(18px) rotate(1deg) translateY(-1px); } 100% { transform: translateX(24px) rotate(0deg); } }
@keyframes mta-scroll { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(5deg); } }
@keyframes mta-dust { 0% { opacity: .2; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.3) translateY(-2px); } 100% { opacity: .2; transform: scaleX(1); } }

.scn-army-disbands {
  background: linear-gradient(180deg, #2d1b4e 0%, #4a2e5c 30%, #6a3f4a 60%, #c07a3e 90%, #d9a05a 100%), radial-gradient(ellipse at 50% 100%, #d9a05a 0%, transparent 60%);
}
.scn-army-disbands .sky-dusk {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a0f33 0%, #3a2255 40%, transparent 100%); animation: ad-sky 12s ease-in-out infinite alternate;
}
.scn-army-disbands .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: ad-sea 10s ease-in-out infinite alternate;
}
.scn-army-disbands .ship-1 {
  position: absolute; bottom: 25%; left: 20%; width: 60px; height: 20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 0 0 40% 40%; clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%); animation: ad-ship 15s linear infinite;
}
.scn-army-disbands .ship-2 {
  position: absolute; bottom: 30%; left: 70%; width: 50px; height: 18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 0 0 40% 40%; clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%); animation: ad-ship 20s linear infinite reverse;
}
.scn-army-disbands .sail-1 {
  position: absolute; bottom: 35%; left: 25%; width: 20px; height: 30px; background: linear-gradient(180deg, #c0b090 0%, #8a7a6a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: ad-sail 8s ease-in-out infinite;
}
.scn-army-disbands .sail-2 {
  position: absolute; bottom: 40%; left: 73%; width: 18px; height: 26px; background: linear-gradient(180deg, #c0b090 0%, #8a7a6a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: ad-sail 8s ease-in-out infinite 2s;
}
.scn-army-disbands .soldier-sell {
  position: absolute; bottom: 12%; left: 40%; width: 16px; height: 32px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ad-walk 3s ease-in-out infinite;
}
.scn-army-disbands .armor-pile {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 16px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: ad-pile 5s ease-in-out infinite;
}
.scn-army-disbands .cloud {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 16px; background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: ad-cloud 40s linear infinite;
}
@keyframes ad-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes ad-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes ad-ship { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes ad-sail { 0%,100% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.05) } }
@keyframes ad-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg) translateY(-1px); } 50% { transform: translateX(8px) rotate(-2deg) translateY(0); } 75% { transform: translateX(12px) rotate(1deg) translateY(-1px); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes ad-pile { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ad-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

.scn-asidates-captured { background: linear-gradient(180deg, #ff9a7a 0%, #e86a4a 40%, #8a3a2a 100%), radial-gradient(ellipse at 50% 0%, #ffd0b0 0%, transparent 70%); }
.scn-asidates-captured .sky-dawn { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffb090 0%, #ff7a5a 60%, transparent 100%); animation: ac-sky 20s ease-in-out infinite alternate; }
.scn-asidates-captured .sun-glow { position:absolute; top:10%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #ffe0a0 0%, #ffb060 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,176,96,0.4), 0 0 120px 60px rgba(255,176,96,0.2); animation: ac-sun 15s ease-in-out infinite; }
.scn-asidates-captured .tower { position:absolute; bottom:35%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 8px 16px rgba(0,0,0,0.4); animation: ac-tower 8s ease-in-out infinite; }
.scn-asidates-captured .captor { position:absolute; bottom:30%; left:10%; width:24px; height:48px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ac-captor 4s ease-in-out infinite; }
.scn-asidates-captured .captive { position:absolute; bottom:30%; left:2%; width:20px; height:44px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; box-shadow: inset 2px 0 4px rgba(0,0,0,0.5); animation: ac-captive 6s ease-in-out infinite; }
.scn-asidates-captured .horse { position:absolute; bottom:30%; left:30%; width:60px; height:36px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 60% 40% 60% / 70% 60% 40% 30%; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.4); animation: ac-horse 7s ease-in-out infinite; }
.scn-asidates-captured .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.5); animation: ac-ground 12s ease-in-out infinite; }
@keyframes ac-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ac-sun { 0% { transform: translateX(0) scale(1); opacity:0.8 } 50% { transform: translateX(10px) scale(1.05); opacity:1 } 100% { transform: translateX(0) scale(1); opacity:0.9 } }
@keyframes ac-tower { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes ac-captor { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(20px) rotate(1deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes ac-captive { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(6px) translateY(-2px) } 100% { transform: translateX(12px) translateY(0) } }
@keyframes ac-horse { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(0.96) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes ac-ground { 0% { border-radius: 60% 40% 0 0 / 40% 30% 0 0; } 50% { border-radius: 55% 45% 0 0 / 38% 32% 0 0; } 100% { border-radius: 60% 40% 0 0 / 40% 30% 0 0; } }

.scn-thibron-arrives { background: linear-gradient(180deg, #fff4d0 0%, #e0c8a0 40%, #c0a070 100%), radial-gradient(ellipse at 50% 100%, #fff4d0 0%, transparent 70%); }
.scn-thibron-arrives .sky-sunlit { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffe8c0 0%, #fff4d0 60%, transparent 100%); animation: ta-sky 18s ease-in-out infinite alternate; }
.scn-thibron-arrives .plain { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 16px rgba(100,80,60,0.3); animation: ta-plain 20s ease-in-out infinite; }
.scn-thibron-arrives .tent { position:absolute; bottom:30%; left:40%; width:80px; height:60px; background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2), 0 8px 16px rgba(0,0,0,0.2); animation: ta-tent 10s ease-in-out infinite; }
.scn-thibron-arrives .banner { position:absolute; bottom:45%; left:44%; width:12px; height:40px; background: linear-gradient(180deg, #a0461a 0%, #702243 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform-origin: bottom; animation: ta-banner 5s ease-in-out infinite; }
.scn-thibron-arrives .general { position:absolute; bottom:22%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #b08060 0%, #806040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 0 8px rgba(0,0,0,0.3); transform-origin: bottom; animation: ta-general 6s ease-in-out infinite; }
.scn-thibron-arrives .troops { position:absolute; bottom:20%; left:10%; right:10%; height:20px; background: repeating-linear-gradient(90deg, #c0a080 0px, #c0a080 4px, transparent 4px, transparent 8px); animation: ta-troops 25s linear infinite; }
@keyframes ta-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ta-plain { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ta-tent { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.98) translateY(-2px) } }
@keyframes ta-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes ta-general { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ta-troops { 0% { background-position: 0 0 } 100% { background-position: -100px 0 } }

.scn-independent-tribes { background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 50%, #4a5a4a 100%), radial-gradient(ellipse at 50% 100%, #4a5a4a 0%, transparent 70%); }
.scn-independent-tribes .sky-overcast { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #aabaaa 0%, #8a9a8a 80%, transparent 100%); animation: it-sky 30s ease-in-out infinite alternate; }
.scn-independent-tribes .hills-bg { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); border-radius: 40% 60% 0 0 / 50% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.2); animation: it-hills 25s ease-in-out infinite; }
.scn-independent-tribes .river { position:absolute; bottom:15%; left:20%; right:20%; height:12px; background: linear-gradient(90deg, #7a9a9a 0%, #6a8a8a 50%, #7a9a9a 100%); border-radius: 50%; filter: blur(2px); animation: it-river 40s linear infinite; }
.scn-independent-tribes .campfire { position:absolute; bottom:8%; left:50%; width:30px; height:30px; transform: translateX(-50%); background: radial-gradient(circle at 50% 60%, #c08040 0%, #a06020 40%, #4a2a0a 70%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(192,128,64,0.3); animation: it-fire 6s ease-in-out infinite; }
.scn-independent-tribes .figure-a { position:absolute; bottom:5%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: it-figure 12s ease-in-out infinite; }
.scn-independent-tribes .figure-b { position:absolute; bottom:5%; 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: it-figure 14s ease-in-out infinite reverse; }
.scn-independent-tribes .figure-c { position:absolute; bottom:5%; left:70%; width:20px; height:36px; background: linear-gradient(180deg, #2a4a3a 0%, #0a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: it-figure 16s ease-in-out infinite; }
@keyframes it-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes it-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes it-river { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.02) } 100% { transform: translateX(-10px) scaleX(1) } }
@keyframes it-fire { 0% { transform: translateX(-50%) scale(1) } 25% { transform: translateX(-50%) scale(1.05) translateY(-2px) } 50% { transform: translateX(-50%) scale(0.95) translateY(0) } 75% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes it-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-updated-editions { background: linear-gradient(180deg, #b0a8a0 0%, #908880 50%, #706860 100%), radial-gradient(ellipse at 50% 0%, #c0b8b0 0%, transparent 70%); }
.scn-updated-editions .wall-left { position:absolute; inset:0 60% 0 0; background: linear-gradient(180deg, #a09890 0%, #807870 100%); box-shadow: inset -4px 0 8px rgba(0,0,0,0.2); animation: ue-wall 30s ease-in-out infinite; }
.scn-updated-editions .wall-right { position:absolute; inset:0 0 0 60%; background: linear-gradient(180deg, #b0a8a0 0%, #908880 100%); box-shadow: inset 4px 0 8px rgba(0,0,0,0.2); animation: ue-wall 30s ease-in-out infinite reverse; }
.scn-updated-editions .bookshelf { position:absolute; bottom:20%; left:5%; right:5%; height:50%; background: linear-gradient(180deg, #605850 0%, #403830 100%); border-radius: 4px; box-shadow: inset 0 8px 16px rgba(0,0,0,0.4); animation: ue-shelf 15s ease-in-out infinite; }
.scn-updated-editions .desk { position:absolute; bottom:0; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #7a6e5a 0%, #5a4e3a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); animation: ue-desk 20s ease-in-out infinite; }
.scn-updated-editions .lamp { position:absolute; bottom:28%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #c0b090 0%, #8a7a6a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 15px rgba(255,200,150,0.4); transform-origin: bottom; animation: ue-lamp 8s ease-in-out infinite; }
.scn-updated-editions .figure-reading { position:absolute; bottom:15%; left:35%; width:28px; height:50px; background: linear-gradient(180deg, #5a4e3a 0%, #3a2e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 0 8px rgba(0,0,0,0.4); animation: ue-figure 6s ease-in-out infinite; }
.scn-updated-editions .window { position:absolute; top:10%; left:20%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 50%, #d0c8c0 0%, #b0a8a0 100%); border-radius: 4px; border: 4px solid #706860; box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 0 40px rgba(200,190,180,0.3); animation: ue-window 12s ease-in-out infinite; }
@keyframes ue-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ue-shelf { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.99) } 100% { transform: scaleY(1) } }
@keyframes ue-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ue-lamp { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes ue-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(0) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ue-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 0 40px rgba(200,190,180,0.3); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.15), 0 0 60px rgba(200,190,180,0.5); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 0 40px rgba(200,190,180,0.3); } }

.scn-freedom { background: linear-gradient(180deg, #0d0d20 0%, #1a1a3a 50%, #2a1a2a 100%), radial-gradient(ellipse at 50% 100%, #3a1a2a 0%, transparent 70%); }

.scn-freedom .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #151530 0%, transparent 100%); animation: free-sky 14s ease-in-out infinite alternate; }

.scn-freedom .city { position: absolute; bottom: 30%; left: 10%; right: 10%; height: 25%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,.6); }

.scn-freedom .trophy { position: absolute; bottom: 38%; left: 50%; width: 60px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: free-trophy 8s ease-in-out infinite; }

.scn-freedom .shield { position: absolute; bottom: 46%; left: calc(50% - 12px); width: 24px; height: 30px; background: radial-gradient(circle at 50% 40%, #8a6a4a 0%, #5a3a2a 70%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: free-shield 4s ease-in-out infinite alternate; }

.scn-freedom .spear { position: absolute; bottom: 50%; left: calc(50% + 20px); width: 2px; height: 50px; background: linear-gradient(180deg, #b0a080 0%, #7a6030 100%); transform: rotate(-15deg); transform-origin: bottom center; animation: free-spear 5s ease-in-out infinite; }

.scn-freedom .figure { position: absolute; bottom: 28%; left: 42%; width: 18px; height: 40px; background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: free-walk 4s ease-in-out infinite; }

.scn-freedom .torch { position: absolute; bottom: 30%; left: 38%; width: 4px; height: 14px; background: linear-gradient(180deg, #8a6a3a 0%, #3a2a1a 100%); border-radius: 2px; animation: free-torch 3s ease-in-out infinite; }

.scn-freedom .torch::after { content: ''; position: absolute; top: -10px; left: -6px; width: 14px; height: 14px; background: radial-gradient(circle, #ffa040 0%, #ff7030 40%, transparent 70%); border-radius: 50%; animation: free-fire 1.5s ease-in-out infinite alternate; }

.scn-freedom .cloud-a { position: absolute; top: 12%; left: 15%; width: 70px; height: 16px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(5px); animation: free-drift-a 40s linear infinite; }

.scn-freedom .cloud-b { position: absolute; top: 20%; right: 10%; width: 50px; height: 12px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.02) 100%); border-radius: 50%; filter: blur(4px); animation: free-drift-b 55s linear infinite reverse; }

@keyframes free-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }

@keyframes free-trophy { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }

@keyframes free-shield { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1) rotate(0); } }

@keyframes free-spear { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }

@keyframes free-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(1deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }

@keyframes free-torch { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }

@keyframes free-fire { 0% { opacity: .6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }

@keyframes free-drift-a { 0% { transform: translateX(-20px); } 100% { transform: translateX(110vw); } }

@keyframes free-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-90vw); } }

.scn-rivers-no-obstacle { background: linear-gradient(180deg, #0a0a1a 0%, #151530 40%, #1a1a3a 100%), radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 70%); }

.scn-rivers-no-obstacle .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #101028 0%, transparent 100%); animation: riv-sky 15s ease-in-out infinite alternate; }

.scn-rivers-no-obstacle .far-bank { position: absolute; bottom: 40%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 100% 60% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,.5); }

.scn-rivers-no-obstacle .river { position: absolute; bottom: 30%; left: 0; right: 0; height: 15%; background: linear-gradient(90deg, #0a1a2a 0%, #1a2a4a 50%, #0a1a2a 100%); box-shadow: inset 0 4px 12px rgba(0,0,20,.6); animation: riv-flow 3s ease-in-out infinite alternate; }

.scn-rivers-no-obstacle .near-bank { position: absolute; bottom: 18%; left: -10%; right: -10%; height: 18%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 0 0 40% 30% / 0 0 80% 60%; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }

.scn-rivers-no-obstacle .soldier-1 { position: absolute; bottom: 22%; left: 20%; width: 16px; height: 36px; background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: riv-march-1 5s ease-in-out infinite; }

.scn-rivers-no-obstacle .soldier-2 { position: absolute; bottom: 22%; left: 35%; width: 16px; height: 36px; background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: riv-march-2 5.5s ease-in-out infinite; animation-delay: -2s; }

.scn-rivers-no-obstacle .spear-1 { position: absolute; bottom: 30%; left: calc(20% + 8px); width: 2px; height: 40px; background: linear-gradient(180deg, #b0a080 0%, #7a6030 100%); transform: rotate(20deg); transform-origin: bottom center; animation: riv-spear 4s ease-in-out infinite; }

.scn-rivers-no-obstacle .spear-2 { position: absolute; bottom: 30%; left: calc(35% + 8px); width: 2px; height: 40px; background: linear-gradient(180deg, #b0a080 0%, #7a6030 100%); transform: rotate(15deg); transform-origin: bottom center; animation: riv-spear 4.5s ease-in-out infinite; animation-delay: -1.5s; }

.scn-rivers-no-obstacle .moon { position: absolute; top: 10%; right: 20%; width: 28px; height: 28px; background: radial-gradient(circle at 50% 50%, #d0d0e0 0%, #9090a0 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 4px rgba(144,144,160,.3); animation: riv-moon 20s ease-in-out infinite alternate; }

@keyframes riv-sky { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }

@keyframes riv-flow { 0% { background-position-x: 0; } 100% { background-position-x: 20px; } }

@keyframes riv-march-1 { 0% { transform: translateX(0) rotate(-1deg) scaleY(1); } 25% { transform: translateX(8px) rotate(1deg) scaleY(1.02); } 50% { transform: translateX(16px) rotate(-1deg) scaleY(1); } 75% { transform: translateX(8px) rotate(1deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(-1deg) scaleY(1); } }

@keyframes riv-march-2 { 0% { transform: translateX(0) rotate(1deg) scaleY(1); } 25% { transform: translateX(8px) rotate(-1deg) scaleY(1.02); } 50% { transform: translateX(16px) rotate(1deg) scaleY(1); } 75% { transform: translateX(8px) rotate(-1deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(1deg) scaleY(1); } }

@keyframes riv-spear { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }

@keyframes riv-moon { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-5px) translateY(3px) scale(0.98); } 100% { transform: translateX(0) translateY(0) scale(1); } }

.scn-return-to-hellas { background: linear-gradient(180deg, #0d0d20 0%, #1a1a30 40%, #2a1a1a 100%), radial-gradient(ellipse at 60% 100%, #3a1a1a 0%, transparent 70%); }

.scn-return-to-hellas .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #101028 0%, transparent 100%); animation: hel-sky 12s ease-in-out infinite alternate; }

.scn-return-to-hellas .mountains { position: absolute; bottom: 35%; left: -5%; right: -5%; height: 20%; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.5); }

.scn-return-to-hellas .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); }

.scn-return-to-hellas .wagon-burn { position: absolute; bottom: 28%; left: 30%; width: 50px; height: 30px; background: linear-gradient(180deg, #5a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 0 20px 6px #a04020; animation: hel-wagon 8s ease-in-out infinite; }

.scn-return-to-hellas .fire-core { position: absolute; bottom: 32%; left: calc(30% + 15px); width: 20px; height: 20px; background: radial-gradient(circle, #ff8040 0%, #ff5020 50%, transparent 70%); border-radius: 50%; animation: hel-fire 1.5s ease-in-out infinite alternate; }

.scn-return-to-hellas .column-silhouette { position: absolute; bottom: 20%; left: 10%; width: 100px; height: 40px; background: linear-gradient(90deg, #1a1a2a 0%, transparent 50%, #1a1a2a 100%); clip-path: polygon(0% 100%, 5% 0%, 15% 0%, 20% 100%, 25% 100%, 30% 0%, 40% 0%, 45% 100%, 50% 100%, 55% 0%, 65% 0%, 70% 100%, 75% 100%, 80% 0%, 90% 0%, 95% 100%); animation: hel-march 12s linear infinite; }

.scn-return-to-hellas .spear { position: absolute; bottom: 30%; left: 42%; width: 2px; height: 50px; background: linear-gradient(180deg, #b0a080 0%, #7a6030 100%); transform: rotate(10deg); transform-origin: bottom center; animation: hel-spear 5s ease-in-out infinite; }

.scn-return-to-hellas .dust { position: absolute; bottom: 18%; left: 20%; right: 20%; height: 10%; background: linear-gradient(90deg, rgba(60,50,40,.3) 0%, rgba(30,25,20,.1) 50%, rgba(60,50,40,.3) 100%); border-radius: 50%; filter: blur(8px); animation: hel-dust 6s ease-in-out infinite alternate; }

@keyframes hel-sky { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }

@keyframes hel-wagon { 0% { transform: translateY(0) rotate(0); box-shadow: 0 0 20px 6px #a04020; } 50% { transform: translateY(-4px) rotate(2deg); box-shadow: 0 0 30px 10px #c05030; } 100% { transform: translateY(0) rotate(0); box-shadow: 0 0 20px 6px #a04020; } }

@keyframes hel-fire { 0% { opacity: .7; transform: scale(1); } 100% { opacity: 1; transform: scale(1.3); } }

@keyframes hel-march { 0% { transform: translateX(-20px); } 100% { transform: translateX(20px); } }

@keyframes hel-spear { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }

@keyframes hel-dust { 0% { opacity: .5; transform: scaleX(1); } 100% { opacity: .2; transform: scaleX(1.1); } }

.scn-discipline { background: linear-gradient(180deg, #0a0a1a 0%, #151530 40%, #1a1a3a 100%), radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 70%); }

.scn-discipline .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #101028 0%, transparent 100%); animation: dis-sky 13s ease-in-out infinite alternate; }

.scn-discipline .platform { position: absolute; bottom: 25%; left: 30%; right: 30%; height: 10%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 14px rgba(0,0,0,.5); }

.scn-discipline .speaker { position: absolute; bottom: 30%; left: 42%; width: 18px; height: 35px; background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dis-speak 4s ease-in-out infinite; }

.scn-discipline .raised-hand-1 { position: absolute; bottom: 35%; left: 20%; width: 8px; height: 14px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 0 0; transform: rotate(-20deg); transform-origin: bottom center; animation: dis-hand 3s ease-in-out infinite; }

.scn-discipline .raised-hand-2 { position: absolute; bottom: 35%; left: 35%; width: 8px; height: 14px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 0 0; transform: rotate(-15deg); transform-origin: bottom center; animation: dis-hand 3.5s ease-in-out infinite; animation-delay: -1s; }

.scn-discipline .raised-hand-3 { position: absolute; bottom: 35%; left: 55%; width: 8px; height: 14px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 0 0; transform: rotate(-25deg); transform-origin: bottom center; animation: dis-hand 4s ease-in-out infinite; animation-delay: -2s; }

.scn-discipline .banner { position: absolute; bottom: 28%; left: 55%; width: 4px; height: 40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); transform: rotate(5deg); transform-origin: bottom center; }

.scn-discipline .banner::after { content: ''; position: absolute; top: -8px; left: -12px; width: 28px; height: 16px; background: linear-gradient(180deg, #8a6040 0%, #5a3a2a 100%); border-radius: 2px 10px 10px 2px; animation: dis-flag 6s ease-in-out infinite; }

.scn-discipline .torch-l { position: absolute; bottom: 28%; left: 25%; width: 4px; height: 16px; background: linear-gradient(180deg, #8a6a3a 0%, #3a2a1a 100%); border-radius: 2px; animation: dis-torch 3s ease-in-out infinite; }

.scn-discipline .torch-l::after { content: ''; position: absolute; top: -12px; left: -8px; width: 20px; height: 20px; background: radial-gradient(circle, #ff8040 0%, #ff5020 40%, transparent 70%); border-radius: 50%; animation: dis-fire 1.2s ease-in-out infinite alternate; }

.scn-discipline .torch-r { position: absolute; bottom: 28%; right: 25%; width: 4px; height: 16px; background: linear-gradient(180deg, #8a6a3a 0%, #3a2a1a 100%); border-radius: 2px; animation: dis-torch 3.5s ease-in-out infinite; animation-delay: -1s; }

.scn-discipline .torch-r::after { content: ''; position: absolute; top: -12px; left: -8px; width: 20px; height: 20px; background: radial-gradient(circle, #ff8040 0%, #ff5020 40%, transparent 70%); border-radius: 50%; animation: dis-fire 1.4s ease-in-out infinite alternate; animation-delay: -0.5s; }

@keyframes dis-sky { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }

@keyframes dis-speak { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }

@keyframes dis-hand { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.1); } 100% { transform: rotate(-20deg) scaleY(1); } }

@keyframes dis-flag { 0% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.05); } 100% { transform: rotate(0) scaleX(1); } }

@keyframes dis-torch { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }

@keyframes dis-fire { 0% { opacity: .6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.3); } }

/* Xenophon Recounts Benefits */
.scn-xenophon-recounts-benefits {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2820 100%),
    radial-gradient(ellipse at 40% 60%, rgba(200,120,60,0.25) 0%, transparent 70%);
}
.scn-xenophon-recounts-benefits .tent-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1e16 0%, #3a2a20 50%, #2a1e16 100%);
  border-radius: 0 0 60% 60% / 0 0 30% 30%;
  animation: xrb-tent 15s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-benefits .fire-pit {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 60px;
  height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #e89040 0%, #c06030 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,80,40,0.6);
  animation: xrb-fire 2s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-benefits .xenophon-silhouette {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #140e0a 0%, #0a0806 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: xrb-speak 4s ease-in-out infinite;
}
.scn-xenophon-recounts-benefits .listener-sil {
  position: absolute;
  bottom: 28%;
  left: 58%;
  width: 26px;
  height: 44px;
  background: #0c0a08;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: scaleX(-1);
  animation: xrb-listener 6s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-benefits .listener-sil2 {
  position: absolute;
  bottom: 26%;
  left: 52%;
  width: 24px;
  height: 38px;
  background: #0e0c0a;
  border-radius: 45% 40% 35% 35% / 55% 50% 40% 40%;
  animation: xrb-listener2 7s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-benefits .table {
  position: absolute;
  bottom: 24%;
  left: 44%;
  width: 70px;
  height: 8px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.7);
  animation: xrb-table 3s ease-in-out infinite alternate;
}
.scn-xenophon-recounts-benefits .cup {
  position: absolute;
  bottom: 27%;
  left: 47%;
  width: 12px;
  height: 16px;
  background: linear-gradient(180deg, #6a4030 0%, #3a2020 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.6);
  animation: xrb-cup 2.5s ease-in-out infinite alternate;
}
@keyframes xrb-tent { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes xrb-fire { 0% { transform: translateX(-50%) scale(1); filter: brightness(1); } 50% { transform: translateX(-50%) scale(1.05); filter: brightness(1.2); } 100% { transform: translateX(-50%) scale(0.95); filter: brightness(0.9); } }
@keyframes xrb-speak { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xrb-listener { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 50% { transform: scaleX(-1) translateY(-2px) rotate(2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(-1deg); } }
@keyframes xrb-listener2 { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes xrb-table { 0% { box-shadow: 0 4px 6px rgba(0,0,0,0.7); } 50% { box-shadow: 0 6px 10px rgba(0,0,0,0.8); } 100% { box-shadow: 0 4px 6px rgba(0,0,0,0.7); } }
@keyframes xrb-cup { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* Agasias Testifies */
.scn-agasias-testifies {
  background: 
    linear-gradient(180deg, #1c1410 0%, #281e18 50%, #342420 100%),
    radial-gradient(ellipse at 60% 70%, rgba(180,100,50,0.3) 0%, transparent 60%);
}
.scn-agasias-testifies .tent-pole {
  position: absolute;
  left: 30%;
  top: 10%;
  width: 4px;
  height: 80%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
  animation: aga-pole 6s ease-in-out infinite alternate;
}
.scn-agasias-testifies .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100c 100%);
  border-radius: 20% 20% 0 0;
}
.scn-agasias-testifies .agasias-figure {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 30px;
  height: 52px;
  background: linear-gradient(180deg, #0e0c0a 0%, #080604 100%);
  border-radius: 50% 45% 35% 35% / 60% 55% 40% 40%;
  transform-origin: bottom center;
  animation: aga-stand 4s ease-in-out infinite;
}
.scn-agasias-testifies .torch {
  position: absolute;
  bottom: 55%;
  left: 35%;
  width: 6px;
  height: 20px;
  background: linear-gradient(180deg, #a05030 0%, #603020 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(200,120,60,0.8);
  animation: aga-torch-flicker 1.5s ease-in-out infinite alternate;
}
.scn-agasias-testifies .torch-glow {
  position: absolute;
  bottom: 50%;
  left: 34%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, rgba(220,140,60,0.5) 0%, transparent 60%);
  border-radius: 50%;
  animation: aga-glow-pulse 2s ease-in-out infinite alternate;
}
.scn-agasias-testifies .listener-shape {
  position: absolute;
  bottom: 28%;
  left: 52%;
  width: 22px;
  height: 40px;
  background: #0a0806;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: aga-listen 5s ease-in-out infinite alternate;
}
.scn-agasias-testifies .listener-shape2 {
  position: absolute;
  bottom: 30%;
  left: 56%;
  width: 20px;
  height: 36px;
  background: #0c0a08;
  border-radius: 45% 40% 30% 30% / 55% 50% 40% 40%;
  animation: aga-listen2 7s ease-in-out infinite alternate;
}
.scn-agasias-testifies .shadow-stripe {
  position: absolute;
  top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  pointer-events: none;
  animation: aga-stripe 12s ease-in-out infinite alternate;
}
@keyframes aga-pole { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes aga-stand { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes aga-torch-flicker { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.8; } }
@keyframes aga-glow-pulse { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes aga-listen { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes aga-listen2 { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aga-stripe { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Heraclides Exposed */
.scn-heraclides-exposed {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 50%, #382820 100%),
    radial-gradient(ellipse at 35% 50%, rgba(180,90,40,0.3) 0%, transparent 60%);
}
.scn-heraclides-exposed .chamber-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a1e16 0%, #3a2a20 40%, #2a1e16 100%);
  border-radius: 0 0 40% 40%;
  animation: hera-bg 18s ease-in-out infinite alternate;
}
.scn-heraclides-exposed .accuser-arm {
  position: absolute;
  bottom: 35%;
  left: 40%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #0e0c0a 0%, #080604 100%);
  border-radius: 50% 20% 20% 10% / 60% 20% 20% 30%;
  transform: rotate(30deg);
  transform-origin: bottom left;
  animation: hera-arm 3s ease-in-out infinite alternate;
}
.scn-heraclides-exposed .heraclides-figure {
  position: absolute;
  bottom: 28%;
  left: 52%;
  width: 28px;
  height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0a08 100%);
  border-radius: 50% 45% 35% 35% / 60% 55% 40% 40%;
  transform: scaleX(-1);
  animation: hera-cringe 4s ease-in-out infinite;
}
.scn-heraclides-exposed .seuthes-figure {
  position: absolute;
  bottom: 30%;
  left: 32%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #0e0c0a 0%, #080604 100%);
  border-radius: 50% 45% 35% 35% / 60% 55% 40% 40%;
  animation: hera-seuthes 6s ease-in-out infinite alternate;
}
.scn-heraclides-exposed .table-lamp {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 10px;
  height: 18px;
  background: linear-gradient(180deg, #b07040 0%, #805028 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 16px 6px rgba(200,120,50,0.8);
  animation: hera-lamp 2.5s ease-in-out infinite alternate;
}
.scn-heraclides-exposed .lamp-glow {
  position: absolute;
  bottom: 22%;
  left: 44%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, rgba(220,140,60,0.4) 0%, transparent 60%);
  border-radius: 50%;
  animation: hera-glow 2s ease-in-out infinite alternate;
}
@keyframes hera-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hera-arm { 0% { transform: rotate(20deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(25deg); } }
@keyframes hera-cringe { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 25% { transform: scaleX(-1) translateY(-3px) rotate(-5deg); } 50% { transform: scaleX(-1) translateY(-1px) rotate(3deg); } 75% { transform: scaleX(-1) translateY(-2px) rotate(-2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes hera-seuthes { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hera-lamp { 0% { transform: scaleY(1); box-shadow: 0 0 16px 6px rgba(200,120,50,0.8); } 50% { transform: scaleY(1.1); box-shadow: 0 0 24px 10px rgba(200,120,50,1); } 100% { transform: scaleY(0.95); box-shadow: 0 0 14px 4px rgba(200,120,50,0.7); } }
@keyframes hera-glow { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }

/* Medosades Comes */
.scn-medosades-comes {
  background: 
    linear-gradient(180deg, #6b7a7e 0%, #8a9a9c 30%, #a0b0b2 60%, #b8c4c6 100%),
    radial-gradient(ellipse at 50% 0%, #d0d8da 0%, transparent 70%);
}
.scn-medosades-comes .sky-overcast {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a8c 0%, #a0b0b2 100%);
  animation: medo-sky 20s ease-in-out infinite alternate;
}
.scn-medosades-comes .ground-plain {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-medosades-comes .medosades-mount {
  position: absolute;
  bottom: 32%;
  left: 40%;
  width: 36px;
  height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: medo-mount 6s ease-in-out infinite alternate;
}
.scn-medosades-comes .medosades-riders {
  position: absolute;
  bottom: 33%;
  left: 48%;
  width: 12px;
  height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  animation: medo-rider1 7s ease-in-out infinite alternate;
}
.scn-medosades-comes .odrysian-flag {
  position: absolute;
  bottom: 45%;
  left: 42%;
  width: 4px;
  height: 40px;
  background: #2a1a0a;
  border-radius: 1px;
  animation: medo-flagpole 8s ease-in-out infinite alternate;
}
.scn-medosades-comes .odrysian-flag::after {
  content: '';
  display: block;
  position: absolute;
  bottom: 100%;
  left: 0;
  width: 16px;
  height: 10px;
  background: linear-gradient(90deg, #6a3a2a 0%, #a04a3a 50%, #6a3a2a 100%);
  border-radius: 0 60% 60% 0;
  animation: medo-flagwave 2s ease-in-out infinite alternate;
}
.scn-medosades-comes .xenophon-camp {
  position: absolute;
  bottom: 28%;
  left: 60%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: medo-camp 10s ease-in-out infinite alternate;
}
.scn-medosades-comes .wind-sweep {
  position: absolute;
  top: 20%;
  left: 10%;
  right: 10%;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.15) 50%, transparent 100%);
  filter: blur(2px);
  animation: medo-wind 4s ease-in-out infinite alternate;
}
.scn-medosades-comes .dust-particles {
  position: absolute;
  top: 30%;
  left: 20%;
  width: 100px;
  height: 30px;
  background: radial-gradient(circle at 10% 50%, rgba(200,180,160,0.3) 0%, transparent 60%);
  filter: blur(4px);
  animation: medo-dust 12s linear infinite;
}
@keyframes medo-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes medo-mount { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes medo-rider1 { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes medo-flagpole { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes medo-flagwave { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(4deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes medo-camp { 0% { transform: scaleY(1); box-shadow: 0 4px 8px rgba(0,0,0,0.5); } 50% { transform: scaleY(1.02); box-shadow: 0 6px 12px rgba(0,0,0,0.6); } 100% { transform: scaleY(1); box-shadow: 0 4px 8px rgba(0,0,0,0.5); } }
@keyframes medo-wind { 0% { transform: translateX(0); opacity: 0.3; } 50% { transform: translateX(10px); opacity: 0.6; } 100% { transform: translateX(-5px); opacity: 0.4; } }
@keyframes medo-dust { 0% { transform: translateX(0); } 100% { transform: translateX(-150px); } }

/* Scene 1: embassy-sent (tense, sunlit) */
.scn-embassy-sent {
  background:
    linear-gradient(180deg, #4f8ec9 0%, #83b8e6 40%, #f9e38a 100%),
    radial-gradient(circle at 70% 10%, #fff4c0 0%, transparent 60%);
}

.scn-embassy-sent .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6ba3d9 0%, transparent 100%);
  animation: emb-sky 8s ease-in-out infinite alternate;
}
.scn-embassy-sent .sun {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8d0 0%, #f9d66a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(249,214,106,0.5);
  animation: emb-sun 12s ease-in-out infinite alternate;
}
.scn-embassy-sent .hill {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(135deg, #7a9c5a 0%, #4a6a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  animation: emb-hill 18s ease-in-out infinite alternate;
}
.scn-embassy-sent .general-a {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: emb-figure 3s ease-in-out infinite;
}
.scn-embassy-sent .general-b {
  position: absolute; bottom: 22%; left: 42%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: emb-figure 3.6s ease-in-out infinite 0.3s;
}
.scn-embassy-sent .messenger {
  position: absolute; bottom: 22%; left: 54%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #e0c090 0%, #8a6a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: emb-run 2s ease-in-out infinite;
}
.scn-embassy-sent .spear {
  position: absolute; bottom: 50%; left: 60%; width: 3px; height: 70px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  transform-origin: bottom center;
  animation: emb-spear 1.5s ease-in-out infinite alternate;
}
.scn-embassy-sent .dust {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,150,100,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: emb-dust 4s ease-in-out infinite;
}

@keyframes emb-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes emb-sun { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes emb-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0); } }
@keyframes emb-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes emb-run { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes emb-spear { 0% { transform: rotate(-5deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-5deg); } }
@keyframes emb-dust { 0% { opacity:0; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.5); } 100% { opacity:0; transform: scaleX(2); } }

/* Scene 2: soldiers-forage (calm, sunlit) */
.scn-soldiers-forage {
  background:
    linear-gradient(180deg, #a0d8ef 0%, #c3e8f7 50%, #e8f5d0 100%),
    radial-gradient(ellipse at 30% 70%, #f9e38a 0%, transparent 60%);
}

.scn-soldiers-forage .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8e0f0 0%, transparent 100%);
  animation: for-sky 15s ease-in-out infinite alternate;
}
.scn-soldiers-forage .sun {
  position: absolute; top: 10%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8d0 0%, #f9d66a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 15px rgba(249,214,106,0.4);
  animation: for-sun 20s ease-in-out infinite alternate;
}
.scn-soldiers-forage .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8fb580 0%, #6a8a4a 40%, #4a6a2a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: for-ground 12s ease-in-out infinite;
}
.scn-soldiers-forage .ox {
  position: absolute; bottom: 30%; left: 25%; width: 90px; height: 50px;
  background: linear-gradient(180deg, #b09070 0%, #7a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: for-ox 8s ease-in-out infinite alternate;
}
.scn-soldiers-forage .soldier-a {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: for-bend 5s ease-in-out infinite;
}
.scn-soldiers-forage .soldier-b {
  position: absolute; bottom: 28%; left: 60%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: for-bend 5.5s ease-in-out infinite 1s;
}
.scn-soldiers-forage .firewood {
  position: absolute; bottom: 32%; left: 70%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: for-wood 10s ease-in-out infinite;
}
.scn-soldiers-forage .smoke {
  position: absolute; bottom: 55%; left: 72%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,200,180,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: for-smoke 12s linear infinite;
}

@keyframes for-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes for-sun { 0% { transform: scale(1); opacity:0.95; } 50% { transform: scale(1.03); } 100% { transform: scale(0.97); opacity:0.9; } }
@keyframes for-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes for-ox { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.02) rotate(-1deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes for-bend { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-5deg); } }
@keyframes for-wood { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes for-smoke { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-20px) scale(1.5); opacity:0.6; } 100% { transform: translateY(-40px) scale(2); opacity:0; } }

/* Scene 3: arrows-and-shields (calm, sunlit) */
.scn-arrows-and-shields {
  background:
    linear-gradient(180deg, #b8d8e8 0%, #d0e4f0 40%, #f0e0a0 100%),
    radial-gradient(circle at 80% 20%, #fff4c0 0%, transparent 50%);
}

.scn-arrows-and-shields .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #c0e0f0 0%, transparent 100%);
  animation: arr-sky 20s ease-in-out infinite alternate;
}
.scn-arrows-and-shields .rays {
  position: absolute; top: 0; left: 20%; width: 120px; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 100%);
  animation: arr-rays 25s linear infinite;
}
.scn-arrows-and-shields .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  animation: arr-ground 15s ease-in-out infinite;
}
.scn-arrows-and-shields .arrow-pile {
  position: absolute; bottom: 20%; left: 10%; width: 200px; height: 30px;
  background: repeating-linear-gradient(90deg, #5a3a1a 0px, #5a3a1a 2px, transparent 2px, transparent 8px);
  border-radius: 10px;
  animation: arr-arrow 3s ease-in-out infinite alternate;
}
.scn-arrows-and-shields .wicker-shield {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d0b080 0%, #a08050 100%);
  border-radius: 50%;
  border: 2px solid #705030;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: arr-shield 6s ease-in-out infinite alternate;
}
.scn-arrows-and-shields .huge-shield {
  position: absolute; bottom: 25%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: arr-huge 8s ease-in-out infinite;
}
.scn-arrows-and-shields .helmet {
  position: absolute; bottom: 40%; left: 75%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #908070 0%, #605050 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  animation: arr-helmet 10s ease-in-out infinite alternate;
}

@keyframes arr-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes arr-rays { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(30px) rotate(2deg); } 100% { transform: translateX(-30px) rotate(-2deg); } }
@keyframes arr-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes arr-arrow { 0% { background-position: 0 0; } 100% { background-position: -100px 0; } }
@keyframes arr-shield { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes arr-huge { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-2deg) scaleY(1.01); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes arr-helmet { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene 4: king-demands-arms (tense, sunlit) */
.scn-king-demands-arms {
  background:
    linear-gradient(180deg, #c0a060 0%, #e0c080 30%, #f0e0a0 60%, #fff8d0 100%),
    radial-gradient(ellipse at 50% 20%, #fff4c0 0%, transparent 70%);
}

.scn-king-demands-arms .tent {
  position: absolute; top: 0; left: 15%; width: 70%; height: 40%;
  background: linear-gradient(180deg, #c8a860 0%, #a08040 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: king-tent 10s ease-in-out infinite alternate;
}
.scn-king-demands-arms .pole {
  position: absolute; top: 0; left: 50%; width: 4px; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  transform: translateX(-50%);
  animation: king-pole 4s ease-in-out infinite;
}
.scn-king-demands-arms .throne {
  position: absolute; bottom: 30%; left: 38%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #806040 0%, #4a3020 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: king-throne 6s ease-in-out infinite;
}
.scn-king-demands-arms .herald {
  position: absolute; bottom: 22%; left: 50%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #e0c090 0%, #8a6a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: king-herald 2.5s ease-in-out infinite;
}
.scn-king-demands-arms .general-a {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: king-general 4s ease-in-out infinite 0.5s;
}
.scn-king-demands-arms .general-b {
  position: absolute; bottom: 22%; left: 42%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: king-general 4.5s ease-in-out infinite 1s;
}
.scn-king-demands-arms .scepter {
  position: absolute; bottom: 40%; left: 52%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #d0a050 0%, #806020 100%);
  transform-origin: bottom center;
  animation: king-scepter 3s ease-in-out infinite alternate;
}
.scn-king-demands-arms .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: king-shadow 8s ease-in-out infinite;
}

@keyframes king-tent { 0% { transform: skewX(0deg); } 50% { transform: skewX(-2deg); } 100% { transform: skewX(0deg); } }
@keyframes king-pole { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes king-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes king-herald { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes king-general { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes king-scepter { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes king-shadow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-cheirisophus-crosses {
  background: 
    linear-gradient(180deg, #c48a5a 0%, #d9a86c 20%, #f2c88e 40%, #d4a56a 60%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 0%, #fce6b4 0%, transparent 70%);
}
.scn-cheirisophus-crosses .sky-dawn {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #e8b878 0%, #d49a5a 40%, #b07840 70%, #603820 100%);
  animation: cc-sky 14s ease-in-out infinite alternate;
}
.scn-cheirisophus-crosses .river {
  position:absolute; bottom:20%; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #4a7a8a 0%, #3a5a6a 50%, #2a3a4a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: cc-river 10s ease-in-out infinite alternate;
}
.scn-cheirisophus-crosses .far-bank {
  position:absolute; bottom:18%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.4);
}
.scn-cheirisophus-crosses .cheirisophus {
  position:absolute; bottom:16%; left:40%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cc-walk 4s ease-in-out infinite;
}
.scn-cheirisophus-crosses .wreath {
  position:absolute; bottom:42%; left:40%; width:12px; height:6px;
  background: #6a5a2a;
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 -2px 6px rgba(106,90,42,.6);
  animation: cc-bob 3s ease-in-out infinite;
}
.scn-cheirisophus-crosses .soothsayer {
  position:absolute; bottom:15%; left:55%; width:18px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: cc-kneel 6s ease-in-out infinite;
}
.scn-cheirisophus-crosses .arrow-fly {
  position:absolute; top:30%; right:20%; width:16px; height:4px;
  background: linear-gradient(90deg, #8a6a4a 0%, transparent 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: cc-arrow 2s ease-in infinite;
}
.scn-cheirisophus-crosses .cloak {
  position:absolute; bottom:16%; left:38%; width:24px; height:30px;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 50% 20% 20% / 0 80% 40% 40%;
  transform: rotate(15deg);
  animation: cc-cloak 4s ease-in-out infinite alternate;
}
@keyframes cc-sky { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:.95; transform: scaleY(1.02); } 100% { opacity:.7; transform: scaleY(0.98); } }
@keyframes cc-river { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes cc-walk { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes cc-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cc-kneel { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(0.95); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes cc-arrow { 0% { transform: translateX(0) rotate(-15deg); opacity:1; } 50% { transform: translateX(-30px) rotate(-5deg); opacity:.6; } 100% { transform: translateX(-60px) rotate(5deg); opacity:0; } }
@keyframes cc-cloak { 0% { transform: rotate(12deg) scaleX(1); } 50% { transform: rotate(18deg) scaleX(1.1); } 100% { transform: rotate(12deg) scaleX(1); } }

.scn-carduchians-attack-rear {
  background:
    linear-gradient(180deg, #b08060 0%, #c89870 20%, #dbb088 40%, #b88060 60%, #604830 100%),
    radial-gradient(ellipse at 50% 0%, #edc898 0%, transparent 70%);
}
.scn-carduchians-attack-rear .sky-dawn {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #d4a870 0%, #b88050 40%, #a06840 70%, #704828 100%);
  animation: ca-sky 12s ease-in-out infinite alternate;
}
.scn-carduchians-attack-rear .hills-rear {
  position:absolute; bottom:30%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.5);
  animation: ca-hills 20s ease-in-out infinite alternate;
}
.scn-carduchians-attack-rear .column-path {
  position:absolute; bottom:28%; left:10%; width:80%; height:14%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 -4px 10px rgba(0,0,0,.4);
}
.scn-carduchians-attack-rear .xenophon-rear {
  position:absolute; bottom:30%; left:25%; width:18px; height:42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ca-turn 5s ease-in-out infinite;
}
.scn-carduchians-attack-rear .lycius-rear {
  position:absolute; bottom:31%; left:55%; width:16px; height:38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform: rotate(10deg);
  animation: ca-march 6s ease-in-out infinite;
}
.scn-carduchians-attack-rear .baggage {
  position:absolute; bottom:30%; left:45%; width:22px; height:24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: ca-shake 3s ease-in-out infinite;
}
.scn-carduchians-attack-rear .carduchian {
  position:absolute; bottom:55%; right:15%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-20deg);
  animation: ca-advance 8s ease-in-out infinite;
}
.scn-carduchians-attack-rear .arrow-volley {
  position:absolute; top:25%; left:30%; width:12px; height:3px;
  background: linear-gradient(90deg, #8a6a4a 0%, transparent 100%);
  border-radius: 1px;
  box-shadow: 20px 15px 0 #8a6a4a, -10px 25px 0 #8a6a4a;
  animation: ca-arrows 1.5s ease-in infinite;
}
@keyframes ca-sky { 0% { opacity:.85; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.75; transform: scaleY(0.98); } }
@keyframes ca-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ca-turn { 0% { transform: translateX(-50%) rotate(-3deg); } 30% { transform: translateX(-50%) rotate(5deg); } 60% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ca-march { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(4px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes ca-shake { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes ca-advance { 0% { transform: rotate(-20deg) translateX(0); opacity:.8; } 50% { transform: rotate(-15deg) translateX(-10px); opacity:1; } 100% { transform: rotate(-20deg) translateX(0); opacity:.8; } }
@keyframes ca-arrows { 0% { transform: translateY(0) rotate(-10deg); opacity:1; } 50% { transform: translateY(-10px) rotate(0deg); opacity:.7; } 100% { transform: translateY(-20px) rotate(10deg); opacity:0; } }

.scn-crossing-completed {
  background:
    linear-gradient(180deg, #c09060 0%, #d4a870 20%, #e8c088 40%, #c09060 60%, #70503a 100%),
    radial-gradient(ellipse at 50% 0%, #f0d8a0 0%, transparent 70%);
}
.scn-crossing-completed .sky-dawn {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #d4a070 0%, #b88050 40%, #a06840 70%, #704828 100%);
  animation: co-sky 15s ease-in-out infinite alternate;
}
.scn-crossing-completed .river-cross {
  position:absolute; bottom:25%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a7a8a 0%, #3a5a6a 50%, #2a3a4a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: co-river 8s ease-in-out infinite alternate;
}
.scn-crossing-completed .bugle {
  position:absolute; bottom:20%; left:35%; width:6px; height:20px;
  background: linear-gradient(180deg, #b08040 0%, #8a5a20 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-15deg);
  box-shadow: 0 0 10px 3px #c09050;
  animation: co-blast 2s ease-in-out infinite;
}
.scn-crossing-completed .hymn-group {
  position:absolute; bottom:22%; left:45%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 -4px 10px rgba(0,0,0,.4);
  animation: co-hymn 6s ease-in-out infinite;
}
.scn-crossing-completed .wounded {
  position:absolute; bottom:20%; right:25%; width:16px; height:34px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: co-wounded 5s ease-in-out infinite;
}
.scn-crossing-completed .fleeing-enemy {
  position:absolute; bottom:20%; right:8%; width:18px; height:38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-30deg);
  animation: co-flee 7s ease-in-out infinite;
}
.scn-crossing-completed .dust {
  position:absolute; bottom:30%; left:20%; width:60px; height:10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,140,100,.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: co-dust 20s linear infinite;
}
@keyframes co-sky { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.03); } 100% { opacity:.75; transform: scaleY(0.98); } }
@keyframes co-river { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes co-blast { 0% { transform: rotate(-15deg) scaleY(1); opacity:.7; } 50% { transform: rotate(-10deg) scaleY(1.2); opacity:1; box-shadow: 0 0 20px 6px #c09050; } 100% { transform: rotate(-15deg) scaleY(1); opacity:.7; } }
@keyframes co-hymn { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes co-wounded { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes co-flee { 0% { transform: rotate(-30deg) translateX(0); opacity:.9; } 50% { transform: rotate(-25deg) translateX(-8px); opacity:1; } 100% { transform: rotate(-30deg) translateX(0); opacity:.9; } }
@keyframes co-dust { 0% { transform: translateX(0) scaleX(1); opacity:.3; } 50% { transform: translateX(20px) scaleX(1.5); opacity:.5; } 100% { transform: translateX(0) scaleX(1); opacity:.3; } }

.scn-teleboas-river {
  background:
    linear-gradient(180deg, #7a8a7a 0%, #8a9a8a 20%, #9aaa9a 40%, #8a9a8a 60%, #5a6a5a 100%),
    radial-gradient(ellipse at 50% 0%, #aabaaa 0%, transparent 70%);
}
.scn-teleboas-river .sky-overcast {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #9a9a9a 0%, #7a7a7a 40%, #5a5a5a 70%, #3a3a3a 100%);
  animation: tb-sky 20s ease-in-out infinite alternate;
}
.scn-teleboas-river .plain {
  position:absolute; bottom:25%; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #6a7a5a 0%, #5a6a4a 50%, #4a5a3a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: tb-plain 15s ease-in-out infinite alternate;
}
.scn-teleboas-river .river-tele {
  position:absolute; bottom:28%; left:0; right:0; height:8%;
  background: linear-gradient(180deg, #5a7a8a 0%, #4a6a7a 50%, #3a5a6a 100%);
  border-radius: 0 0 50% 50%;
  animation: tb-river 10s ease-in-out infinite alternate;
}
.scn-teleboas-river .tent {
  position:absolute; bottom:26%; left:35%; width:30px; height:20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: tb-sway 6s ease-in-out infinite;
}
.scn-teleboas-river .treaty-table {
  position:absolute; bottom:26%; left:48%; width:20px; height:10px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: tb-fade 8s ease-in-out infinite alternate;
}
.scn-teleboas-river .tiribazus {
  position:absolute; bottom:25%; left:40%; width:18px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform: rotate(5deg);
  animation: tb-gesture 7s ease-in-out infinite;
}
.scn-teleboas-river .xenophon-meet {
  position:absolute; bottom:25%; left:55%; width:18px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform: rotate(-5deg);
  animation: tb-gesture2 7s ease-in-out infinite;
}
.scn-teleboas-river .horse {
  position:absolute; bottom:23%; left:38%; width:30px; height:16px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: tb-horse 8s ease-in-out infinite;
}
@keyframes tb-sky { 0% { opacity:.85; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.75; transform: scaleY(0.98); } }
@keyframes tb-plain { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes tb-river { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes tb-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes tb-fade { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes tb-gesture { 0% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(7deg) translateX(2px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes tb-gesture2 { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-7deg) translateX(-2px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes tb-horse { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-rearguard-in-danger {
  background:
    radial-gradient(ellipse at 50% 30%, #5a6a7a 0%, transparent 60%),
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%);
}
.scn-rearguard-in-danger .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6b7b8b 0%, transparent 100%);
  animation: rg-sky 8s ease-in-out infinite alternate;
}
.scn-rearguard-in-danger .mountains-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  filter: blur(2px);
  animation: rg-mountains 14s ease-in-out infinite alternate;
}
.scn-rearguard-in-danger .cliff-left {
  position: absolute; bottom: 20%; left: 5%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  box-shadow: inset -5px 0 10px rgba(0,0,0,.6);
}
.scn-rearguard-in-danger .cliff-right {
  position: absolute; bottom: 20%; right: 5%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 20% 100%);
  box-shadow: inset 5px 0 10px rgba(0,0,0,.6);
}
.scn-rearguard-in-danger .soldier {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rg-soldier 0.8s ease-in-out infinite alternate;
}
.scn-rearguard-in-danger .shield {
  position: absolute; bottom: 26%; left: 34%; width: 22px; height: 28px;
  background: radial-gradient(circle at 40% 40%, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(15deg);
  animation: rg-shield 1.2s ease-in-out infinite alternate;
}
.scn-rearguard-in-danger .arrow-1 {
  position: absolute; bottom: 50%; right: 25%; width: 30px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #8a6a4a 50%, #4a3a2a 100%);
  transform: rotate(-30deg);
  animation: rg-arrows 0.5s ease-in infinite;
  animation-delay: 0s;
}
.scn-rearguard-in-danger .arrow-2 {
  position: absolute; bottom: 55%; right: 40%; width: 28px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #8a6a4a 50%, #4a3a2a 100%);
  transform: rotate(-45deg);
  animation: rg-arrows 0.7s ease-in infinite;
  animation-delay: 0.3s;
}
.scn-rearguard-in-danger .dust-cloud {
  position: absolute; bottom: 18%; left: 20%; width: 60px; height: 20px;
  background: rgba(120,100,80,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: rg-dust 3s ease-in-out infinite alternate;
}
@keyframes rg-sky {
  0% { opacity: 0.7 }
  50% { opacity: 1 }
  100% { opacity: 0.6 }
}
@keyframes rg-mountains {
  0% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-2px) scaleY(1.02) }
  100% { transform: translateY(0) scaleY(1) }
}
@keyframes rg-soldier {
  0% { transform: translateX(0) translateY(0) rotate(0) }
  50% { transform: translateX(2px) translateY(-1px) rotate(-2deg) }
  100% { transform: translateX(0) translateY(0) rotate(0) }
}
@keyframes rg-shield {
  0% { transform: rotate(15deg) scale(1) }
  50% { transform: rotate(0deg) scale(0.95) }
  100% { transform: rotate(15deg) scale(1) }
}
@keyframes rg-arrows {
  0% { opacity: 1; transform: translateX(0) rotate(-30deg) }
  100% { opacity: 0; transform: translateX(-60px) rotate(-30deg) }
}
@keyframes rg-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3 }
  50% { transform: translateX(10px) scale(1.2); opacity: 0.5 }
  100% { transform: translateX(0) scale(1); opacity: 0.3 }
}

.scn-cheirisophus-explains {
  background:
    radial-gradient(ellipse at 50% 60%, #5a6a7a 0%, transparent 60%),
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%);
}
.scn-cheirisophus-explains .sky-overcast {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6b7b8b 0%, transparent 100%);
  animation: ch-sky 10s ease-in-out infinite alternate;
}
.scn-cheirisophus-explains .cliff-face {
  position: absolute; bottom: 10%; left: 50%; width: 60%; height: 80%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: ch-cliff 15s ease-in-out infinite alternate;
}
.scn-cheirisophus-explains .path-up {
  position: absolute; bottom: 12%; left: 50%; width: 10%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
}
.scn-cheirisophus-explains .figure-cheir {
  position: absolute; bottom: 12%; left: 42%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ch-figure 4s ease-in-out infinite alternate;
}
.scn-cheirisophus-explains .figure-xen {
  position: absolute; bottom: 12%; left: 48%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ch-figure 4s ease-in-out infinite alternate-reverse;
  animation-delay: 1s;
}
.scn-cheirisophus-explains .pointing-hand {
  position: absolute; bottom: 28%; left: 43%; width: 14px; height: 10px;
  background: #1a1a1a;
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  animation: ch-hand 2s ease-in-out infinite alternate;
}
.scn-cheirisophus-explains .rock-ledge {
  position: absolute; bottom: 15%; left: 20%; width: 40%; height: 6px;
  background: linear-gradient(90deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
@keyframes ch-sky {
  0% { opacity: 0.6 }
  50% { opacity: 1 }
  100% { opacity: 0.7 }
}
@keyframes ch-cliff {
  0% { transform: translateX(-50%) translateY(0) }
  50% { transform: translateX(-50%) translateY(-3px) scaleY(1.02) }
  100% { transform: translateX(-50%) translateY(0) }
}
@keyframes ch-figure {
  0% { transform: translateX(0) rotate(0) }
  50% { transform: translateX(2px) rotate(-2deg) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes ch-hand {
  0% { transform: rotate(-20deg) translateY(0) }
  50% { transform: rotate(-30deg) translateY(-2px) }
  100% { transform: rotate(-20deg) translateY(0) }
}

.scn-guide-offers {
  background:
    radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 60%),
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
}
.scn-guide-offers .sky-evening {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, transparent 100%);
  animation: gu-sky 12s ease-in-out infinite alternate;
}
.scn-guide-offers .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: gu-hills 18s ease-in-out infinite alternate;
}
.scn-guide-offers .campfire {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 60%, #ffa040 0%, #c06020 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: gu-fire 2s ease-in-out infinite alternate;
}
.scn-guide-offers .soldiers-group {
  position: absolute; bottom: 22%; left: 35%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: gu-soldiers 6s ease-in-out infinite alternate;
}
.scn-guide-offers .guide {
  position: absolute; bottom: 22%; left: 50%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  animation: gu-guide 4s ease-in-out infinite alternate;
}
.scn-guide-offers .rope-bound {
  position: absolute; bottom: 24%; left: 50%; width: 18px; height: 4px;
  background: #6a5a4a;
  border-radius: 20%;
  transform: rotate(10deg);
  opacity: 0.7;
  animation: gu-rope 3s ease-in-out infinite alternate;
}
.scn-guide-offers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
@keyframes gu-sky {
  0% { opacity: 0.8 }
  50% { opacity: 1 }
  100% { opacity: 0.7 }
}
@keyframes gu-hills {
  0% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-3px) scaleY(1.03) }
  100% { transform: translateY(0) scaleY(1) }
}
@keyframes gu-fire {
  0% { box-shadow: 0 0 20px 5px #ffa040, 0 0 40px 10px rgba(255,160,64,0.3); transform: scale(1) }
  50% { box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,0.5); transform: scale(1.1) }
  100% { box-shadow: 0 0 20px 5px #ffa040, 0 0 40px 10px rgba(255,160,64,0.3); transform: scale(1) }
}
@keyframes gu-soldiers {
  0% { transform: translateX(0) translateY(0) }
  50% { transform: translateX(-2px) translateY(-1px) }
  100% { transform: translateX(0) translateY(0) }
}
@keyframes gu-guide {
  0% { transform: translateX(0) translateY(0) rotate(0) }
  50% { transform: translateX(2px) translateY(-2px) rotate(1deg) }
  100% { transform: translateX(0) translateY(0) rotate(0) }
}
@keyframes gu-rope {
  0% { transform: rotate(10deg) scaleX(1) }
  50% { transform: rotate(-10deg) scaleX(0.9) }
  100% { transform: rotate(10deg) scaleX(1) }
}

.scn-boulders-rolled {
  background:
    radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 50%),
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
}
.scn-boulders-rolled .sky-dusk {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a5a 0%, transparent 100%);
  animation: bd-sky 10s ease-in-out infinite alternate;
}
.scn-boulders-rolled .mountain-slope {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 100%);
  filter: blur(1px);
  animation: bd-slope 8s ease-in-out infinite alternate;
}
.scn-boulders-rolled .boulder-1 {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,255,255,0.1);
  animation: bd-boulder 3s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-boulders-rolled .boulder-2 {
  position: absolute; bottom: 35%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,255,255,0.1);
  animation: bd-boulder 4s ease-in-out infinite;
  animation-delay: 1.5s;
}
.scn-boulders-rolled .soldier-dodging {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: bd-soldier 0.6s ease-in-out infinite alternate;
}
.scn-boulders-rolled .dust-spray {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 20px;
  background: rgba(180,150,120,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: bd-dust 2s ease-in-out infinite alternate;
}
.scn-boulders-rolled .rock-debris {
  position: absolute; bottom: 25%; left: 35%; width: 8px; height: 8px;
  background: #3a2a1a;
  border-radius: 20%;
  filter: blur(1px);
  animation: bd-debris 1s linear infinite;
}
@keyframes bd-sky {
  0% { opacity: 0.7 }
  50% { opacity: 1 }
  100% { opacity: 0.6 }
}
@keyframes bd-slope {
  0% { transform: translateX(0) }
  50% { transform: translateX(-5px) }
  100% { transform: translateX(0) }
}
@keyframes bd-boulder {
  0% { transform: translateY(0) rotate(0) }
  50% { transform: translateY(-20px) rotate(20deg) }
  100% { transform: translateY(0) rotate(0) }
}
@keyframes bd-soldier {
  0% { transform: rotate(15deg) translateX(0) }
  50% { transform: rotate(-10deg) translateX(-3px) }
  100% { transform: rotate(15deg) translateX(0) }
}
@keyframes bd-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3 }
  50% { transform: translateX(-10px) scale(1.5); opacity: 0.6 }
  100% { transform: translateX(0) scale(1); opacity: 0.3 }
}
@keyframes bd-debris {
  0% { transform: translateY(0) rotate(0); opacity: 1 }
  100% { transform: translateY(-30px) rotate(360deg); opacity: 0 }
}

/* ---------- night-camp ---------- */
.scn-night-camp { background: linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #2a1a0e 70%, #1a0e06 100%), radial-gradient(ellipse at 50% 80%, #3a200a 0%, transparent 60%); }
.scn-night-camp .sky-night { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #080818 0%, #12122a 50%, #1a1a30 100%); animation: nc1-sky 14s ease-in-out infinite alternate; }
.scn-night-camp .campfire { position:absolute; bottom:20%; left:50%; width:28px; height:36px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #ffaa44 0%, #cc6620 50%, #803010 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 12px rgba(255,170,68,.6), 0 0 80px 30px rgba(200,100,30,.3); animation: nc1-fire 2s ease-in-out infinite alternate; }
.scn-night-camp .fire-glow { position:absolute; bottom:15%; left:50%; width:160px; height:120px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, rgba(255,170,68,.15) 0%, rgba(200,100,30,.08) 40%, transparent 70%); animation: nc1-glow 3s ease-in-out infinite alternate; }
.scn-night-camp .tent-left { position:absolute; bottom:22%; left:20%; width:80px; height:55px; background: linear-gradient(135deg, #2a1a0e 0%, #160c06 100%); clip-path: polygon(20% 100%, 50% 0%, 80% 100%); border-radius:0 0 6px 6px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6), 0 4px 6px rgba(0,0,0,.5); transform-origin: bottom center; animation: nc1-tent-l 9s ease-in-out infinite; }
.scn-night-camp .tent-right { position:absolute; bottom:22%; right:20%; width:80px; height:50px; background: linear-gradient(225deg, #20140a 0%, #0e0804 100%); clip-path: polygon(20% 100%, 50% 0%, 80% 100%); border-radius:0 0 4px 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.7), 0 -2px 10px rgba(255,170,68,.1); transform-origin: bottom center; animation: nc1-tent-r 11s ease-in-out infinite; }
.scn-night-camp .figure-seated { position:absolute; bottom:20%; left:38%; width:22px; height:30px; background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nc1-seat 5s ease-in-out infinite; }
.scn-night-camp .figure-standing { position:absolute; bottom:20%; right:35%; width:18px; height:40px; background: linear-gradient(180deg, #1a120a 0%, #0a0806 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: nc1-stand 7s ease-in-out infinite alternate; }
.scn-night-camp .smoke-a { position:absolute; bottom:48%; left:48%; width:40px; height:40px; background: radial-gradient(circle, rgba(160,140,120,.15) 0%, rgba(80,60,40,.05) 70%, transparent 100%); border-radius:50%; filter: blur(8px); animation: nc1-smoke-a 12s ease-out infinite; }
.scn-night-camp .smoke-b { position:absolute; bottom:42%; left:53%; width:50px; height:60px; background: radial-gradient(circle, rgba(140,120,100,.12) 0%, rgba(60,40,20,.04) 70%, transparent 100%); border-radius:50%; filter: blur(10px); animation: nc1-smoke-b 16s ease-out infinite; }
@keyframes nc1-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nc1-fire { 0% { transform:translateX(-50%) scale(1) rotate(0deg); opacity:.85 } 25% { transform:translateX(-50%) scale(1.06) rotate(2deg); opacity:1 } 50% { transform:translateX(-50%) scale(.95) rotate(-1deg); opacity:.9 } 75% { transform:translateX(-50%) scale(1.03) rotate(1deg); opacity:.95 } 100% { transform:translateX(-50%) scale(1) rotate(0deg); opacity:.85 } }
@keyframes nc1-glow { 0% { opacity:.4; transform:translateX(-50%) scale(1) } 50% { opacity:.7; transform:translateX(-50%) scale(1.08) } 100% { opacity:.5; transform:translateX(-50%) scale(.95) } }
@keyframes nc1-tent-l { 0%,100% { transform:translateY(0) skewX(0) } 50% { transform:translateY(-2px) skewX(.5deg) } }
@keyframes nc1-tent-r { 0%,100% { transform:translateY(0) skewX(0) } 50% { transform:translateY(-2px) skewX(-.5deg) } }
@keyframes nc1-seat { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(3px) rotate(2deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(-3px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes nc1-stand { 0% { transform:translateX(0) rotate(0deg) } 33% { transform:translateX(-5px) rotate(-2deg) } 66% { transform:translateX(4px) rotate(1deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes nc1-smoke-a { 0% { transform:translateY(0) scale(1) translateX(0); opacity:.6 } 50% { transform:translateY(-40px) scale(1.8) translateX(20px); opacity:.3 } 100% { transform:translateY(-80px) scale(2.5) translateX(40px); opacity:0 } }
@keyframes nc1-smoke-b { 0% { transform:translateY(0) scale(1) translateX(0); opacity:.4 } 50% { transform:translateY(-30px) scale(2) translateX(-15px); opacity:.2 } 100% { transform:translateY(-70px) scale(3) translateX(-30px); opacity:0 } }

/* ---------- camp-plundered ---------- */
.scn-camp-plundered { background: linear-gradient(180deg, #0a0a12 0%, #14141c 40%, #1a1a24 70%, #0e0e16 100%), radial-gradient(ellipse at 30% 50%, #1c1c2a 0%, transparent 50%); }
.scn-camp-plundered .bg-ruin { position:absolute; inset:0; background: linear-gradient(90deg, #0e0e18 0%, #161622 30%, #1a1a28 60%, #12121e 100%); animation: cp1-ruin 20s ease-in-out infinite alternate; }
.scn-camp-plundered .wagon-1 { position:absolute; bottom:22%; left:15%; width:70px; height:40px; background: linear-gradient(135deg, #2a1a0e 0%, #1a0e06 50%, #0e0604 100%); border-radius:6px 6px 16px 16px; transform:rotate(-12deg); box-shadow: inset 0 -3px 6px rgba(0,0,0,.7), 2px 4px 6px rgba(0,0,0,.5); animation: cp1-wagon1 6s ease-in-out infinite; }
.scn-camp-plundered .wagon-2 { position:absolute; bottom:25%; right:18%; width:60px; height:35px; background: linear-gradient(225deg, #2a1a0e 0%, #1a0e06 50%, #0e0604 100%); border-radius:4px 4px 12px 12px; transform:rotate(8deg); box-shadow: inset 0 -3px 6px rgba(0,0,0,.7), -2px 3px 5px rgba(0,0,0,.4); animation: cp1-wagon2 7s ease-in-out infinite alternate; }
.scn-camp-plundered .scatter-barrel { position:absolute; bottom:20%; left:35%; width:22px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1208 100%); border-radius:30% 30% 20% 20%; transform:rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: cp1-scatter 9s ease-in-out infinite; }
.scn-camp-plundered .scatter-cloth { position:absolute; bottom:18%; right:30%; width:35px; height:20px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:0 60% 20% 40%; transform:rotate(15deg); opacity:.7; animation: cp1-cloth 10s ease-in-out infinite alternate; }
.scn-camp-plundered .ember-orange { position:absolute; bottom:16%; left:28%; width:4px; height:4px; background:#cc6622; border-radius:50%; box-shadow: 0 0 6px 2px #cc6622; animation: cp1-ember-o 3s ease-in-out infinite; }
.scn-camp-plundered .ember-red { position:absolute; bottom:14%; left:32%; width:3px; height:3px; background:#aa4418; border-radius:50%; box-shadow: 0 0 5px 2px #aa4418; animation: cp1-ember-r 3.5s ease-in-out infinite 1.2s; }
.scn-camp-plundered .shadow-shape { position:absolute; bottom:10%; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 40%, rgba(0,0,0,.8) 100%); animation: cp1-shadow 15s ease-in-out infinite alternate; }
@keyframes cp1-ruin { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cp1-wagon1 { 0% { transform:rotate(-12deg) translateX(0) } 50% { transform:rotate(-14deg) translateX(3px) } 100% { transform:rotate(-10deg) translateX(-2px) } }
@keyframes cp1-wagon2 { 0% { transform:rotate(8deg) translateX(0) } 50% { transform:rotate(10deg) translateX(-4px) } 100% { transform:rotate(6deg) translateX(3px) } }
@keyframes cp1-scatter { 0%,100% { transform:rotate(-20deg) translateY(0) } 50% { transform:rotate(-22deg) translateY(-3px) } }
@keyframes cp1-cloth { 0% { transform:rotate(15deg) translateX(0); opacity:.6 } 50% { transform:rotate(18deg) translateX(5px); opacity:.8 } 100% { transform:rotate(12deg) translateX(-3px); opacity:.5 } }
@keyframes cp1-ember-o { 0%,100% { opacity:.7; transform:scale(1) translate(0,0) } 50% { opacity:1; transform:scale(1.3) translate(2px,-3px) } }
@keyframes cp1-ember-r { 0%,100% { opacity:.5; transform:scale(1) translate(0,0) } 50% { opacity:1; transform:scale(1.4) translate(-2px,-4px) } }
@keyframes cp1-shadow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }

/* ---------- hungry-night ---------- */
.scn-hungry-night { background: linear-gradient(180deg, #08080e 0%, #0e0e18 35%, #14141e 70%, #0a0a12 100%), radial-gradient(ellipse at 50% 60%, #1a1a24 0%, transparent 65%); }
.scn-hungry-night .bg-void { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, #0e0e1a 0%, #06060c 80%); animation: hn1-void 20s ease-in-out infinite alternate; }
.scn-hungry-night .huddle-fig-a { position:absolute; bottom:18%; left:25%; width:24px; height:28px; background: linear-gradient(180deg, #1a120a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hn1-huddle-a 6s ease-in-out infinite; }
.scn-hungry-night .huddle-fig-b { position:absolute; bottom:17%; left:32%; width:22px; height:30px; background: linear-gradient(180deg, #161008 0%, #080604 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: hn1-huddle-b 7s ease-in-out infinite 1s; }
.scn-hungry-night .huddle-fig-c { position:absolute; bottom:18%; left:39%; width:20px; height:26px; background: linear-gradient(180deg, #1a140a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hn1-huddle-c 5.5s ease-in-out infinite 2s; }
.scn-hungry-night .pot-cold { position:absolute; bottom:16%; left:48%; width:30px; height:18px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:0 0 30% 30%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.8), 0 2px 4px rgba(0,0,0,.5); transform:rotate(5deg); animation: hn1-pot 8s ease-in-out infinite; }
.scn-hungry-night .ash-mound { position:absolute; bottom:15%; left:46%; width:40px; height:10px; background: radial-gradient(ellipse at 50% 100%, #2a2a2a 0%, #1a1a1a 50%, transparent 100%); border-radius:50%; opacity:.4; animation: hn1-ash 12s ease-in-out infinite alternate; }
.scn-hungry-night .ember-dim { position:absolute; bottom:16%; left:47%; width:3px; height:3px; background:#884420; border-radius:50%; box-shadow: 0 0 4px 1px #884420; animation: hn1-ember 4s ease-in-out infinite; }
.scn-hungry-night .drift-darkness { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, transparent 0%, rgba(0,0,0,.3) 70%, rgba(0,0,0,.6) 100%); animation: hn1-drift 18s ease-in-out infinite alternate; }
@keyframes hn1-void { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hn1-huddle-a { 0%,100% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(2px) rotate(3deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(-2px) rotate(-4deg) } }
@keyframes hn1-huddle-b { 0%,100% { transform:translateX(0) rotate(0deg) } 33% { transform:translateX(-3px) rotate(-2deg) } 66% { transform:translateX(2px) rotate(3deg) } }
@keyframes hn1-huddle-c { 0%,100% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(3px) rotate(2deg) } }
@keyframes hn1-pot { 0%,100% { transform:rotate(5deg) translateY(0) } 50% { transform:rotate(3deg) translateY(-2px) } }
@keyframes hn1-ash { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }
@keyframes hn1-ember { 0%,100% { opacity:.4; transform:scale(1) } 50% { opacity:.8; transform:scale(1.2) } }
@keyframes hn1-drift { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* ---------- morning-meeting ---------- */
.scn-morning-meeting { background: linear-gradient(180deg, #2a3040 0%, #4a5a6a 30%, #8a9aaa 55%, #c0c8d0 75%, #e0d8c0 100%), radial-gradient(ellipse at 30% 20%, #d0c8a0 0%, transparent 50%); }
.scn-morning-meeting .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a5a 0%, #7a8a9a 40%, #b0b8a0 70%, #d0c8a0 100%); animation: mm1-sky 15s ease-in-out infinite alternate; }
.scn-morning-meeting .dawn-horizon { position:absolute; bottom:40%; left:0; right:0; height:8%; background: linear-gradient(180deg, #c0b890 0%, #8a7050 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; opacity:.7; animation: mm1-horizon 10s ease-in-out infinite alternate; }
.scn-morning-meeting .general-a { position:absolute; bottom:22%; left:28%; width:20px; height:36px; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; box-shadow: 0 0 8px 2px rgba(200,180,140,.15); transform-origin: bottom center; animation: mm1-gen-a 4s ease-in-out infinite; }
.scn-morning-meeting .general-b { position:absolute; bottom:22%; left:40%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: mm1-gen-b 5s ease-in-out infinite 0.8s; }
.scn-morning-meeting .general-c { position:absolute; bottom:22%; right:30%; width:18px; height:34px; background: linear-gradient(180deg, #4a3420 0%, #2a1a0e 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; box-shadow: 0 0 6px 2px rgba(200,180,140,.12); transform-origin: bottom center; animation: mm1-gen-c 4.5s ease-in-out infinite 1.6s; }
.scn-morning-meeting .dawn-light-ray { position:absolute; top:5%; left:10%; width:120%; height:30%; background: linear-gradient(135deg, rgba(240,230,200,.15) 0%, rgba(255,240,200,.08) 30%, transparent 60%); transform:rotate(-15deg); animation: mm1-ray 12s ease-in-out infinite alternate; }
.scn-morning-meeting .dawn-shadow { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.2) 40%, rgba(0,0,0,.35) 100%); animation: mm1-dawn-shadow 15s ease-in-out infinite alternate; }
.scn-morning-meeting .banner-pole { position:absolute; bottom:28%; right:18%; width:4px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform:rotate(-3deg); box-shadow: 0 0 4px rgba(0,0,0,.3); animation: mm1-pole 8s ease-in-out infinite; }
@keyframes mm1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mm1-horizon { 0% { opacity:.6; transform:scaleY(1) } 50% { opacity:.8; transform:scaleY(1.05) } 100% { opacity:.5; transform:scaleY(.95) } }
@keyframes mm1-gen-a { 0%,100% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(3px) rotate(2deg) } 50% { transform:translateX(0) rotate(-1deg) } 75% { transform:translateX(-3px) rotate(1deg) } }
@keyframes mm1-gen-b { 0%,100% { transform:translateX(0) rotate(0deg) } 33% { transform:translateX(4px) rotate(-2deg) } 66% { transform:translateX(-2px) rotate(1deg) } }
@keyframes mm1-gen-c { 0%,100% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(-4px) rotate(-3deg) } }
@keyframes mm1-ray { 0% { opacity:.3; transform:rotate(-15deg) scale(1) } 50% { opacity:.6; transform:rotate(-12deg) scale(1.05) } 100% { opacity:.2; transform:rotate(-18deg) scale(.95) } }
@keyframes mm1-dawn-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes mm1-pole { 0%,100% { transform:rotate(-3deg) } 50% { transform:rotate(-1deg) } }

.scn-greeks-learn-cyrus-dead {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #3a2a4e 60%, #4a3a5e 100%),
    radial-gradient(ellipse at 60% 20%, #3a2a5e 0%, transparent 70%);
}

.scn-greeks-learn-cyrus-dead .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  animation: glc-sky 15s ease-in-out infinite alternate;
}

.scn-greeks-learn-cyrus-dead .mountains {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(0% 100%, 10% 60%, 20% 70%, 30% 40%, 40% 55%, 50% 30%, 60% 45%, 70% 35%, 80% 50%, 90% 40%, 100% 60%, 100% 100%);
  opacity: 0.6;
  animation: glc-mountains 20s ease-in-out infinite alternate;
}

.scn-greeks-learn-cyrus-dead .campfire {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 30px;
  height: 40px;
  background: radial-gradient(circle at 50% 100%, #ff8c42 0%, #d45d1a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 40px 20px rgba(212, 93, 26, 0.6);
  animation: glc-fire 1.5s ease-in-out infinite alternate;
}

.scn-greeks-learn-cyrus-dead .figure-left {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 20px;
  height: 45px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: glc-figure-left 6s ease-in-out infinite;
}

.scn-greeks-learn-cyrus-dead .figure-right {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: glc-figure-right 6s ease-in-out infinite 0.5s;
}

.scn-greeks-learn-cyrus-dead .spear {
  position: absolute;
  bottom: 32%;
  left: 42%;
  width: 2px;
  height: 30px;
  background: #5a4a3a;
  transform: rotate(15deg);
  animation: glc-spear 4s ease-in-out infinite;
}

.scn-greeks-learn-cyrus-dead .smoke {
  position: absolute;
  bottom: 55%;
  left: 45%;
  width: 40px;
  height: 20px;
  background: rgba(200, 200, 200, 0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: glc-smoke 10s linear infinite;
}

@keyframes glc-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

@keyframes glc-mountains {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}

@keyframes glc-fire {
  0% { transform: scale(1) translateX(0); opacity: 0.8; box-shadow: 0 0 30px 15px #d45d1a; }
  30% { transform: scale(1.1) translateX(1px); opacity: 1; box-shadow: 0 0 50px 25px #ff8c42; }
  60% { transform: scale(0.95) translateX(-1px); opacity: 0.9; box-shadow: 0 0 35px 18px #d45d1a; }
  100% { transform: scale(1) translateX(0); opacity: 0.8; box-shadow: 0 0 30px 15px #d45d1a; }
}

@keyframes glc-figure-left {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes glc-figure-right {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes glc-spear {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(15deg); }
}

@keyframes glc-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  25% { transform: translateY(-10px) scale(1.5); opacity: 0.1; }
  50% { transform: translateY(-20px) scale(2); opacity: 0; }
  100% { transform: translateY(-40px) scale(2.5); opacity: 0; }
}

/* ----- Scene: king-advances-rear ----- */
.scn-king-advances-rear {
  background:
    linear-gradient(180deg, #1f1f35 0%, #2a2a45 30%, #3a3a55 60%, #4a4a65 100%),
    radial-gradient(ellipse at 40% 60%, #2a2a50 0%, transparent 70%);
}

.scn-king-advances-rear .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: kar-ground 12s ease-in-out infinite alternate;
}

.scn-king-advances-rear .dust {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(180deg, rgba(200, 180, 150, 0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: kar-dust 8s ease-in-out infinite alternate;
}

.scn-king-advances-rear .king-figure {
  position: absolute;
  bottom: 28%;
  left: 38%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kar-king 4s ease-in-out infinite;
}

.scn-king-advances-rear .soldiers-front {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 70%;
  height: 40px;
  background: repeating-linear-gradient(90deg, 
    #3a2a2a 0px, #3a2a2a 10px, 
    transparent 10px, transparent 16px);
  clip-path: polygon(0% 100%, 10% 20%, 20% 30%, 30% 10%, 40% 25%, 50% 15%, 60% 30%, 70% 20%, 80% 35%, 90% 25%, 100% 40%, 100% 100%);
  animation: kar-soldiers-front 6s ease-in-out infinite;
}

.scn-king-advances-rear .soldiers-back {
  position: absolute;
  bottom: 30%;
  left: 15%;
  width: 60%;
  height: 30px;
  background: repeating-linear-gradient(90deg, 
    #2a1a1a 0px, #2a1a1a 8px, 
    transparent 8px, transparent 14px);
  clip-path: polygon(0% 100%, 20% 30%, 30% 40%, 40% 20%, 50% 35%, 60% 25%, 70% 40%, 80% 30%, 90% 45%, 100% 35%, 100% 100%);
  opacity: 0.7;
  animation: kar-soldiers-back 8s ease-in-out infinite 1s;
}

.scn-king-advances-rear .sword-flash {
  position: absolute;
  bottom: 35%;
  left: 28%;
  width: 4px;
  height: 20px;
  background: #d4b060;
  transform: rotate(-20deg);
  box-shadow: 0 0 12px 6px rgba(212, 176, 96, 0.8);
  animation: kar-sword 0.8s ease-in-out infinite alternate;
}

.scn-king-advances-rear .blood-speck {
  position: absolute;
  bottom: 30%;
  left: 22%;
  width: 4px;
  height: 4px;
  background: #a0461a;
  border-radius: 50%;
  animation: kar-blood 5s ease-in-out infinite;
}

.scn-king-advances-rear .banner {
  position: absolute;
  bottom: 38%;
  left: 45%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); /* terracotta, not crimson */
  clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%);
  animation: kar-banner 3s ease-in-out infinite;
}

@keyframes kar-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}

@keyframes kar-dust {
  0% { opacity: 0.2; transform: translateY(0) scale(1); }
  50% { opacity: 0.5; transform: translateY(-5px) scale(1.05); }
  100% { opacity: 0.2; transform: translateY(0) scale(1); }
}

@keyframes kar-king {
  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 kar-soldiers-front {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-6px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.8; }
}

@keyframes kar-soldiers-back {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

@keyframes kar-sword {
  0% { transform: rotate(-20deg) scale(1); opacity: 0.9; }
  50% { transform: rotate(-10deg) scale(1.2); opacity: 1; }
  100% { transform: rotate(-20deg) scale(1); opacity: 0.9; }
}

@keyframes kar-blood {
  0%, 100% { opacity: 0; }
  50% { opacity: 1; }
}

@keyframes kar-banner {
  0% { transform: scaleY(1) rotate(0deg); }
  25% { transform: scaleY(1.1) rotate(5deg); }
  50% { transform: scaleY(0.95) rotate(-3deg); }
  75% { transform: scaleY(1.05) rotate(2deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}

/* ----- Scene: tissaphernes-retreats ----- */
.scn-tissaphernes-retreats {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2444 30%, #3a3050 60%, #4a3a5a 100%),
    radial-gradient(ellipse at 30% 40%, #2a2a4a 0%, transparent 70%);
}

.scn-tissaphernes-retreats .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  animation: tr-sky 18s ease-in-out infinite alternate;
}

.scn-tissaphernes-retreats .hills {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 100%, 10% 50%, 20% 60%, 30% 40%, 40% 55%, 50% 35%, 60% 50%, 70% 45%, 80% 60%, 90% 50%, 100% 65%, 100% 100%);
  animation: tr-hills 22s ease-in-out infinite alternate;
}

.scn-tissaphernes-retreats .retreating-figure {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 24px;
  height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-retreat 5s ease-in-out infinite;
}

.scn-tissaphernes-retreats .peltast {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-peltast 5s ease-in-out infinite 0.3s;
}

.scn-tissaphernes-retreats .shield {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 18px;
  height: 24px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: tr-shield 7s ease-in-out infinite;
}

.scn-tissaphernes-retreats .javelin-shadow {
  position: absolute;
  bottom: 34%;
  left: 45%;
  width: 2px;
  height: 25px;
  background: #3a3a2a;
  transform: rotate(15deg);
  opacity: 0.4;
  animation: tr-javelin 4s ease-in-out infinite;
}

.scn-tissaphernes-retreats .dust-cloud {
  position: absolute;
  bottom: 38%;
  left: 20%;
  width: 60px;
  height: 20px;
  background: rgba(180, 160, 140, 0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: tr-dust 10s linear infinite;
}

@keyframes tr-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

@keyframes tr-hills {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(1px); }
}

@keyframes tr-retreat {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-3deg); }
  50% { transform: translateX(-16px) rotate(-5deg); }
  75% { transform: translateX(-8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes tr-peltast {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(3deg); }
  50% { transform: translateX(20px) rotate(5deg); }
  75% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes tr-shield {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes tr-javelin {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}

@keyframes tr-dust {
  0% { transform: translateX(-20px) scale(1); opacity: 0.3; }
  25% { transform: translateX(0) scale(1.2); opacity: 0.2; }
  50% { transform: translateX(20px) scale(1.5); opacity: 0.1; }
  75% { transform: translateX(40px) scale(1.8); opacity: 0; }
  100% { transform: translateX(60px) scale(2); opacity: 0; }
}

/* ----- Scene: heles-pursue ----- */
.scn-heles-pursue {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 30%, #3a3a5e 60%, #4a4a6e 100%),
    radial-gradient(ellipse at 70% 50%, #2a2a4a 0%, transparent 70%);
}

.scn-heles-pursue .river {
  position: absolute;
  bottom: 10%;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  clip-path: polygon(0% 100%, 20% 60%, 40% 80%, 60% 50%, 80% 70%, 100% 40%, 100% 100%);
  animation: hp-river 20s ease-in-out infinite alternate;
}

.scn-heles-pursue .bank-left {
  position: absolute;
  bottom: 30%;
  left: 0;
  width: 40%;
  height: 60%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 100%, 100% 70%, 100% 100%);
  animation: hp-bank 15s ease-in-out infinite alternate;
}

.scn-heles-pursue .bank-right {
  position: absolute;
  bottom: 30%;
  right: 0;
  width: 40%;
  height: 60%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 70%, 100% 100%, 0% 100%);
  animation: hp-bank 15s ease-in-out infinite alternate 1s;
}

.scn-heles-pursue .phalanx {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 60%;
  height: 30%;
  background: repeating-linear-gradient(90deg,
    #3a2a2a 0px, #3a2a2a 12px,
    transparent 12px, transparent 18px);
  clip-path: polygon(0% 100%, 10% 40%, 20% 50%, 30% 30%, 40% 45%, 50% 35%, 60% 50%, 70% 40%, 80% 55%, 90% 45%, 100% 60%, 100% 100%);
  animation: hp-phalanx 10s ease-in-out infinite;
}

.scn-heles-pursue .flanking-arrow {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 4px;
  height: 20px;
  background: #d4b060;
  transform: rotate(45deg);
  box-shadow: 0 0 8px 4px rgba(212, 176, 96, 0.6);
  animation: hp-arrow 1.5s ease-in-out infinite alternate;
}

.scn-heles-pursue .fear-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 60% 40%, transparent 50%, rgba(0,0,0,0.4) 80%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  animation: hp-vignette 8s ease-in-out infinite alternate;
}

.scn-heles-pursue .spear-wall {
  position: absolute;
  bottom: 18%;
  left: 20%;
  width: 60%;
  height: 20px;
  background: repeating-linear-gradient(90deg,
    #5a4a3a 0px, #5a4a3a 2px,
    transparent 2px, transparent 18px);
  transform: skewY(-10deg);
  animation: hp-spearwall 12s ease-in-out infinite;
}

.scn-heles-pursue .moon {
  position: absolute;
  top: 12%;
  right: 20%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle at 30% 30%, #e0e0c0 0%, #b0b0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200, 200, 180, 0.3);
  animation: hp-moon 25s linear infinite;
}

@keyframes hp-river {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-5px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}

@keyframes hp-bank {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

@keyframes hp-phalanx {
  0% { transform: translateY(0) scaleX(1); opacity: 0.8; }
  50% { transform: translateY(-8px) scaleX(1.05); opacity: 1; }
  100% { transform: translateY(0) scaleX(1); opacity: 0.8; }
}

@keyframes hp-arrow {
  0% { transform: rotate(45deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(55deg) scale(1.2); opacity: 1; }
  100% { transform: rotate(45deg) scale(1); opacity: 0.8; }
}

@keyframes hp-vignette {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

@keyframes hp-spearwall {
  0% { transform: skewY(-10deg) translateY(0); }
  50% { transform: skewY(-8deg) translateY(-2px); }
  100% { transform: skewY(-10deg) translateY(0); }
}

@keyframes hp-moon {
  0% { transform: translateX(0); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(0); }
}

.scn-cilician-gates {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 60%);
}
.scn-cilician-gates .sky       { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%); animation:cg-sky 10s ease-in-out infinite alternate; }
.scn-cilician-gates .mountains-back { position:absolute; bottom:40%; left:0; right:0; height:25%; background:linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius:60% 40% 0 0; filter:blur(2px); animation:cg-mtns 20s ease-in-out infinite alternate; }
.scn-cilician-gates .mountains-mid { position:absolute; bottom:35%; left:0; right:0; height:20%; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:50% 50% 0 0; filter:blur(1px); animation:cg-mtns 15s ease-in-out infinite alternate-reverse; }
.scn-cilician-gates .pass     { position:absolute; bottom:38%; left:45%; width:10%; height:15%; background:linear-gradient(90deg,transparent,#4a5a6a,transparent); border-radius:0 0 30% 30%; animation:cg-pass 12s ease-in-out infinite; }
.scn-cilician-gates .plain    { position:absolute; bottom:0; left:0; right:0; height:38%; background:linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 100%); clip-path:polygon(0% 30%, 100% 20%, 100% 100%, 0% 100%); animation:cg-plain 18s ease-in-out infinite alternate; }
.scn-cilician-gates .figures  { position:absolute; bottom:10%; left:30%; width:6%; height:8%; background:linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(0.5px); animation:cg-march 8s ease-in-out infinite; }
.scn-cilician-gates .cloud    { position:absolute; top:15%; left:10%; width:20%; height:6%; background:linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); filter:blur(5px); border-radius:50%; animation:cg-drift 40s linear infinite; }

@keyframes cg-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cg-mtns   { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes cg-pass   { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes cg-plain  { 0% { background-position:0% 0% } 50% { background-position:5% 0% } 100% { background-position:0% 0% } }
@keyframes cg-march  { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(10px) scaleY(0.95) } 100% { transform:translateX(0) scaleY(1) } }
@keyframes cg-drift  { 0% { transform:translateX(-20px) } 100% { transform:translateX(120vw) } }

.scn-tarsus-twenty-days {
  background: linear-gradient(135deg, #2a1a1a 0%, #3a2a2a 40%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-tarsus-twenty-days .bg-deep    { position:absolute; inset:0; background:linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); animation:tt-bg 8s ease-in-out infinite alternate; }
.scn-tarsus-twenty-days .floor      { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 0 0; animation:tt-floor 12s ease-in-out infinite; }
.scn-tarsus-twenty-days .column-left{ position:absolute; bottom:20%; left:15%; width:6%; height:60%; background:linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:5px; box-shadow:-2px 0 8px rgba(0,0,0,0.6); animation:tt-col 10s ease-in-out infinite; }
.scn-tarsus-twenty-days .column-right{position:absolute; bottom:20%; right:15%; width:6%; height:60%; background:linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:5px; box-shadow:2px 0 8px rgba(0,0,0,0.6); animation:tt-col 10s ease-in-out infinite reverse; }
.scn-tarsus-twenty-days .figure-king{position:absolute; bottom:10%; left:35%; width:8%; height:30%; background:linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:tt-fig1 6s ease-in-out infinite; }
.scn-tarsus-twenty-days .figure-cyrus{position:absolute; bottom:10%; right:35%; width:8%; height:30%; background:linear-gradient(180deg, #4a2a1a 0%, #2a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:tt-fig2 7s ease-in-out infinite; }
.scn-tarsus-twenty-days .brazier-glow{position:absolute; bottom:15%; left:50%; width:10%; height:10%; background:radial-gradient(circle, #c8753a 0%, #a05020 50%, transparent 70%); border-radius:50%; box-shadow:0 0 30px 15px rgba(200,117,58,0.5); animation:tt-glow 3s ease-in-out infinite alternate; }

@keyframes tt-bg   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tt-floor{ 0% { transform:scaleY(1) } 50% { transform:scaleY(0.98) } 100% { transform:scaleY(1) } }
@keyframes tt-col  { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes tt-fig1 { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-2deg) } }
@keyframes tt-fig2 { 0% { transform:rotate(2deg) } 50% { transform:rotate(-2deg) } 100% { transform:rotate(2deg) } }
@keyframes tt-glow { 0% { box-shadow:0 0 20px 10px rgba(200,117,58,0.4); opacity:0.8 } 50% { box-shadow:0 0 40px 20px rgba(255,150,80,0.6); opacity:1 } 100% { box-shadow:0 0 25px 12px rgba(200,117,58,0.5); opacity:0.9 } }

.scn-clearchus-speech {
  background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-clearchus-speech .bg-mid     { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); animation:cs-bg 9s ease-in-out infinite alternate; }
.scn-clearchus-speech .floor      { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 0 0; animation:cs-floor 14s ease-in-out infinite; }
.scn-clearchus-speech .dais       { position:absolute; bottom:15%; left:35%; width:30%; height:10%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10px; box-shadow:0 -4px 10px rgba(0,0,0,0.6); animation:cs-dais 11s ease-in-out infinite; }
.scn-clearchus-speech .speaker    { position:absolute; bottom:20%; left:45%; width:8%; height:25%; background:linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cs-speak 5s ease-in-out infinite; }
.scn-clearchus-speech .crowd      { position:absolute; bottom:0; left:20%; right:20%; height:20%; background:radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); filter:blur(2px); animation:cs-crowd 8s ease-in-out infinite; }
.scn-clearchus-speech .torch-left { position:absolute; bottom:30%; left:20%; width:4%; height:15%; background:linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:20% 20% 0 0; animation:cs-torch 3s ease-in-out infinite alternate; }
.scn-clearchus-speech .torch-right{ position:absolute; bottom:30%; right:20%; width:4%; height:15%; background:linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:20% 20% 0 0; animation:cs-torch 3s ease-in-out infinite alternate-reverse; }

@keyframes cs-bg   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cs-floor{ 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(0.98) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes cs-dais { 0% { box-shadow:0 -4px 8px rgba(0,0,0,0.5) } 50% { box-shadow:0 -6px 14px rgba(0,0,0,0.8) } 100% { box-shadow:0 -4px 8px rgba(0,0,0,0.5) } }
@keyframes cs-speak{ 0% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) translateY(-2px) } 100% { transform:rotate(-3deg) } }
@keyframes cs-crowd{ 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes cs-torch{ 0% { opacity:0.7; box-shadow:0 0 10px 5px #a05020 } 50% { opacity:1; box-shadow:0 0 20px 10px #c87030 } 100% { opacity:0.8; box-shadow:0 0 12px 6px #a05020 } }

.scn-soldiers-deliberate {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 80%);
}
.scn-soldiers-deliberate .bg-deep    { position:absolute; inset:0; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation:sd-bg 10s ease-in-out infinite alternate; }
.scn-soldiers-deliberate .floor-circle{position:absolute; bottom:0; left:0; right:0; height:40%; background:radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, #1a1a2a 80%); clip-path:circle(40% at 50% 100%); animation:sd-flr 15s ease-in-out infinite; }
.scn-soldiers-deliberate .benches   { position:absolute; bottom:5%; left:25%; right:25%; height:15%; background:linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:30% 30% 0 0; clip-path:polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation:sd-bench 12s ease-in-out infinite; }
.scn-soldiers-deliberate .figure-1  { position:absolute; bottom:12%; left:20%; width:6%; height:18%; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sd-fig 7s ease-in-out infinite; }
.scn-soldiers-deliberate .figure-2  { position:absolute; bottom:10%; left:47%; width:6%; height:20%; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sd-fig 8s ease-in-out infinite 0.5s; }
.scn-soldiers-deliberate .figure-3  { position:absolute; bottom:12%; right:20%; width:6%; height:18%; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sd-fig 9s ease-in-out infinite 1s; }
.scn-soldiers-deliberate .central-fire{position:absolute; bottom:18%; left:47%; width:6%; height:6%; background:radial-gradient(circle, #ffa050 0%, #c87030 50%, transparent 70%); border-radius:50%; box-shadow:0 0 25px 12px rgba(200,112,48,0.6); animation:sd-fire 4s ease-in-out infinite alternate; }

@keyframes sd-bg    { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sd-flr   { 0% { transform:scaleY(1) } 50% { transform:scaleY(0.97) } 100% { transform:scaleY(1) } }
@keyframes sd-bench { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes sd-fig   { 0% { transform:rotate(-4deg) scaleY(1) } 50% { transform:rotate(4deg) scaleY(0.97) } 100% { transform:rotate(-4deg) scaleY(1) } }
@keyframes sd-fire  { 0% { box-shadow:0 0 20px 10px rgba(200,112,48,0.5); opacity:0.8 } 50% { box-shadow:0 0 35px 18px rgba(255,160,80,0.7); opacity:1 } 100% { box-shadow:0 0 22px 12px rgba(200,112,48,0.6); opacity:0.9 } }

.scn-mespila { background: linear-gradient(180deg, #4a5a5a 0%, #6a7a7a 40%, #8a9a9a 70%, #5a6a6a 100%), radial-gradient(ellipse at 50% 0%, #8a9a9a 0%, transparent 60%); }
.scn-mespila .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a4a 0%, transparent 100%); animation: mes-sky 15s ease-in-out infinite alternate; }
.scn-mespila .walls  { position:absolute; bottom:20%; left:10%; width:80%; height:50%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,.5); animation: mes-walls 10s ease-in-out infinite alternate; }
.scn-mespila .tower  { position:absolute; bottom:40%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: mes-tower 8s ease-in-out infinite; }
.scn-mespila .floor  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a9a8a 0%, #5a6a5a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-mespila .shells { position:absolute; bottom:8%; left:20%; width:12px; height:8px; background: radial-gradient(circle, #c0b0a0 0%, #8a7a6a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(192,176,160,.5); animation: mes-shells 12s ease-in-out infinite; }
.scn-mespila .shells + .shells { left:60%; animation-delay: -4s; }
.scn-mespila .mist   { position:absolute; top:0; left:0; right:0; bottom:70%; background: rgba(100,110,110,.3); filter: blur(20px); animation: mes-mist 30s linear infinite alternate; }
@keyframes mes-sky    { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.5 } }
@keyframes mes-walls  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes mes-tower  { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes mes-shells { 0% { transform: rotate(0deg) translateX(0) scale(1) } 50% { transform: rotate(180deg) translateX(10px) scale(1.1) } 100% { transform: rotate(360deg) translateX(0) scale(1) } }
@keyframes mes-mist   { 0% { opacity:.2; transform: translateX(-20px) } 50% { opacity:.5; transform: translateX(0) } 100% { opacity:.3; transform: translateX(20px) } }

.scn-rhodians-outrange { background: linear-gradient(180deg, #3a4a4a 0%, #5a6a6a 40%, #6a7a7a 70%, #4a5a5a 100%), radial-gradient(ellipse at 50% 0%, #6a7a7a 0%, transparent 60%); }
.scn-rhodians-outrange .ground   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-rhodians-outrange .soldiers { position:absolute; bottom:30%; left:10%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 80%, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rh-soldiers 2s ease-in-out infinite; }
.scn-rhodians-outrange .archer   { position:absolute; bottom:32%; left:55%; width:40px; height:70px; background: radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rh-archer 1.5s ease-in-out infinite; }
.scn-rhodians-outrange .slinger  { position:absolute; bottom:35%; left:80%; width:36px; height:60px; background: radial-gradient(ellipse at 50% 70%, #3a3a2a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: rh-slinger 1.2s ease-in-out infinite; }
.scn-rhodians-outrange .arrows   { position:absolute; top:20%; left:60%; width:80px; height:4px; background: linear-gradient(90deg, transparent 0%, #5a4a3a 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(90,74,58,.5); animation: rh-arrows 0.8s linear infinite; }
.scn-rhodians-outrange .dust     { position:absolute; bottom:20%; left:30%; width:50px; height:30px; background: rgba(100,90,70,.2); border-radius: 50%; filter: blur(8px); animation: rh-dust 4s ease-in-out infinite; }
.scn-rhodians-outrange .clouds   { position:absolute; top:10%; left:0; right:0; height:30%; background: radial-gradient(ellipse, rgba(120,130,130,.3) 0%, transparent 70%); animation: rh-clouds 20s linear infinite alternate; }
@keyframes rh-soldiers { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes rh-archer   { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(10deg) scaleY(1.02) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes rh-slinger  { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes rh-arrows   { 0% { transform: translateX(-60px) rotate(10deg); opacity:0 } 20% { opacity:1 } 80% { opacity:1 } 100% { transform: translateX(60px) rotate(-10deg); opacity:0 } }
@keyframes rh-dust     { 0% { transform: scale(1) translateY(0); opacity:.3 } 50% { transform: scale(1.3) translateY(-10px); opacity:.1 } 100% { transform: scale(1) translateY(0); opacity:.3 } }
@keyframes rh-clouds   { 0% { transform: translateX(-20px); opacity:.4 } 50% { transform: translateX(0); opacity:.6 } 100% { transform: translateX(20px); opacity:.4 } }

.scn-lochi-system { background: linear-gradient(180deg, #5a6a6a 0%, #7a8a8a 40%, #9aaaaa 70%, #6a7a7a 100%), radial-gradient(ellipse at 50% 0%, #9aaaaa 0%, transparent 60%); }
.scn-lochi-system .sky      { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a7a7a 0%, transparent 100%); animation: loch-sky 20s ease-in-out infinite alternate; }
.scn-lochi-system .hills    { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: loch-hills 15s ease-in-out infinite; }
.scn-lochi-system .palace   { position:absolute; bottom:45%; left:20%; width:120px; height:60px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.4); animation: loch-palace 6s ease-in-out infinite; }
.scn-lochi-system .col-left { position:absolute; bottom:20%; left:10%; width:30px; height:80px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: loch-col-left 4s ease-in-out infinite; }
.scn-lochi-system .col-right{ position:absolute; bottom:20%; right:10%; width:30px; height:80px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: loch-col-right 4s ease-in-out infinite; animation-delay: 1.5s; }
.scn-lochi-system .banner   { position:absolute; bottom:55%; left:15%; width:4px; height:20px; background: #4a3a2a; border-radius:0; box-shadow: 0 0 4px 2px rgba(74,58,42,.5); animation: loch-banner 3s ease-in-out infinite; }
@keyframes loch-sky      { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes loch-hills    { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-3px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes loch-palace   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes loch-col-left { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes loch-col-right { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes loch-banner   { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-retreat-of-tissaphernes { background: linear-gradient(180deg, #3a2a3a 0%, #5a3a4a 30%, #7a4a3a 60%, #4a2a2a 100%), radial-gradient(ellipse at 50% 0%, #7a4a3a 0%, transparent 60%); }
.scn-retreat-of-tissaphernes .sky      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a4a 0%, #6a4a4a 40%, transparent 100%); animation: ret-sky 12s ease-in-out infinite alternate; }
.scn-retreat-of-tissaphernes .ridge    { position:absolute; bottom:25%; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-retreat-of-tissaphernes .campfires{ position:absolute; bottom:45%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #c08040 0%, #a06020 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(192,128,64,.6); animation: ret-campfires 2s ease-in-out infinite; }
.scn-retreat-of-tissaphernes .campfires + .campfires { left:60%; animation-delay: -1s; }
.scn-retreat-of-tissaphernes .figures  { position:absolute; bottom:28%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ret-figures 4s ease-in-out infinite; }
.scn-retreat-of-tissaphernes .tents    { position:absolute; bottom:30%; right:15%; width:50px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-retreat-of-tissaphernes .smoke    { position:absolute; bottom:50%; left:22%; width:30px; height:50px; background: radial-gradient(ellipse, rgba(60,50,40,.4) 0%, transparent 70%); filter: blur(6px); animation: ret-smoke 8s ease-in-out infinite; }
@keyframes ret-sky       { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ret-campfires { 0% { transform: scale(.9); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.9); opacity:.7 } }
@keyframes ret-figures   { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ret-smoke     { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(-20px) scale(1.5); opacity:.2 } 100% { transform: translateY(0) scale(1); opacity:.5 } }

.scn-xenophon-submits {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c1a1a 40%, #1a0e0e 100%), radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-xenophon-submits .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0e 0%, #1a0e08 50%, #0e0804 100%);
  animation: xs-bg 12s ease-in-out infinite alternate;
}
.scn-xenophon-submits .tent-shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 40%, transparent 40%, rgba(0,0,0,0.6) 100%);
  animation: xs-shadow 8s ease-in-out infinite alternate;
}
.scn-xenophon-submits .xenophon-figure {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e08 100%);
  border-radius: 50% 40% 40% 40% / 30% 40% 60% 60%;
  transform-origin: bottom center;
  animation: xs-xen 6s ease-in-out infinite;
}
.scn-xenophon-submits .xenophon-arm {
  position: absolute; bottom: 55%; left: 50%; width: 40px; height: 8px;
  background: #2a1a0e; border-radius: 50% 50% 20% 20%;
  transform-origin: left center;
  animation: xs-arm 4s ease-in-out infinite alternate;
}
.scn-xenophon-submits .soldier {
  position: absolute; bottom: 20%; right: 20%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 50% 50% 40% / 30% 30% 60% 60%;
  animation: xs-soldier 8s ease-in-out infinite;
}
.scn-xenophon-submits .soldier.shadow {
  right: 15%; bottom: 18%; opacity: 0.4;
  animation: xs-soldier 8s ease-in-out infinite reverse;
}
.scn-xenophon-submits .lantern-glow {
  position: absolute; bottom: 45%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffa040 0%, #804020 50%, transparent 100%);
  border-radius: 50%;
  animation: xs-lantern 3s ease-in-out infinite alternate;
}
.scn-xenophon-submits .lantern-body {
  position: absolute; bottom: 48%; left: 28%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #c08040 0%, #604020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 15px 5px #ffa040;
  animation: xs-lantern 3s ease-in-out infinite alternate;
}
.scn-xenophon-submits .dust {
  position: absolute; bottom: 10%; left: 10%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(128,80,40,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: xs-dust 15s linear infinite;
}
@keyframes xs-bg { 0%,100% { opacity:1 } 50% { opacity:0.85 } }
@keyframes xs-shadow { 0% { opacity:0.7 } 50% { opacity:0.5 } 100% { opacity:0.8 } }
@keyframes xs-xen { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } }
@keyframes xs-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-15deg) } }
@keyframes xs-soldier { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(-5px) translateY(-2px) } 50% { transform: translateX(3px) translateY(1px) } 75% { transform: translateX(-2px) translateY(0) } }
@keyframes xs-lantern { 0%,100% { opacity:0.8; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } }
@keyframes xs-dust { 0% { transform: translateX(-50px) } 100% { transform: translateX(100vw) } }

.scn-cleander-relents {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-cleander-relents .chamber-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a120e 0%, #0e0a08 100%);
  animation: cr-bg 14s ease-in-out infinite alternate;
}
.scn-cleander-relents .pillar-left {
  position: absolute; top: 10%; left: 5%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 30%, #3a2a1a 100%);
  border-radius: 10% / 5%;
  box-shadow: 8px 0 20px rgba(0,0,0,0.5);
  animation: cr-pillar 8s ease-in-out infinite alternate;
}
.scn-cleander-relents .pillar-right {
  position: absolute; top: 10%; right: 5%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 30%, #3a2a1a 100%);
  border-radius: 10% / 5%;
  box-shadow: -8px 0 20px rgba(0,0,0,0.5);
  animation: cr-pillar 8s ease-in-out infinite alternate-reverse;
}
.scn-cleander-relents .cleander-figure {
  position: absolute; bottom: 20%; left: 25%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 40% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: cr-cleander 5s ease-in-out infinite;
}
.scn-cleander-relents .cleander-hand {
  position: absolute; bottom: 50%; left: 35%; width: 25px; height: 10px;
  background: #3a2a1a;
  border-radius: 50% 50% 20% 20%;
  transform-origin: 70% center;
  animation: cr-hand 4s ease-in-out infinite alternate;
}
.scn-cleander-relents .general-figure {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%);
  border-radius: 40% 50% 50% 40% / 30% 30% 60% 60%;
  animation: cr-general 6s ease-in-out infinite;
}
.scn-cleander-relents .table-altar {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 8px;
  background: linear-gradient(90deg, #4a3020 0%, #6a4a30 50%, #4a3020 100%);
  border-radius: 20% / 50%;
  transform: translateX(-50%);
  box-shadow: 0 8px 15px rgba(0,0,0,0.6);
  animation: cr-table 10s ease-in-out infinite alternate;
}
.scn-cleander-relents .candle-glow {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffa040 0%, #804020 40%, transparent 100%);
  border-radius: 50%;
  animation: cr-candle 3s ease-in-out infinite alternate;
}
.scn-cleander-relents .scroll {
  position: absolute; bottom: 22%; left: 55%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: cr-scroll 12s ease-in-out infinite alternate;
}
@keyframes cr-bg { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes cr-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1.01) } }
@keyframes cr-cleander { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes cr-hand { 0% { transform: rotate(0deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(5deg) } }
@keyframes cr-general { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-2px) } }
@keyframes cr-table { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cr-candle { 0% { opacity:0.8; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.85; transform: scale(0.95) } }
@keyframes cr-scroll { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-cleander-departs {
  background: linear-gradient(180deg, #6a8ab5 0%, #a0c0e0 30%, #d0e8f0 60%, #f0e8d0 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-cleander-departs .sky-warm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0d8b0 0%, #e0c898 30%, #c8a878 60%, transparent 100%);
  animation: cd-sky 20s ease-in-out infinite alternate;
}
.scn-cleander-departs .sun-circle {
  position: absolute; top: 5%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe8a0 0%, #f0c060 40%, transparent 70%);
  border-radius: 50%;
  animation: cd-sun 18s ease-in-out infinite alternate;
}
.scn-cleander-departs .horizon-hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.3);
  animation: cd-hills 16s ease-in-out infinite alternate;
}
.scn-cleander-departs .road {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%);
  border-radius: 20% / 50%;
  filter: blur(2px);
  animation: cd-road 12s ease-in-out infinite alternate;
}
.scn-cleander-departs .cleander-silhouette {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 50% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: cd-walk 4s ease-in-out infinite;
}
.scn-cleander-departs .spear {
  position: absolute; bottom: 55%; left: 35%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: cd-spear 5s ease-in-out infinite alternate;
}
.scn-cleander-departs .dust-cloud {
  position: absolute; bottom: 15%; left: 20%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(180,150,120,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: cd-dust 25s linear infinite;
}
.scn-cleander-departs .bird {
  position: absolute; top: 15%; width: 20px; height: 10px;
  background: transparent;
  border-top: 3px solid #2a2a1a;
  border-radius: 50% 50% 0 0;
  animation: cd-bird 14s linear infinite;
}
.scn-cleander-departs .bird.left { left: 10%; animation-delay: 0s; }
.scn-cleander-departs .bird.right { right: 20%; animation-delay: -7s; }
@keyframes cd-sky { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes cd-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(5px) scale(1.02) } 100% { transform: translateY(-3px) scale(0.98) } }
@keyframes cd-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cd-road { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cd-walk { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(10px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(20px) translateY(0) rotate(-1deg) } 75% { transform: translateX(30px) translateY(-1px) rotate(1deg) } }
@keyframes cd-spear { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes cd-dust { 0% { transform: translateX(-30px) scale(1) } 50% { transform: translateX(50px) scale(1.2) } 100% { transform: translateX(120vw) scale(0.8) } }
@keyframes cd-bird { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(100px) translateY(-15px) } 100% { transform: translateX(200px) translateY(5px) } }

.scn-anaxibius-summons {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a0e0e 40%, #0e0808 100%), radial-gradient(ellipse at 50% 20%, #2a1a0e 0%, transparent 60%);
}
.scn-anaxibius-summons .study-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a120e 0%, #0e0a06 100%);
  animation: as-bg 16s ease-in-out infinite alternate;
}
.scn-anaxibius-summons .desk {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 8px;
  background: linear-gradient(90deg, #4a3020 0%, #6a4a30 50%, #4a3020 100%);
  border-radius: 20% / 50%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  animation: as-desk 10s ease-in-out infinite alternate;
}
.scn-anaxibius-summons .anaxibius-head {
  position: absolute; bottom: 45%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 30%, #3a2a1a 0%, #2a1a0e 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-head 6s ease-in-out infinite;
}
.scn-anaxibius-summons .anaxibius-torso {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 50% 50% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: as-torso 6s ease-in-out infinite;
}
.scn-anaxibius-summons .letter {
  position: absolute; bottom: 25%; left: 45%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  border-radius: 5% / 10%;
  transform: rotate(5deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.6);
  animation: as-letter 8s ease-in-out infinite alternate;
}
.scn-anaxibius-summons .inkwell {
  position: absolute; bottom: 20%; left: 55%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%);
  border-radius: 50% 50% 20% 20%;
  animation: as-inkwell 7s ease-in-out infinite alternate;
}
.scn-anaxibius-summons .candle {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #c8a060 70%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #ffa040;
  animation: as-candle 3s ease-in-out infinite alternate;
}
.scn-anaxibius-summons .shadow-figure {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #0e0e1a 0%, #050508 100%);
  border-radius: 50% 40% 40% 40% / 40% 40% 60% 60%;
  opacity: 0.5;
  animation: as-shadow 8s ease-in-out infinite alternate;
}
@keyframes as-bg { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes as-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes as-head { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes as-torso { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(0) rotate(0.5deg) } }
@keyframes as-letter { 0% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(8deg) } }
@keyframes as-inkwell { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes as-candle { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.9; transform: scaleY(0.98) } }
@keyframes as-shadow { 0% { opacity:0.4; transform: translateX(0) } 50% { opacity:0.6; transform: translateX(3px) } 100% { opacity:0.5; transform: translateX(-2px) } }

/* phalinus-advises */
.scn-phalinus-advises {
  background: linear-gradient(180deg, #fce9c8 0%, #e8cfa0 60%, #c89870 100%),
              radial-gradient(ellipse at 50% 30%, #fff6e0 0%, transparent 70%);
}
.scn-phalinus-advises .pa-sky { position:absolute; inset:0; background: linear-gradient(180deg, #ffedd5 0%, #dbb88c 100%); }
.scn-phalinus-advises .pa-sun { position:absolute; top:8%; left:65%; width:90px; height:90px; background: radial-gradient(circle, #fff6c0 0%, #e0c870 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 60px rgba(255,240,160,0.4); animation: pa-sun 6s ease-in-out infinite alternate; }
.scn-phalinus-advises .pa-hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2d221a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6); }
.scn-phalinus-advises .pa-army { position:absolute; bottom:32%; left:10%; right:10%; height:25%; background: repeating-linear-gradient(90deg, #1a120c 0px, #1a120c 18px, transparent 18px, transparent 40px), linear-gradient(180deg, #1a120c 0%, #0e0a07 100%); background-blend-mode: multiply; animation: pa-army 2s steps(4) infinite; }
.scn-phalinus-advises .pa-speaker { position:absolute; bottom:30%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a20 0%, #1e140e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-speak 2.5s ease-in-out infinite; }
.scn-phalinus-advises .pa-shadow { position:absolute; bottom:30%; left:20%; right:20%; height:4px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(2px); animation: pa-shadow 3s ease-in-out infinite; }
.scn-phalinus-advises .pa-dust1 { position:absolute; top:45%; left:30%; width:6px; height:6px; background: #b89870; border-radius:50%; filter: blur(2px); animation: pa-drift1 8s linear infinite; }
.scn-phalinus-advises .pa-dust2 { position:absolute; top:40%; left:70%; width:4px; height:4px; background: #b89870; border-radius:50%; filter: blur(1.5px); animation: pa-drift2 10s linear infinite; }
@keyframes pa-sun { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.02); opacity:1; } 100% { transform: scale(0.98); opacity:0.85; } }
@keyframes pa-army { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes pa-speak { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(3px) rotate(3deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pa-shadow { 0% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(0.9); opacity:0.4; } 100% { transform: scaleX(1); opacity:0.6; } }
@keyframes pa-drift1 { 0% { transform: translate(0,0); } 100% { transform: translate(120px, -60px); opacity:0; } }
@keyframes pa-drift2 { 0% { transform: translate(0,0); } 100% { transform: translate(-100px, -50px); opacity:0; } }

/* final-answer */
.scn-final-answer {
  background: linear-gradient(180deg, #faf0dc 0%, #e8d8b8 40%, #b89870 100%),
              radial-gradient(ellipse at 70% 40%, #ffe8c0 0%, transparent 60%);
}
.scn-final-answer .fa-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffeac8 0%, #dbb88c 100%); }
.scn-final-answer .fa-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #5c4a3a 0%, #8c7050 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); }
.scn-final-answer .fa-spears { position:absolute; bottom:40%; left:10%; right:10%; height:60%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 4px, transparent 4px, transparent 28px); /* vertical lines */ width:80%; margin:0 auto; animation: fa-spears 3s ease-in-out infinite alternate; }
.scn-final-answer .fa-shields { position:absolute; bottom:38%; left:15%; width:70%; height:20%; background: radial-gradient(circle at 30% 50%, #6b4422 0%, transparent 25%), radial-gradient(circle at 70% 50%, #6b4422 0%, transparent 25%); background-size: 40px 40px; background-position: 10% 50%, 90% 50%; background-repeat: no-repeat; transform: scaleX(0.8); animation: fa-shields 4s ease-in-out infinite alternate; }
.scn-final-answer .fa-leader { position:absolute; bottom:30%; left:48%; width:30px; height:60px; background: linear-gradient(180deg, #4a3828 0%, #2e1f13 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-leader 2.5s ease-in-out infinite; }
.scn-final-answer .fa-flag { position:absolute; top:15%; left:45%; width:6px; height:50px; background: #5c3e2a; transform: rotate(-10deg); animation: fa-flag 5s ease-in-out infinite alternate; }
.scn-final-answer .fa-dust { position:absolute; bottom:35%; left:20%; width:8px; height:8px; background: #a08060; border-radius:50%; filter: blur(3px); animation: fa-dust 9s linear infinite; }
@keyframes fa-spears { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fa-shields { 0% { transform: scaleX(0.8) translateX(0); } 50% { transform: scaleX(0.85) translateX(-3px); } 100% { transform: scaleX(0.8) translateX(0); } }
@keyframes fa-leader { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fa-flag { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-10deg); } }
@keyframes fa-dust { 0% { transform: translate(0,0); opacity:0.6; } 100% { transform: translate(200px, -80px); opacity:0; } }

/* truce-terms */
.scn-truce-terms {
  background: linear-gradient(180deg, #f2dbb8 0%, #dbb88c 50%, #a8845e 100%),
              radial-gradient(ellipse at 50% 20%, #fff2d5 0%, transparent 70%);
}
.scn-truce-terms .tt-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #fff0d0 0%, #dbb88c 100%); }
.scn-truce-terms .tt-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #5c4a3a 0%, #8c7050 50%, #a8845e 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); }
.scn-truce-terms .tt-line { position:absolute; bottom:40%; left:0; right:0; height:3px; background: #c89870; box-shadow: 0 0 12px 6px rgba(192,152,112,0.5); animation: tt-line 3s ease-in-out infinite; }
.scn-truce-terms .tt-left { position:absolute; bottom:32%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a20, #1e140e); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: tt-fig-left 2s ease-in-out infinite; }
.scn-truce-terms .tt-right { position:absolute; bottom:32%; right:20%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a28, #2a1e12); border-radius: 40% 50% 40% 30% / 50% 60% 50% 40%; transform-origin: bottom center; animation: tt-fig-right 2.2s ease-in-out infinite; }
.scn-truce-terms .tt-spear-l { position:absolute; bottom:38%; left:25%; width:4px; height:30px; background: #4a3a2a; transform: rotate(-15deg); transform-origin: bottom center; animation: tt-spear-l 3s ease-in-out infinite alternate; }
.scn-truce-terms .tt-spear-r { position:absolute; bottom:38%; right:25%; width:4px; height:30px; background: #5c4a3a; transform: rotate(15deg); transform-origin: bottom center; animation: tt-spear-r 3.5s ease-in-out infinite alternate; }
@keyframes tt-line { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.5); } 100% { opacity:0.6; transform: scaleY(1); } }
@keyframes tt-fig-left { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-3px) rotate(3deg); } 60% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tt-fig-right { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(-3deg); } 60% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tt-spear-l { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-15deg); } }
@keyframes tt-spear-r { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(15deg); } }

/* clearchus-evasive */
.scn-clearchus-evasive {
  background: linear-gradient(180deg, #eedcc8 0%, #d4b890 60%, #a8845e 100%),
              radial-gradient(ellipse at 60% 40%, #fff0d5 0%, transparent 60%);
}
.scn-clearchus-evasive .ce-bg { position:absolute; inset:0; background: linear-gradient(135deg, #eedcc8 0%, #d4b890 50%, #c09870 100%); }
.scn-clearchus-evasive .ce-helmet { position:absolute; top:25%; left:40%; width:50px; height:40px; background: radial-gradient(circle at 50% 60%, #4a3828 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset -10px 0 15px rgba(0,0,0,0.6), 0 0 30px 10px rgba(0,0,0,0.3); transform: rotate(10deg); animation: ce-helmet 2s ease-in-out infinite alternate; }
.scn-clearchus-evasive .ce-shoulder { position:absolute; bottom:30%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #5c4a3a, #3a2a20); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: ce-shoulder 3s ease-in-out infinite alternate; }
.scn-clearchus-evasive .ce-spear { position:absolute; top:15%; left:60%; width:4px; height:70px; background: #6b4e36; transform: rotate(20deg); transform-origin: top left; animation: ce-spear 4s ease-in-out infinite; }
.scn-clearchus-evasive .ce-flare { position:absolute; top:10%; right:10%; width:80px; height:80px; background: radial-gradient(circle, #fff5c0 0%, transparent 70%); filter: blur(10px); animation: ce-flare 5s ease-in-out infinite alternate; }
@keyframes ce-helmet { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(-2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ce-shoulder { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ce-spear { 0% { transform: rotate(20deg) translate(0,0); } 25% { transform: rotate(22deg) translate(2px,-1px); } 50% { transform: rotate(18deg) translate(-1px,1px); } 75% { transform: rotate(21deg) translate(1px,-2px); } 100% { transform: rotate(20deg) translate(0,0); } }
@keyframes ce-flare { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }

.scn-dancing-warriors {
  background:
    linear-gradient(180deg, #6a7280 0%, #4a5058 30%, #2e3238 70%, #1a1c1e 100%),
    radial-gradient(ellipse at 50% 100%, #3a3f46 0%, transparent 60%);
}
.scn-dancing-warriors .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #4a4238 0%, #2a241e 100%);
  border-radius: 60% 40% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-dancing-warriors .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #7a8290 0%, #5a6070 50%, #3a4048 100%);
  opacity: 0.6;
  animation: dw1-sky 8s ease-in-out infinite alternate;
}
.scn-dancing-warriors .warrior-left {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #1e2024 0%, #0c0e10 60%, #000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dw1-warrior-left 3s ease-in-out infinite;
}
.scn-dancing-warriors .warrior-right {
  position: absolute;
  bottom: 22%;
  right: 25%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #1e2024 0%, #0c0e10 60%, #000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dw1-warrior-right 3s ease-in-out infinite;
}
.scn-dancing-warriors .shield-left {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 30px;
  height: 40px;
  background: radial-gradient(circle at 40% 40%, #8a7a6a 0%, #5a4a3a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: inset -2px -2px 6px rgba(0,0,0,0.4);
  animation: dw1-shield 3s ease-in-out infinite;
}
.scn-dancing-warriors .shield-right {
  position: absolute;
  bottom: 30%;
  right: 30%;
  width: 30px;
  height: 40px;
  background: radial-gradient(circle at 60% 40%, #8a7a6a 0%, #5a4a3a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  box-shadow: inset -2px -2px 6px rgba(0,0,0,0.4);
  animation: dw1-shield 3s ease-in-out infinite reverse;
}
.scn-dancing-warriors .spear-left {
  position: absolute;
  bottom: 40%;
  left: 35%;
  width: 4px;
  height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: dw1-spear 3s ease-in-out infinite;
}
.scn-dancing-warriors .spear-right {
  position: absolute;
  bottom: 40%;
  right: 35%;
  width: 4px;
  height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: dw1-spear 3s ease-in-out infinite reverse;
}
.scn-dancing-warriors .dust {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 80%;
  height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(80,70,60,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: dw1-dust 6s ease-in-out infinite;
}
@keyframes dw1-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes dw1-warrior-left {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(3deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes dw1-warrior-right {
  0% { transform: translateY(0) rotate(3deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes dw1-shield {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(5deg) scale(0.95); }
  100% { transform: rotate(-15deg) scale(1); }
}
@keyframes dw1-spear {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes dw1-dust {
  0% { opacity:0.3; transform: scaleY(1); }
  50% { opacity:0.6; transform: scaleY(2); }
  100% { opacity:0.3; transform: scaleY(1); }
}

.scn-king-burned-alive {
  background:
    linear-gradient(180deg, #1a1418 0%, #2a1c18 30%, #1a0e0a 70%, #0a0604 100%),
    radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, transparent 50%);
}
.scn-king-burned-alive .sky-dark {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2220 0%, #120c0a 100%);
  opacity: 0.8;
  animation: kb2-sky 15s ease-in-out infinite alternate;
}
.scn-king-burned-alive .tower {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 80px;
  height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 60%, #1a100a 100%);
  border-radius: 10% 10% 4% 4% / 30% 30% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: kb2-tower 12s ease-in-out infinite;
}
.scn-king-burned-alive .flames {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 60px;
  height: 50px;
  transform: translateX(-50%);
  background:
    radial-gradient(circle at 30% 40%, #c8553d 0%, #a0461a 40%, transparent 70%),
    radial-gradient(circle at 70% 60%, #c8553d 0%, #a0461a 40%, transparent 70%);
  filter: blur(2px);
  animation: kb2-flames 0.8s ease-in-out infinite alternate;
}
.scn-king-burned-alive .king-silhouette {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 30px;
  height: 50px;
  transform: translateX(-50%);
  background: #0a0604;
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: kb2-king 4s ease-in-out infinite;
}
.scn-king-burned-alive .greek-soldiers {
  position: absolute;
  bottom: 18%;
  left: 10%;
  width: 60px;
  height: 50px;
  background:
    linear-gradient(180deg, #1a1a1e 0%, #0c0c0e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  filter: blur(1px);
  animation: kb2-soldiers 6s ease-in-out infinite;
}
.scn-king-burned-alive .ground-ash {
  position: absolute;
  bottom: 0;
  left: 0; right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a1c14 0%, #0e0804 100%);
  border-radius: 40% 60% 0 0 / 30% 20% 0 0;
}
.scn-king-burned-alive .smoke {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 100px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(60,50,40,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: kb2-smoke 20s ease-in-out infinite;
}
@keyframes kb2-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes kb2-tower {
  0% { transform: translateX(-50%) skewX(0deg); }
  50% { transform: translateX(-50%) skewX(1deg) scaleY(1.02); }
  100% { transform: translateX(-50%) skewX(0deg); }
}
@keyframes kb2-flames {
  0% { opacity:0.7; transform: translateX(-50%) scaleY(0.8) scaleX(1.2); }
  50% { opacity:1; transform: translateX(-50%) scaleY(1) scaleX(0.9); }
  100% { opacity:0.8; transform: translateX(-50%) scaleY(0.85) scaleX(1.1); }
}
@keyframes kb2-king {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes kb2-soldiers {
  0% { transform: translateX(0); opacity:0.6; }
  50% { transform: translateX(8px); opacity:0.9; }
  100% { transform: translateX(0); opacity:0.6; }
}
@keyframes kb2-smoke {
  0% { transform: translateY(0) scaleX(1); opacity:0.3; }
  50% { transform: translateY(-15px) scaleX(1.5); opacity:0.6; }
  100% { transform: translateY(0) scaleX(1); opacity:0.3; }
}

.scn-tibarenians-pass {
  background:
    linear-gradient(180deg, #8a8a8a 0%, #6a7070 40%, #4a5050 80%, #2a2e2e 100%),
    radial-gradient(ellipse at 50% 100%, #5a6060 0%, transparent 70%);
}
.scn-tibarenians-pass .sky-overcast {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #9a9a9a 0%, #7a7e7e 50%, #5a5e5e 100%);
  animation: tp3-sky 20s ease-in-out infinite alternate;
}
.scn-tibarenians-pass .mountains {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 50% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: tp3-mountains 30s ease-in-out infinite alternate;
}
.scn-tibarenians-pass .fortress {
  position: absolute;
  bottom: 30%;
  left: 60%;
  width: 70px;
  height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1e 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tp3-fortress 15s ease-in-out infinite;
}
.scn-tibarenians-pass .path {
  position: absolute;
  bottom: 20%;
  left: 5%;
  width: 70%;
  height: 8px;
  background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 4px;
  opacity: 0.6;
  animation: tp3-path 40s linear infinite;
}
.scn-tibarenians-pass .figure-walking {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 16px;
  height: 30px;
  background: linear-gradient(180deg, #2a2a2e 0%, #121214 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tp3-figure 4s ease-in-out infinite;
}
.scn-tibarenians-pass .cloud-a {
  position: absolute;
  top: 12%;
  left: 10%;
  width: 90px;
  height: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(200,200,200,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: tp3-drift-a 50s linear infinite;
}
.scn-tibarenians-pass .cloud-b {
  position: absolute;
  top: 20%;
  right: 8%;
  width: 70px;
  height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(200,200,200,0.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: tp3-drift-b 60s linear infinite reverse;
}
@keyframes tp3-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes tp3-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tp3-fortress { 0% { transform: scale(0.95); opacity:0.8; } 50% { transform: scale(1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes tp3-path {
  0% { background-position: 0% 0; }
  100% { background-position: -200% 0; }
}
@keyframes tp3-figure {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(5px) translateY(-1px); }
  50% { transform: translateX(10px) translateY(0); }
  75% { transform: translateX(15px) translateY(-1px); }
  100% { transform: translateX(20px) translateY(0); }
}
@keyframes tp3-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes tp3-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-sinope-ambassadors {
  background:
    linear-gradient(180deg, #1a1418 0%, #2a1e20 30%, #1a0e10 70%, #0a0608 100%),
    radial-gradient(circle at 50% 50%, #3a2a2e 0%, transparent 70%);
}
.scn-sinope-ambassadors .wall-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1012 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-sinope-ambassadors .wall-shadows {
  position: absolute;
  inset: 0 0 20% 0;
  background: repeating-linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 8%, transparent 16%);
  animation: sa4-shadow 8s ease-in-out infinite alternate;
}
.scn-sinope-ambassadors .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-sinope-ambassadors .ambassador {
  position: absolute;
  bottom: 16%;
  left: 30%;
  width: 30px;
  height: 55px;
  background: linear-gradient(180deg, #2a2224 0%, #0e0a0c 100%);
  border-radius: 40% 40% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: sa4-ambassador 5s ease-in-out infinite;
}
.scn-sinope-ambassadors .soldier {
  position: absolute;
  bottom: 16%;
  right: 30%;
  width: 32px;
  height: 58px;
  background: linear-gradient(180deg, #1e1e22 0%, #0a0a0c 100%);
  border-radius: 40% 40% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: sa4-soldier 5s ease-in-out infinite reverse;
}
.scn-sinope-ambassadors .table {
  position: absolute;
  bottom: 12%;
  left: 50%;
  width: 50px;
  height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-sinope-ambassadors .lantern {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 12px;
  height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #d0a060 0%, #a07030 60%, #503010 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(160,112,48,0.5);
  animation: sa4-lantern 3s ease-in-out infinite alternate;
}
.scn-sinope-ambassadors .lantern-glow {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 100px;
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, rgba(200,160,80,0.15) 0%, transparent 70%);
  filter: blur(12px);
  animation: sa4-glow 4s ease-in-out infinite alternate;
}
@keyframes sa4-shadow { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.3; } }
@keyframes sa4-ambassador {
  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 sa4-soldier {
  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 sa4-lantern {
  0% { box-shadow: 0 0 15px 4px rgba(160,112,48,0.4); opacity:0.8; }
  50% { box-shadow: 0 0 25px 8px rgba(200,160,80,0.6); opacity:1; }
  100% { box-shadow: 0 0 15px 4px rgba(160,112,48,0.4); opacity:0.8; }
}
@keyframes sa4-glow {
  0% { transform: translateX(-50%) scale(1); opacity:0.6; }
  50% { transform: translateX(-50%) scale(1.2); opacity:1; }
  100% { transform: translateX(-50%) scale(1); opacity:0.6; }
}

/* Scene: silans-prophecy (calm, overcast) */
.scn-silans-prophecy {
  background:
    linear-gradient(180deg, #8a9ca8 0%, #6b7d89 40%, #4e5e68 100%),
    radial-gradient(ellipse at 50% 100%, #5a6b75 0%, transparent 70%);
}
.scn-silans-prophecy .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9aacb8 0%, transparent 100%);
  animation: sp-sky 14s ease-in-out infinite alternate;
}
.scn-silans-prophecy .distant-land {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a73 0%, #3a4a43 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: sp-land 20s ease-in-out infinite alternate;
}
.scn-silans-prophecy .trench {
  position: absolute; bottom: 28%; left: -10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #2a3a33 0%, #1a2a23 100%);
  border-radius: 0 0 30% 30%;
  transform: scale(0.95);
  animation: sp-trench 8s ease-in-out infinite alternate;
}
.scn-silans-prophecy .figure {
  position: absolute; bottom: 26%; left: 32%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a4a3d 0%, #1a2a1d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-figure 6s ease-in-out infinite;
}
.scn-silans-prophecy .coin-pile {
  position: absolute; bottom: 24%; left: 50%; width: 32px; height: 18px;
  background: radial-gradient(circle at 30% 50%, #c8a460 0%, #a08040 60%, #604020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sp-coins 4s ease-in-out infinite;
}
.scn-silans-prophecy .coin-glow {
  position: absolute; bottom: 25%; left: 52%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e8c060 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sp-glow 3s ease-in-out infinite alternate;
}
.scn-silans-prophecy .cloud-1 {
  position: absolute; top: 12%; left: 20%; width: 70px; height: 14px;
  background: rgba(200,210,215,0.5);
  border-radius: 50%;
  filter: blur(5px);
  animation: sp-cloud-a 40s linear infinite;
}
.scn-silans-prophecy .cloud-2 {
  position: absolute; top: 20%; right: 10%; width: 50px; height: 10px;
  background: rgba(210,220,225,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: sp-cloud-b 55s linear infinite reverse;
}
@keyframes sp-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sp-land { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sp-trench { 0% { transform: scaleX(0.95); } 100% { transform: scaleX(1.05); } }
@keyframes sp-figure { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes sp-coins { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes sp-glow { 0% { opacity: 0.4; transform: scale(0.8); } 100% { opacity: 0.9; transform: scale(1.2); } }
@keyframes sp-cloud-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes sp-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* Scene: pategyas-warning (tense, sunlit) */
.scn-pategyas-warning {
  background:
    linear-gradient(180deg, #e8d4a0 0%, #d4b878 40%, #b09050 100%),
    radial-gradient(ellipse at 80% 20%, #f0d8a0 0%, transparent 60%);
}
.scn-pategyas-warning .bright-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0e8c8 0%, transparent 100%);
  animation: pw-sky 8s ease-in-out infinite alternate;
}
.scn-pategyas-warning .dust-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #c8a878 0%, #b89060 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: pw-ground 10s ease-in-out infinite alternate;
}
.scn-pategyas-warning .horse {
  position: absolute; bottom: 22%; left: 35%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 40% 60% 50% 50% / 60% 50% 40% 50%;
  animation: pw-horse 5s ease-in-out infinite;
}
.scn-pategyas-warning .rider {
  position: absolute; bottom: 38%; left: 37%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: pw-rider 4s ease-in-out infinite;
}
.scn-pategyas-warning .corselet {
  position: absolute; bottom: 35%; left: 39%; width: 20px; height: 22px;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 2px 2px 4px rgba(255,255,255,0.2), inset -2px -2px 4px rgba(0,0,0,0.3);
  animation: pw-armor 3s ease-in-out infinite alternate;
}
.scn-pategyas-warning .spear {
  position: absolute; bottom: 40%; left: 52%; width: 2px; height: 60px;
  background: linear-gradient(180deg, #705030 0%, #503820 100%);
  transform-origin: bottom center;
  animation: pw-spear 6s ease-in-out infinite;
}
.scn-pategyas-warning .dust-puff {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 20px;
  background: rgba(200,180,140,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: pw-dust 2s ease-in-out infinite alternate;
}
.scn-pategyas-warning .lance-shadow {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 4px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: pw-shadow 4s ease-in-out infinite;
}
@keyframes pw-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pw-ground { 0% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes pw-horse { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } }
@keyframes pw-rider { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes pw-armor { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(1.05); opacity: 1; } }
@keyframes pw-spear { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } }
@keyframes pw-dust { 0% { transform: scale(0.8) translateY(0); opacity: 0.3; } 100% { transform: scale(1.5) translateY(-5px); opacity: 0.6; } }
@keyframes pw-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.7); } }

/* Scene: enemy-appears (tense, sunlit) */
.scn-enemy-appears {
  background:
    linear-gradient(180deg, #d6c8a0 0%, #c0a878 40%, #a88858 100%),
    radial-gradient(ellipse at 60% 70%, #e0c888 0%, transparent 80%);
}
.scn-enemy-appears .sky-haze {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e0d4b0 0%, #c8b890 100%);
  animation: ea-haze 12s ease-in-out infinite alternate;
}
.scn-enemy-appears .dust-cloud {
  position: absolute; bottom: 50%; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,140,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: ea-dust 8s ease-in-out infinite alternate;
}
.scn-enemy-appears .soldier-line-1 {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 40px;
  background: repeating-linear-gradient(90deg, 
    #4a3a2a 0px, #3a2a1a 4px, transparent 4px, transparent 12px);
  mask: radial-gradient(ellipse at 50% 100%, black 20%, transparent 50%);
  animation: ea-line1 5s linear infinite alternate;
}
.scn-enemy-appears .soldier-line-2 {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30px;
  background: repeating-linear-gradient(90deg, 
    #4a3a2a 0px, #3a2a1a 3px, transparent 3px, transparent 10px);
  mask: radial-gradient(ellipse at 50% 100%, black 30%, transparent 60%);
  animation: ea-line2 6s linear infinite alternate;
}
.scn-enemy-appears .chariot-1 {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
  animation: ea-chariot1 4s ease-in-out infinite;
}
.scn-enemy-appears .chariot-2 {
  position: absolute; bottom: 28%; left: 60%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -3px 6px rgba(0,0,0,0.4);
  animation: ea-chariot2 5s ease-in-out infinite reverse;
}
.scn-enemy-appears .white-cuirass {
  position: absolute; bottom: 28%; left: 18%; width: 12px; height: 16px;
  background: radial-gradient(circle at 40% 40%, #f0e8d0 0%, #c8b898 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px rgba(255,255,200,0.5);
  animation: ea-white 3s ease-in-out infinite alternate;
}
.scn-enemy-appears .scythe-blur {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 20px;
  background: linear-gradient(135deg, rgba(180,160,120,0.5) 0%, transparent 50%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ea-scythe 2s ease-in-out infinite;
}
@keyframes ea-haze { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ea-dust { 0% { transform: translateX(-5px) scaleY(1); } 100% { transform: translateX(5px) scaleY(0.9); } }
@keyframes ea-line1 { 0% { background-position: 0 0; } 100% { background-position: -20px 0; } }
@keyframes ea-line2 { 0% { background-position: 0 0; } 100% { background-position: 15px 0; } }
@keyframes ea-chariot1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(2deg); } }
@keyframes ea-chariot2 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-2deg); } }
@keyframes ea-white { 0% { box-shadow: 0 0 4px rgba(255,255,200,0.3); } 100% { box-shadow: 0 0 12px rgba(255,255,200,0.7); } }
@keyframes ea-scythe { 0%,100% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(20deg) scale(1.3); } }

/* Scene: battle-cry (tense, sunlit) */
.scn-battle-cry {
  background:
    linear-gradient(180deg, #f0d8a0 0%, #d4b878 40%, #b89858 100%),
    radial-gradient(ellipse at 30% 80%, #fce8a8 0%, transparent 70%);
}
.scn-battle-cry .sky-bright {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f8ecb0 0%, #e0d098 100%);
  animation: bc-sky 6s ease-in-out infinite alternate;
}
.scn-battle-cry .charge-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #b89858 0%, #d0b878 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.2);
  animation: bc-ground 9s ease-in-out infinite alternate;
}
.scn-battle-cry .hoplite-1 {
  position: absolute; bottom: 25%; left: 20%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: bc-hop1 2s ease-in-out infinite;
}
.scn-battle-cry .hoplite-2 {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: bc-hop2 2.4s ease-in-out infinite 0.3s;
}
.scn-battle-cry .hoplite-3 {
  position: absolute; bottom: 26%; left: 50%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: bc-hop3 2.7s ease-in-out infinite 0.6s;
}
.scn-battle-cry .chariot-sweep {
  position: absolute; bottom: 22%; left: 60%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: bc-chariot 3s ease-in-out infinite;
}
.scn-battle-cry .dust-trail {
  position: absolute; bottom: 18%; left: 50%; right: 0; height: 20px;
  background: radial-gradient(ellipse at 30% 100%, rgba(180,160,120,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: bc-dust 5s linear infinite alternate;
}
.scn-battle-cry .paean-wave {
  position: absolute; top: 35%; left: 10%; right: 10%; height: 40px;
  background: repeating-linear-gradient(90deg, 
    transparent 0px, rgba(255,240,180,0.2) 2px, transparent 4px, transparent 40px);
  animation: bc-wave 4s linear infinite;
}
.scn-battle-cry .spear-tip {
  position: absolute; bottom: 40%; left: 22%; width: 2px; height: 30px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  transform-origin: bottom center;
  animation: bc-spear 2.5s ease-in-out infinite;
}
@keyframes bc-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bc-ground { 0% { transform: scaleY(0.97); } 100% { transform: scaleY(1.03); } }
@keyframes bc-hop1 { 0%,100% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-3px) rotate(4deg); } }
@keyframes bc-hop2 { 0%,100% { transform: translateY(0) rotate(-4deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-4px) rotate(5deg); } }
@keyframes bc-hop3 { 0%,100% { transform: translateY(0) rotate(-6deg); } 25% { transform: translateY(-5px) rotate(1deg); } 50% { transform: translateY(0) rotate(-4deg); } 75% { transform: translateY(-3px) rotate(3deg); } }
@keyframes bc-chariot { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } }
@keyframes bc-dust { 0% { transform: translateX(-10px); opacity: 0.3; } 100% { transform: translateX(20px); opacity: 0.7; } }
@keyframes bc-wave { 0% { background-position: 0 0; } 100% { background-position: 80px 0; } }
@keyframes bc-spear { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(10deg); } }

.scn-carduchians {
  background: linear-gradient(135deg, #1e1414 0%, #0a0808 60%), radial-gradient(ellipse at 45% 55%, #3a2020 0%, transparent 75%);
}
.scn-carduchians .tent-back {
  position: absolute; inset: 0; background: linear-gradient(0deg, #140e0e 0%, transparent 40%); opacity: 0.6;
}
.scn-carduchians .table-dark {
  position: absolute; bottom: 30%; left: 28%; width: 44%; height: 8%; background: linear-gradient(180deg, #1a1010 0%, #0d0707 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 15px rgba(0,0,0,0.7); transform: perspective(800px) rotateX(10deg);
  animation: ca-table 6s ease-in-out infinite alternate;
}
.scn-carduchians .figure-left {
  position: absolute; bottom: 35%; left: 20%; width: 12%; height: 28%; background: linear-gradient(180deg, #1a1212 0%, #0b0707 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center;
  animation: ca-figure-left 5s ease-in-out infinite alternate;
}
.scn-carduchians .figure-right {
  position: absolute; bottom: 35%; right: 17%; width: 14%; height: 30%; background: linear-gradient(180deg, #1a1212 0%, #0b0707 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom right;
  animation: ca-figure-right 5s ease-in-out infinite alternate;
}
.scn-carduchians .lantern-glow {
  position: absolute; bottom: 45%; left: 44%; width: 12%; height: 12%; background: radial-gradient(circle, #f0a050 0%, #b07030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #c08040, 0 0 80px 30px rgba(192,128,64,0.3);
  animation: ca-lantern 3s ease-in-out infinite alternate;
}
.scn-carduchians .shadow-spread {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 20%; background: radial-gradient(ellipse at 50% 100%, #000000 0%, transparent 80%); opacity: 0.5;
  animation: ca-shadow 9s ease-in-out infinite alternate;
}
@keyframes ca-table { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes ca-figure-left { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ca-figure-right { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ca-lantern { 0% { filter: brightness(0.8) blur(1px); } 50% { filter: brightness(1.3) blur(0.5px); } 100% { filter: brightness(0.9) blur(1px); } }
@keyframes ca-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-night-march-carduchians {
  background: linear-gradient(180deg, #0b0e1a 0%, #131726 40%, #1a2235 100%), radial-gradient(ellipse at 50% 0%, #1e2a40 0%, transparent 60%);
}
.scn-night-march-carduchians .night-sky {
  position: absolute; inset: 0 0 70% 0; background: linear-gradient(180deg, #0a0d1a 0%, #121e30 100%); 
  animation: nm-sky 15s ease-in-out infinite alternate;
}
.scn-night-march-carduchians .mountain-range {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #1a2235 0%, #0d111c 100%); border-radius: 80% 20% 0 0 / 60% 40% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
  animation: nm-mountain 20s ease-in-out infinite alternate;
}
.scn-night-march-carduchians .path-dark {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 10%; background: linear-gradient(0deg, #2a3340 0%, #1a2230 100%); border-radius: 20% 80% 0 0 / 100% 100% 0 0;
}
.scn-night-march-carduchians .soldier-wave-1 {
  position: absolute; bottom: 16%; left: -20%; width: 35%; height: 18%; background: radial-gradient(ellipse at 30% 100%, #1a2020 0%, transparent 90%); filter: blur(2px);
  animation: nm-soldiers 25s linear infinite;
}
.scn-night-march-carduchians .soldier-wave-2 {
  position: absolute; bottom: 15%; left: -40%; width: 45%; height: 20%; background: radial-gradient(ellipse at 30% 100%, #151a1a 0%, transparent 90%); filter: blur(3px);
  animation: nm-soldiers 30s linear infinite 5s;
}
.scn-night-march-carduchians .star-twinkle-1 {
  position: absolute; top: 8%; left: 20%; width: 6px; height: 6px; background: #c0d0ff; border-radius: 50%; box-shadow: 0 0 10px 3px #a0b0e0;
  animation: nm-star 4s ease-in-out infinite alternate;
}
.scn-night-march-carduchians .star-twinkle-2 {
  position: absolute; top: 15%; right: 25%; width: 4px; height: 4px; background: #d0e0ff; border-radius: 50%; box-shadow: 0 0 8px 2px #b0c0f0;
  animation: nm-star 5s ease-in-out infinite alternate 2s;
}
.scn-night-march-carduchians .dust-plume {
  position: absolute; bottom: 11%; left: 30%; width: 40%; height: 5%; background: linear-gradient(90deg, transparent, rgba(180,190,200,0.15), transparent); filter: blur(8px);
  animation: nm-dust 12s ease-in-out infinite alternate;
}
@keyframes nm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes nm-mountain { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes nm-soldiers { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(40vw) scaleX(1.1); } 100% { transform: translateX(80vw) scaleX(1); } }
@keyframes nm-star { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes nm-dust { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.5); } 100% { transform: translateX(-5px) scaleX(0.8); } }

.scn-villages-abandoned {
  background: linear-gradient(180deg, #2a4a5a 0%, #7a6a5a 40%, #c89878 100%), radial-gradient(ellipse at 50% 100%, #e8b888 0%, transparent 60%);
}
.scn-villages-abandoned .dawn-sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #5a7a8a 0%, #b89878 100%); 
  animation: va-sky 10s ease-in-out infinite alternate;
}
.scn-villages-abandoned .hill-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
  animation: va-hill 20s ease-in-out infinite alternate;
}
.scn-villages-abandoned .house-left {
  position: absolute; bottom: 30%; left: 15%; width: 12%; height: 15%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: va-house 8s ease-in-out infinite alternate;
}
.scn-villages-abandoned .house-right {
  position: absolute; bottom: 28%; right: 20%; width: 16%; height: 18%; background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: va-house 10s ease-in-out infinite alternate 3s;
}
.scn-villages-abandoned .sun-rays {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%; background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%); filter: blur(10px);
  animation: va-rays 15s ease-in-out infinite alternate;
}
.scn-villages-abandoned .dust-mote-1 {
  position: absolute; top: 25%; left: 10%; width: 4px; height: 4px; background: rgba(200,180,160,0.5); border-radius: 50%; filter: blur(1px);
  animation: va-dust 6s ease-in-out infinite alternate;
}
.scn-villages-abandoned .dust-mote-2 {
  position: absolute; top: 35%; right: 20%; width: 3px; height: 3px; background: rgba(200,180,160,0.4); border-radius: 50%; filter: blur(1px);
  animation: va-dust 8s ease-in-out infinite alternate 2s;
}
.scn-villages-abandoned .shadow-house {
  position: absolute; bottom: 28%; left: 10%; width: 20%; height: 12%; background: linear-gradient(90deg, #2a1a1a 0%, transparent 100%); opacity: 0.3;
  animation: va-shadow 12s ease-in-out infinite alternate;
}
@keyframes va-sky { 0% { filter: brightness(0.8); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.9); } }
@keyframes va-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes va-house { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.98); } }
@keyframes va-rays { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.1); } 100% { transform: rotate(-2deg) scaleY(0.95); } }
@keyframes va-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.3; } 50% { transform: translate(5px,-5px) scale(1.5); opacity: 0.6; } 100% { transform: translate(-3px,3px) scale(0.8); opacity: 0.2; } }
@keyframes va-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }

.scn-weaklings-left {
  background: linear-gradient(180deg, #3a4a5a 0%, #7a6a5a 30%, #b89878 100%), radial-gradient(ellipse at 50% 100%, #d0a880 0%, transparent 50%);
}
.scn-weaklings-left .dawn-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-weaklings-left .dawn-sky-wl {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #5a6a7a 0%, #b09878 100%); 
  animation: wl-sky 12s ease-in-out infinite alternate;
}
.scn-weaklings-left .march-column {
  position: absolute; bottom: 20%; left: 0; width: 60%; height: 15%; background: linear-gradient(90deg, #2a221a 0%, transparent 100%); filter: blur(4px);
  animation: wl-march 20s linear infinite;
}
.scn-weaklings-left .seated-figure {
  position: absolute; bottom: 20%; right: 15%; width: 10%; height: 20%; background: linear-gradient(180deg, #1a1212 0%, #0a0707 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center;
  animation: wl-seated 4s ease-in-out infinite alternate;
}
.scn-weaklings-left .discarded-pack {
  position: absolute; bottom: 24%; left: 50%; width: 6%; height: 6%; background: #3a2a1a; border-radius: 10%; box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: wl-pack 10s ease-in-out infinite alternate;
}
.scn-weaklings-left .dawn-glow {
  position: absolute; top: 0; left: 30%; width: 40%; height: 50%; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,150,0.2) 0%, transparent 70%);
  animation: wl-glow 15s ease-in-out infinite alternate;
}
.scn-weaklings-left .mist-wisp {
  position: absolute; bottom: 15%; left: 10%; width: 30%; height: 8%; background: linear-gradient(90deg, transparent, rgba(200,180,160,0.1), transparent); filter: blur(6px);
  animation: wl-mist 18s ease-in-out infinite alternate;
}
@keyframes wl-sky { 0% { filter: brightness(0.85); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.9); } }
@keyframes wl-march { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(20vw) scaleX(1.2); } 100% { transform: translateX(40vw) scaleX(1); } }
@keyframes wl-seated { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes wl-pack { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes wl-glow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes wl-mist { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.5); } 100% { transform: translateX(-5px) scaleY(0.8); } }

.scn-soldiers-mutiny-for-pay {
  background: linear-gradient(180deg, #2b1e1a 0%, #3a2823 30%, #1f1411 100%);
  background: radial-gradient(ellipse at 30% 40%, #5a3a2a 0%, transparent 60%);
}
.scn-soldiers-mutiny-for-pay .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a2a25 0%, #4a3530 40%, #3a2a25 80%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: sm-wall 8s ease-in-out infinite alternate;
}
.scn-soldiers-mutiny-for-pay .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1f1a 100%);
  box-shadow: inset 0 -8px 10px rgba(0,0,0,0.5);
}
.scn-soldiers-mutiny-for-pay .throne {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a18 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: sm-throne 10s ease-in-out infinite;
}
.scn-soldiers-mutiny-for-pay .ruler {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5050 0%, #3a2828 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: sm-ruler 5s ease-in-out infinite alternate;
}
.scn-soldiers-mutiny-for-pay .soldier.left {
  position: absolute; bottom: 22%; left: 18%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(5deg);
  animation: sm-soldier-left 4s ease-in-out infinite;
}
.scn-soldiers-mutiny-for-pay .soldier.right {
  position: absolute; bottom: 22%; right: 18%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(-5deg);
  animation: sm-soldier-right 4s ease-in-out infinite 1s;
}
.scn-soldiers-mutiny-for-pay .torch {
  position: absolute; bottom: 30%; left: 8%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a08 100%);
  border-radius: 2px;
}
.scn-soldiers-mutiny-for-pay .light {
  position: absolute; bottom: 30%; left: 8%; width: 80px; height: 80px;
  background: radial-gradient(circle, #d49040 0%, rgba(200,120,40,0.3) 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 20%);
  animation: sm-light 3s ease-in-out infinite alternate;
}
@keyframes sm-wall {
  0% { opacity: 1; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(0.98); }
  100% { opacity: 0.95; transform: scaleY(1); }
}
@keyframes sm-throne {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
}
@keyframes sm-ruler {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes sm-soldier-left {
  0% { transform: rotate(5deg) translateX(0); }
  25% { transform: rotate(3deg) translateX(2px); }
  50% { transform: rotate(5deg) translateX(0); }
  75% { transform: rotate(7deg) translateX(-2px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes sm-soldier-right {
  0% { transform: rotate(-5deg) translateX(0); }
  25% { transform: rotate(-7deg) translateX(-2px); }
  50% { transform: rotate(-5deg) translateX(0); }
  75% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes sm-light {
  0% { opacity: 0.6; transform: translate(-50%, 20%) scale(0.9); }
  50% { opacity: 1; transform: translate(-50%, 20%) scale(1.1); }
  100% { opacity: 0.7; transform: translate(-50%, 20%) scale(0.95); }
}

.scn-tyriaeum-review {
  background: linear-gradient(180deg, #87ceeb 0%, #a8d8ea 30%, #f0e68c 100%);
  background: radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 50%);
}
.scn-tyriaeum-review .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #d4eef2 100%);
  animation: tr-sky 20s ease-in-out infinite alternate;
}
.scn-tyriaeum-review .sun {
  position: absolute; top: 5%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5b0 0%, #ffed80 40%, transparent 60%);
  border-radius: 50%;
  animation: tr-sun 12s ease-in-out infinite;
}
.scn-tyriaeum-review .plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #8fbc8f 0%, #c9b68e 40%, #d4c4a8 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
}
.scn-tyriaeum-review .chariot {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: tr-chariot 6s ease-in-out infinite;
}
.scn-tyriaeum-review .queen {
  position: absolute; bottom: 28%; left: 45%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #e6c8a0 0%, #c4a080 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-3deg);
  animation: tr-queen 8s ease-in-out infinite alternate;
}
.scn-tyriaeum-review .phalanx.left {
  position: absolute; bottom: 10%; left: 5%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: tr-phalanx 4s ease-in-out infinite;
}
.scn-tyriaeum-review .phalanx.right {
  position: absolute; bottom: 10%; right: 5%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: -2px 0 4px rgba(0,0,0,0.3);
  animation: tr-phalanx 4s ease-in-out infinite 0.5s;
}
.scn-tyriaeum-review .standard {
  position: absolute; bottom: 35%; left: 42%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%);
  transform: rotate(-5deg);
  animation: tr-standard 7s ease-in-out infinite alternate;
}
.scn-tyriaeum-review .dust {
  position: absolute; bottom: 15%; left: 10%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(210,190,160,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: tr-dust 25s linear infinite;
}
@keyframes tr-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes tr-sun {
  0% { transform: scale(1); opacity: 0.95; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.9; }
}
@keyframes tr-chariot {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes tr-queen {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes tr-phalanx {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tr-standard {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-3deg) scaleY(1.02); }
  100% { transform: rotate(-7deg) scaleY(1); }
}
@keyframes tr-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(20px) scale(1.2); opacity: 0.5; }
  100% { transform: translateX(40px) scale(1); opacity: 0.3; }
}

.scn-greek-charge {
  background: linear-gradient(180deg, #8fc5d0 0%, #b0e0e6 40%, #f5deb3 100%);
  background: radial-gradient(ellipse at 30% 80%, #f5deb3 0%, transparent 60%);
}
.scn-greek-charge .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b4d6e0 0%, #d4eef2 100%);
  animation: gc-sky 15s ease-in-out infinite alternate;
}
.scn-greek-charge .sunflares {
  position: absolute; top: 5%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fffae0 0%, rgba(255,250,220,0.3) 30%, transparent 60%);
  border-radius: 50%;
  animation: gc-sunflares 4s ease-in-out infinite;
}
.scn-greek-charge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #c2a87a 0%, #d6c6a0 40%, #e0d4b8 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.2);
}
.scn-greek-charge .hoplite.runner1 {
  position: absolute; bottom: 20%; left: 10%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #6a4080 0%, #4a2860 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(15deg) scaleX(0.7);
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  animation: gc-runner1 2s ease-in-out infinite;
}
.scn-greek-charge .hoplite.runner2 {
  position: absolute; bottom: 22%; left: 30%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #7a4a8a 0%, #5a2a6a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-10deg) scaleX(0.75);
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  animation: gc-runner2 2.2s ease-in-out infinite 0.3s;
}
.scn-greek-charge .hoplite.runner3 {
  position: absolute; bottom: 18%; right: 20%; width: 18px; height: 52px;
  background: linear-gradient(180deg, #6a4080 0%, #4a2860 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(20deg) scaleX(0.65);
  box-shadow: -2px 0 4px rgba(0,0,0,0.4);
  animation: gc-runner3 2.5s ease-in-out infinite 0.6s;
}
.scn-greek-charge .shield.flash {
  position: absolute; bottom: 26%; left: 15%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffe680 0%, #ccaa50 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(255,230,128,0.6);
  animation: gc-shield 0.8s ease-in-out infinite;
}
.scn-greek-charge .dust.plume {
  position: absolute; bottom: 8%; left: 5%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: gc-dust 3s ease-in-out infinite;
}
.scn-greek-charge .queen.fleeing {
  position: absolute; bottom: 25%; right: 8%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #e6c8a0 0%, #c4a080 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg) scaleX(0.8);
  animation: gc-queen 2s ease-in-out infinite alternate;
}
@keyframes gc-sky {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gc-sunflares {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes gc-runner1 {
  0% { transform: rotate(15deg) translateX(0) scaleX(0.7); }
  25% { transform: rotate(15deg) translateX(8px) scaleX(0.75); }
  50% { transform: rotate(15deg) translateX(16px) scaleX(0.7); }
  75% { transform: rotate(15deg) translateX(8px) scaleX(0.75); }
  100% { transform: rotate(15deg) translateX(0) scaleX(0.7); }
}
@keyframes gc-runner2 {
  0% { transform: rotate(-10deg) translateX(0) scaleX(0.75); }
  25% { transform: rotate(-10deg) translateX(-6px) scaleX(0.8); }
  50% { transform: rotate(-10deg) translateX(-12px) scaleX(0.75); }
  75% { transform: rotate(-10deg) translateX(-6px) scaleX(0.8); }
  100% { transform: rotate(-10deg) translateX(0) scaleX(0.75); }
}
@keyframes gc-runner3 {
  0% { transform: rotate(20deg) translateX(0) scaleX(0.65); }
  25% { transform: rotate(20deg) translateX(-8px) scaleX(0.7); }
  50% { transform: rotate(20deg) translateX(-16px) scaleX(0.65); }
  75% { transform: rotate(20deg) translateX(-8px) scaleX(0.7); }
  100% { transform: rotate(20deg) translateX(0) scaleX(0.65); }
}
@keyframes gc-shield {
  0% { opacity: 0.5; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes gc-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.2; }
  50% { transform: translateX(30px) scale(1.5); opacity: 0.5; }
  100% { transform: translateX(60px) scale(1); opacity: 0.2; }
}
@keyframes gc-queen {
  0% { transform: rotate(10deg) translateX(0) scaleX(0.8); }
  50% { transform: rotate(5deg) translateX(10px) scaleX(0.85); }
  100% { transform: rotate(10deg) translateX(20px) scaleX(0.8); }
}

.scn-iconium-march {
  background: linear-gradient(180deg, #8ab4b8 0%, #a8c8d0 30%, #d4b896 100%);
  background: radial-gradient(ellipse at 50% 0%, #e6d8b0 0%, transparent 50%);
}
.scn-iconium-march .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a0c4d0 0%, #c8dce0 100%);
  animation: im-sky 25s ease-in-out infinite alternate;
}
.scn-iconium-march .mountains {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%);
  border-radius: 30% 50% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: im-mountains 30s ease-in-out infinite alternate;
}
.scn-iconium-march .road {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, #8a7a5a 0%, #a09070 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
.scn-iconium-march .column.soldier1 {
  position: absolute; bottom: 18%; left: 20%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: im-soldier 8s linear infinite;
}
.scn-iconium-march .column.soldier2 {
  position: absolute; bottom: 18%; left: 35%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: im-soldier 8s linear infinite 1s;
}
.scn-iconium-march .column.soldier3 {
  position: absolute; bottom: 18%; right: 25%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: im-soldier 8s linear infinite 2s;
}
.scn-iconium-march .column.dust {
  position: absolute; bottom: 10%; left: 10%; width: 200px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,160,130,0.35) 0%, transparent 70%);
  filter: blur(10px);
  animation: im-dust 20s linear infinite;
}
.scn-iconium-march .sun {
  position: absolute; top: 8%; right: 12%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff6c0 0%, #ffe680 30%, transparent 60%);
  border-radius: 50%;
  animation: im-sun 15s ease-in-out infinite;
}
@keyframes im-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes im-mountains {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes im-soldier {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(0deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes im-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.2; }
  50% { transform: translateX(30px) scale(1.3); opacity: 0.4; }
  100% { transform: translateX(60px) scale(1); opacity: 0.2; }
}
@keyframes im-sun {
  0% { transform: scale(0.95); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.95; }
}

/* mount-theches – warm sunlit, view of sea */
.scn-mount-theches {
  background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 50%, #e8c292 100%),
              radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 60%);
}
.scn-mount-theches .sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #ffd70022 0%, transparent 100%); animation:mt-sky 10s ease-in-out infinite alternate; }
.scn-mount-theches .mountains { position:absolute; bottom:45%; left:0; right:0; height:30%; background:linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius:60% 40% 0 0 / 80% 70% 0 0; box-shadow:inset 0 6px 15px rgba(0,0,0,.3); animation:mt-mnt 15s ease-in-out infinite alternate; }
.scn-mount-theches .sea { position:absolute; bottom:25%; left:0; right:0; height:25%; background:linear-gradient(180deg, #4682b4 0%, #2e4b7a 100%); border-radius:0 0 30% 30%; animation:mt-sea 4s ease-in-out infinite; }
.scn-mount-theches .horse { position:absolute; bottom:30%; left:45%; width:60px; height:30px; background:linear-gradient(135deg, #d2b48c 0%, #a0522d 100%); border-radius:50% 40% 30% 50% / 40% 30% 50% 40%; animation:mt-horse 0.8s ease-in-out infinite alternate; }
.scn-mount-theches .rider { position:absolute; bottom:37%; left:47%; width:20px; height:30px; background:linear-gradient(180deg, #8b4513 0%, #3e2723 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mt-rider 0.8s ease-in-out infinite alternate; }
.scn-mount-theches .sun { position:absolute; top:10%; left:70%; width:50px; height:50px; background:radial-gradient(circle, #fff5cc 0%, #ffd700 50%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 20px rgba(255,215,0,.5); animation:mt-sun 6s ease-in-out infinite; }
.scn-mount-theches .cloud { position:absolute; height:20px; background:linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter:blur(4px); }
.scn-mount-theches .cloud-a { width:80px; top:15%; left:10%; animation:mt-drift-a 40s linear infinite; }
.scn-mount-theches .cloud-b { width:60px; top:25%; right:5%; animation:mt-drift-b 50s linear infinite reverse; }
@keyframes mt-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes mt-mnt { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes mt-sea { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes mt-horse { 0%{transform:translateX(0) rotate(-2deg)} 100%{transform:translateX(5px) rotate(2deg)} }
@keyframes mt-rider { 0%{transform:rotate(-3deg)} 50%{transform:rotate(0)} 100%{transform:rotate(3deg)} }
@keyframes mt-sun { 0%{opacity:.7;transform:scale(.95)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:.8;transform:scale(1)} }
@keyframes mt-drift-a { 0%{transform:translateX(-30px)} 100%{transform:translateX(120vw)} }
@keyframes mt-drift-b { 0%{transform:translateX(0)} 100%{transform:translateX(-100vw)} }

/* cairn-built – warm sunlit, cairn and figures */
.scn-cairn-built {
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #c4a882 100%),
              radial-gradient(ellipse at 80% 30%, #fff8e7 0%, transparent 50%);
}
.scn-cairn-built .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #ffd70044 0%, transparent 100%); animation:cb-sky 12s ease-in-out infinite alternate; }
.scn-cairn-built .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background:linear-gradient(180deg, #a0522d 0%, #5c3a21 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,.4); animation:cb-ground 20s ease-in-out infinite alternate; }
.scn-cairn-built .cairn-base { position:absolute; bottom:30%; left:42%; width:60px; height:40px; background:linear-gradient(135deg, #8b7355 0%, #654321 100%); border-radius:30% 30% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.5); animation:cb-cairn-base 8s ease-in-out infinite; }
.scn-cairn-built .cairn-top { position:absolute; bottom:40%; left:44%; width:40px; height:30px; background:linear-gradient(135deg, #a0522d 0%, #5c3a21 100%); border-radius:30% 30% 10% 10%; transform:rotate(10deg); box-shadow:0 4px 8px rgba(0,0,0,.4); animation:cb-cairn-top 6s ease-in-out infinite alternate; }
.scn-cairn-built .shield { position:absolute; bottom:35%; left:38%; width:20px; height:24px; background:linear-gradient(180deg, #c8553d 0%, #9a3a1a 100%); border-radius:30% 30% 20% 20%; box-shadow:0 0 10px 2px rgba(200,85,61,.6); animation:cb-shield 5s ease-in-out infinite alternate; }
.scn-cairn-built .figure { position:absolute; bottom:25%; left:55%; width:20px; height:40px; background:linear-gradient(180deg, #3e2723 0%, #1a110d 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cb-figure 6s ease-in-out infinite; }
.scn-cairn-built .sun { position:absolute; top:10%; right:20%; width:40px; height:40px; background:radial-gradient(circle, #fff8e7 0%, #ffd700 60%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 15px rgba(255,215,0,.5); animation:cb-sun-pulse 7s ease-in-out infinite; }
@keyframes cb-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes cb-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes cb-cairn-base { 0%{transform:rotate(0)} 50%{transform:rotate(2deg)} 100%{transform:rotate(0)} }
@keyframes cb-cairn-top { 0%{transform:rotate(5deg)} 50%{transform:rotate(10deg)} 100%{transform:rotate(8deg)} }
@keyframes cb-shield { 0%{opacity:.8;transform:scale(.95)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:.9;transform:scale(1)} }
@keyframes cb-figure { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(3px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes cb-sun-pulse { 0%{opacity:.7;transform:scale(.95)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:.8;transform:scale(1)} }

/* athenian-slave-interprets – tense overcast, two groups+interpreter */
.scn-athenian-slave-interprets {
  background: linear-gradient(180deg, #708090 0%, #4a5d6b 50%, #2f3e4a 100%),
              radial-gradient(ellipse at 50% 100%, #2f3e4a 0%, transparent 70%);
}
.scn-athenian-slave-interprets .sky-overcast { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #a0b0b8 0%, #5c707a 100%); animation:asi-sky 8s ease-in-out infinite alternate; }
.scn-athenian-slave-interprets .ground { position:absolute; bottom:0; left:0; right:0; height:65%; background:linear-gradient(180deg, #4a5d6b 0%, #2f3e4a 100%); border-radius:15% 15% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation:asi-ground 12s ease-in-out infinite; }
.scn-athenian-slave-interprets .group-left { position:absolute; bottom:25%; left:10%; width:80px; height:60px; background:linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; clip-path:polygon(0 0,100% 0,80% 100%,0 100%); animation:asi-left 3s ease-in-out infinite alternate; transform-origin:bottom right; }
.scn-athenian-slave-interprets .group-right { position:absolute; bottom:25%; right:10%; width:80px; height:60px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0d05 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; clip-path:polygon(20% 0,100% 0,100% 100%,0 100%); animation:asi-right 3.5s ease-in-out infinite alternate; transform-origin:bottom left; }
.scn-athenian-slave-interprets .interpreter { position:absolute; bottom:30%; left:45%; width:18px; height:45px; background:linear-gradient(180deg, #5c4a3a 0%, #2c1a0a 100%); border-radius:35% 35% 30% 30% / 60% 60% 40% 40%; animation:asi-interp 2.5s ease-in-out infinite; }
.scn-athenian-slave-interprets .pledge { position:absolute; bottom:40%; left:42%; width:30px; height:4px; background:linear-gradient(90deg, #b8860b 0%, #daa520 100%); border-radius:2px; box-shadow:0 0 8px 2px rgba(218,165,32,.5); animation:asi-pledge 6s ease-in-out infinite; }
@keyframes asi-sky { 0%{opacity:.6} 50%{opacity:.9} 100%{opacity:.7} }
@keyframes asi-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes asi-left { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.02) translateX(-2px)} 100%{transform:scaleX(1)} }
@keyframes asi-right { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.02) translateX(2px)} 100%{transform:scaleX(1)} }
@keyframes asi-interp { 0%{transform:translateY(0) rotate(-5deg)} 50%{transform:translateY(-5px) rotate(0)} 100%{transform:translateY(0) rotate(5deg)} }
@keyframes asi-pledge { 0%{opacity:.3;transform:scaleX(.5)} 50%{opacity:1;transform:scaleX(1.2)} 100%{opacity:.5;transform:scaleX(.8)} }

/* colchian-battle-order – tense dawn, columns and commander */
.scn-colchian-battle-order {
  background: linear-gradient(180deg, #4a306e 0%, #8a4a6e 30%, #e07a5e 60%, #f4a261 100%),
              radial-gradient(ellipse at 50% 100%, #e07a5e 0%, transparent 70%);
}
.scn-colchian-battle-order .sky-dawn { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #7a4a6e 0%, #c06a4e 60%, #ffaa5e 100%); animation:cbo-sky 6s ease-in-out infinite alternate; }
.scn-colchian-battle-order .mountains { position:absolute; bottom:40%; left:0; right:0; height:25%; background:linear-gradient(180deg, #4a306e 0%, #2a1a3e 100%); border-radius:30% 70% 0 0 / 60% 80% 0 0; box-shadow:inset 0 4px 10px rgba(0,0,0,.4); animation:cbo-mnt 15s ease-in-out infinite alternate; }
.scn-colchian-battle-order .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #5e3a2a 0%, #2e1a12 100%); border-radius:10% 10% 0 0; animation:cbo-ground 8s ease-in-out infinite; }
.scn-colchian-battle-order .column-front { position:absolute; bottom:20%; left:25%; width:40px; height:80px; background:linear-gradient(180deg, #3e2723 0%, #1a0d0a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; animation:cbo-col-front 4s ease-in-out infinite alternate; transform-origin:bottom center; }
.scn-colchian-battle-order .column-rear { position:absolute; bottom:20%; right:25%; width:40px; height:80px; background:linear-gradient(180deg, #3e2723 0%, #1a0d0a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; animation:cbo-col-rear 4.5s ease-in-out infinite alternate; transform-origin:bottom center; }
.scn-colchian-battle-order .commander { position:absolute; bottom:25%; left:48%; width:22px; height:50px; background:linear-gradient(180deg, #5c3a21 0%, #2c1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:scale(1.2); animation:cbo-cmdr 2.5s ease-in-out infinite; }
.scn-colchian-battle-order .standards { position:absolute; bottom:40%; left:45%; width:3px; height:40px; background:#a0522d; border-radius:1px; box-shadow:0 0 8px 2px #c8553d; animation:cbo-stand 7s ease-in-out infinite; }
@keyframes cbo-sky { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.7} }
@keyframes cbo-mnt { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes cbo-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes cbo-col-front { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-5px) rotate(1deg)} 100%{transform:translateY(0) rotate(2deg)} }
@keyframes cbo-col-rear { 0%{transform:translateY(0) rotate(2deg)} 50%{transform:translateY(-5px) rotate(-1deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes cbo-cmdr { 0%{transform:scale(1.2) translateY(0) rotate(-3deg)} 50%{transform:scale(1.25) translateY(-4px) rotate(0)} 100%{transform:scale(1.2) translateY(0) rotate(3deg)} }
@keyframes cbo-stand { 0%{opacity:.6;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.05)} 100%{opacity:.8;transform:scaleY(.95)} }

.scn-clearchus-evades {
  background: 
    linear-gradient(180deg, #f9e6c3 0%, #f0c27a 30%, #d99b4a 60%, #b87a35 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-clearchus-evades .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fef9e6 0%, #f2d29b 100%);
  animation: ce-sky 12s ease-in-out infinite alternate;
}
.scn-clearchus-evades .sun {
  position: absolute; top: 18%; left: 55%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8d0 0%, #f5c542 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(245,197,66,0.4);
  animation: ce-sun 4s ease-in-out infinite alternate;
}
.scn-clearchus-evades .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c88a3a 0%, #8b5e2b 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: ce-ground 8s ease-in-out infinite alternate;
}
.scn-clearchus-evades .figure-main {
  position: absolute; bottom: 38%; left: 50%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2d1f0e 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: ce-figure-main 3s ease-in-out infinite;
}
.scn-clearchus-evades .figure-bg1 {
  position: absolute; bottom: 40%; left: 30%; width: 18px; height: 45px;
  background: #3e2b14;
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  filter: blur(2px);
  animation: ce-figure-bg 5s ease-in-out infinite;
}
.scn-clearchus-evades .figure-bg2 {
  position: absolute; bottom: 40%; right: 30%; width: 16px; height: 40px;
  background: #3e2b14;
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  filter: blur(2px);
  animation: ce-figure-bg 6s ease-in-out 0.5s infinite;
}
.scn-clearchus-evades .spear {
  position: absolute; bottom: 52%; left: 52%; width: 2px; height: 80px;
  background: linear-gradient(180deg, #4a3520 0%, #1a1008 100%);
  transform-origin: bottom center;
  transform: rotate(-15deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: ce-spear 2s ease-in-out infinite;
}
@keyframes ce-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ce-sun { 0% { opacity: 0.7; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes ce-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ce-figure-main { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-52%) rotate(-2deg) } 75% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ce-figure-bg { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes ce-spear { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-13deg) } 100% { transform: rotate(-15deg) } }

.scn-cleanor-speaks {
  background:
    linear-gradient(180deg, #fce4b8 0%, #f0c27a 30%, #d99b4a 60%, #b87a35 100%),
    radial-gradient(ellipse at 40% 20%, #fff8e0 0%, transparent 50%);
}
.scn-cleanor-speaks .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fef5e6 0%, #f2d29b 100%);
  animation: cs-sky 15s ease-in-out infinite alternate;
}
.scn-cleanor-speaks .sun {
  position: absolute; top: 15%; left: 60%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff8d0 0%, #f5c542 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 25px rgba(245,197,66,0.5);
  animation: cs-sun 5s ease-in-out infinite alternate;
}
.scn-cleanor-speaks .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c88a3a 0%, #8b5e2b 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: cs-ground 10s ease-in-out infinite alternate;
}
.scn-cleanor-speaks .speaker {
  position: absolute; bottom: 32%; left: 40%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #2d1f0e 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: cs-speaker 2.5s ease-in-out infinite;
}
.scn-cleanor-speaks .audience1 {
  position: absolute; bottom: 34%; left: 55%; width: 20px; height: 48px;
  background: #3e2b14;
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  filter: blur(1px);
  animation: cs-audience 4s ease-in-out infinite;
}
.scn-cleanor-speaks .audience2 {
  position: absolute; bottom: 36%; left: 62%; width: 18px; height: 44px;
  background: #3e2b14;
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  filter: blur(1px);
  animation: cs-audience 4.5s ease-in-out 0.3s infinite;
}
.scn-cleanor-speaks .shield1 {
  position: absolute; bottom: 30%; left: 38%; width: 14px; height: 20px;
  background: linear-gradient(135deg, #4a3520 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: cs-shield 3s ease-in-out infinite;
}
.scn-cleanor-speaks .shield2 {
  position: absolute; bottom: 32%; left: 63%; width: 12px; height: 18px;
  background: linear-gradient(135deg, #4a3520 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: cs-shield 3.5s ease-in-out 0.2s infinite;
}
@keyframes cs-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cs-sun { 0% { opacity: 0.6; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.08) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes cs-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cs-speaker { 0% { transform: rotate(0deg) } 25% { transform: rotate(-3deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes cs-audience { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes cs-shield { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }

.scn-phalinus-replies {
  background:
    linear-gradient(180deg, #f9e6c3 0%, #e8b864 30%, #cd8a2e 60%, #a5641a 100%),
    radial-gradient(ellipse at 60% 25%, #fff8e0 0%, transparent 60%);
}
.scn-phalinus-replies .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fef0d8 0%, #eec27a 100%);
  animation: pr-sky 10s ease-in-out infinite alternate;
}
.scn-phalinus-replies .sun {
  position: absolute; top: 12%; left: 50%; width: 55px; height: 55px;
  background: radial-gradient(circle, #fff8d0 0%, #f5c542 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 70px 30px rgba(245,197,66,0.5);
  animation: pr-sun 6s ease-in-out infinite alternate;
}
.scn-phalinus-replies .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c88a3a 0%, #7a4f1d 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: pr-ground 7s ease-in-out infinite alternate;
}
.scn-phalinus-replies .herald {
  position: absolute; bottom: 40%; left: 50%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #3a2513 0%, #1a1008 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 45% 45%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  box-shadow: -5px 0 10px rgba(0,0,0,0.5);
  animation: pr-herald 3.5s ease-in-out infinite;
}
.scn-phalinus-replies .staff {
  position: absolute; bottom: 50%; left: 53%; width: 3px; height: 90px;
  background: linear-gradient(180deg, #5a3e1e 0%, #2a1a0e 100%);
  transform-origin: bottom center;
  transform: rotate(5deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: pr-staff 4s ease-in-out infinite;
}
.scn-phalinus-replies .cape {
  position: absolute; bottom: 42%; left: 47%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6b3a1a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform-origin: top center;
  transform: rotate(-10deg) scaleX(0.9);
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: pr-cape 5s ease-in-out infinite alternate;
}
.scn-phalinus-replies .shadow {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  transform: translateX(-50%) scale(1.2);
  filter: blur(4px);
  animation: pr-shadow 3s ease-in-out infinite alternate;
}
@keyframes pr-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pr-sun { 0% { opacity: 0.6; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes pr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pr-herald { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-52%) rotate(-2deg) } 75% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes pr-staff { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(5deg) } }
@keyframes pr-cape { 0% { transform: rotate(-10deg) scaleX(0.9) } 50% { transform: rotate(-12deg) scaleX(0.85) } 100% { transform: rotate(-8deg) scaleX(0.95) } }
@keyframes pr-shadow { 0% { opacity: 0.6; transform: translateX(-50%) scale(1.2) } 100% { opacity: 1; transform: translateX(-50%) scale(1.25) } }

.scn-theopompus-retorts {
  background:
    linear-gradient(180deg, #fce4b8 0%, #e8b864 35%, #cd8a2e 65%, #a5641a 100%),
    radial-gradient(ellipse at 45% 20%, #fff8e0 0%, transparent 55%);
}
.scn-theopompus-retorts .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fef5e6 0%, #f2d29b 100%);
  animation: tr-sky 12s ease-in-out infinite alternate;
}
.scn-theopompus-retorts .sun {
  position: absolute; top: 20%; left: 55%; width: 48px; height: 48px;
  background: radial-gradient(circle, #fff8d0 0%, #f5c542 45%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(245,197,66,0.4);
  animation: tr-sun 4s ease-in-out infinite alternate;
}
.scn-theopompus-retorts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c88a3a 0%, #7a4f1d 100%);
  border-radius: 40% 60% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: tr-ground 9s ease-in-out infinite alternate;
}
.scn-theopompus-retorts .figure-main {
  position: absolute; bottom: 36%; left: 48%; width: 26px; height: 68px;
  background: linear-gradient(180deg, #2d1f0e 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: tr-figure-main 3s ease-in-out infinite;
}
.scn-theopompus-retorts .spear {
  position: absolute; bottom: 55%; left: 52%; width: 2px; height: 85px;
  background: linear-gradient(180deg, #4a3520 0%, #1a1008 100%);
  transform-origin: bottom center;
  transform: rotate(-10deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: tr-spear 2.5s ease-in-out infinite;
}
.scn-theopompus-retorts .shield {
  position: absolute; bottom: 34%; left: 45%; width: 16px; height: 22px;
  background: linear-gradient(135deg, #5a3e1e 0%, #2a1a0e 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(8deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: tr-shield 3s ease-in-out infinite;
}
.scn-theopompus-retorts .figure-bg {
  position: absolute; bottom: 38%; left: 60%; width: 18px; height: 46px;
  background: #3e2b14;
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  filter: blur(1px);
  animation: tr-figure-bg 4.5s ease-in-out infinite;
}
@keyframes tr-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes tr-sun { 0% { opacity: 0.6; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.06) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes tr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tr-figure-main { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-52%) rotate(-2deg) } 75% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes tr-spear { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-10deg) } }
@keyframes tr-shield { 0% { transform: rotate(8deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(8deg) } }
@keyframes tr-figure-bg { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }

.scn-timasion-intrigues {
  background: linear-gradient(180deg, #1a1525 0%, #2a1e1a 40%, #3d2b20 100%),
              radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 65%);
}
.scn-timasion-intrigues .tent-drape {
  position: absolute; inset: 0; background: linear-gradient(135deg, transparent 40%, #2a1a10 70%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%; animation: ti-tent 18s ease-in-out infinite alternate;
}
.scn-timasion-intrigues .fire {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%);
  background: radial-gradient(circle at 50% 80%, #ff8822 0%, #cc5500 40%, #4a2a10 70%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 14px #ff7744, 0 0 80px 20px rgba(200,100,30,0.5);
  animation: ti-fire 2.5s ease-in-out infinite;
}
.scn-timasion-intrigues .figure {
  position: absolute; bottom: 22%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
}
.scn-timasion-intrigues .figure-a { left: 34%; animation: ti-fig-1 4.5s ease-in-out infinite; }
.scn-timasion-intrigues .figure-b { left: 42%; animation: ti-fig-2 5.2s ease-in-out infinite; }
.scn-timasion-intrigues .figure-c { right: 34%; animation: ti-fig-3 4.9s ease-in-out infinite; transform: scaleX(-1); }
.scn-timasion-intrigues .figure-d { right: 42%; animation: ti-fig-4 5.6s ease-in-out infinite; transform: scaleX(-1); }
.scn-timasion-intrigues .shadow-fore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0d0805 0%, transparent 100%);
  animation: ti-shadow 8s ease-in-out infinite alternate;
}
@keyframes ti-tent {
  0% { transform: rotateX(0deg); opacity: 0.9; }
  50% { transform: rotateX(3deg); opacity: 0.95; }
  100% { transform: rotateX(-2deg); opacity: 0.85; }
}
@keyframes ti-fire {
  0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity: 0.9; }
  25% { transform: translateX(-50%) scale(1.08) rotate(3deg); opacity: 1; }
  50% { transform: translateX(-50%) scale(0.95) rotate(-4deg); opacity: 0.85; }
  75% { transform: translateX(-50%) scale(1.04) rotate(2deg); opacity: 0.95; }
  100% { transform: translateX(-50%) scale(1) rotate(-1deg); opacity: 0.9; }
}
@keyframes ti-fig-1 {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(3deg); }
  66% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ti-fig-2 {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(1px) rotate(-1deg); }
  70% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ti-fig-3 {
  0% { transform: translateY(0) rotate(0deg) scaleX(-1); }
  40% { transform: translateY(-2px) rotate(-4deg) scaleX(-1); }
  80% { transform: translateY(1px) rotate(3deg) scaleX(-1); }
  100% { transform: translateY(0) rotate(0deg) scaleX(-1); }
}
@keyframes ti-fig-4 {
  0% { transform: translateY(0) rotate(0deg) scaleX(-1); }
  35% { transform: translateY(1px) rotate(2deg) scaleX(-1); }
  65% { transform: translateY(-1px) rotate(-3deg) scaleX(-1); }
  100% { transform: translateY(0) rotate(0deg) scaleX(-1); }
}
@keyframes ti-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

.scn-xenophon-denies-plan {
  background: linear-gradient(180deg, #1c1412 0%, #2a2018 50%, #1e1410 100%),
              radial-gradient(ellipse at 30% 70%, #3a2a20 0%, transparent 60%);
}
.scn-xenophon-denies-plan .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, transparent 20%, #0d0806 80%);
  border-radius: 10% 0 0 10%; animation: xdp-wall 20s ease-in-out infinite alternate;
}
.scn-xenophon-denies-plan .platform {
  position: absolute; bottom: 22%; left: 10%; width: 90px; height: 16px;
  background: linear-gradient(180deg, #4a3224 0%, #2a1c12 100%);
  border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,0.6); animation: xdp-plat 6s ease-in-out infinite;
}
.scn-xenophon-denies-plan .speaker {
  position: absolute; bottom: 28%; left: 16%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0503 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xdp-speak 4s ease-in-out infinite;
}
.scn-xenophon-denies-plan .soldier {
  position: absolute; bottom: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1c16 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
}
.scn-xenophon-denies-plan .soldier-a { left: 45%; animation: xdp-sold-1 5s ease-in-out infinite; }
.scn-xenophon-denies-plan .soldier-b { left: 55%; animation: xdp-sold-2 5.7s ease-in-out infinite; }
.scn-xenophon-denies-plan .soldier-c { left: 65%; animation: xdp-sold-3 4.2s ease-in-out infinite; }
.scn-xenophon-denies-plan .torch {
  position: absolute; top: 5%; left: 18%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #ff9933 0%, #cc5500 40%, transparent 70%);
  border-radius: 40%; box-shadow: 0 0 30px 12px #ff8833, 0 0 60px 20px rgba(200,100,30,0.4);
  animation: xdp-torch 2.2s ease-in-out infinite alternate;
}
.scn-xenophon-denies-plan .shadow-overlay {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 50%, transparent 30%, #0b0604 80%);
  pointer-events: none; animation: xdp-shad 10s ease-in-out infinite alternate;
}
@keyframes xdp-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes xdp-plat {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes xdp-speak {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(4deg); }
  40% { transform: translateY(-1px) rotate(-3deg); }
  60% { transform: translateY(1px) rotate(2deg); }
  80% { transform: translateY(-2px) rotate(-4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xdp-sold-1 {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(1px) rotate(1deg); }
  60% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xdp-sold-2 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xdp-sold-3 {
  0% { transform: translateY(0) rotate(0deg); }
  35% { transform: translateY(1px) rotate(-2deg); }
  65% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xdp-torch {
  0% { transform: scale(1) rotate(-3deg); opacity: 0.8; }
  50% { transform: scale(1.12) rotate(4deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(-1deg); opacity: 0.7; }
}
@keyframes xdp-shad {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

.scn-ships-tricked {
  background: linear-gradient(180deg, #1a1412 0%, #261e1a 40%, #1e1816 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a20 0%, transparent 60%);
}
.scn-ships-tricked .bg-table {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0f0a08 0%, transparent 70%);
  border-radius: 0 0 20% 20%; animation: st-bg 22s ease-in-out infinite alternate;
}
.scn-ships-tricked .table-top {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1c12 100%);
  border-radius: 20% 20% 4% 4% / 40% 40% 4% 4%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(500px) rotateX(20deg);
  animation: st-table 12s ease-in-out infinite;
}
.scn-ships-tricked .ship-token {
  position: absolute; bottom: 35%; left: 50%; width: 44px; height: 28px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2618 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.6);
  animation: st-ship 3.8s ease-in-out infinite;
}
.scn-ships-tricked .general {
  position: absolute; bottom: 22%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
}
.scn-ships-tricked .gen-a { left: 18%; animation: st-gen-1 5.5s ease-in-out infinite; }
.scn-ships-tricked .gen-b { left: 30%; animation: st-gen-2 4.7s ease-in-out infinite; }
.scn-ships-tricked .gen-c { right: 20%; animation: st-gen-3 6.2s ease-in-out infinite; transform: scaleX(-1); }
.scn-ships-tricked .shadow-close {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(0deg, #0b0705 0%, transparent 100%);
  animation: st-shad 14s ease-in-out infinite alternate;
}
@keyframes st-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.75; }
}
@keyframes st-table {
  0% { transform: perspective(500px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(500px) rotateX(22deg) translateY(-2px); }
  100% { transform: perspective(500px) rotateX(18deg) translateY(0); }
}
@keyframes st-ship {
  0% { transform: translateX(-50%) rotate(-3deg); }
  30% { transform: translateX(-50%) rotate(2deg) scale(1.05); }
  60% { transform: translateX(-50%) rotate(-1deg) scale(0.98); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes st-gen-1 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes st-gen-2 {
  0% { transform: translateY(0) rotate(0deg); }
  35% { transform: translateY(1px) rotate(-2deg); }
  70% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes st-gen-3 {
  0% { transform: translateY(0) rotate(0deg) scaleX(-1); }
  40% { transform: translateY(-2px) rotate(-3deg) scaleX(-1); }
  80% { transform: translateY(1px) rotate(2deg) scaleX(-1); }
  100% { transform: translateY(0) rotate(0deg) scaleX(-1); }
}
@keyframes st-shad {
  0% { opacity: 0.6; }
  50% { opacity: 0.85; }
  100% { opacity: 0.5; }
}

.scn-xenophon-defends-himself {
  background: linear-gradient(180deg, #1c1614 0%, #2a221e 40%, #1e1816 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a22 0%, transparent 70%);
}
.scn-xenophon-defends-himself .bg-assembly {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0f0a08 0%, transparent 80%);
  animation: xds-bg 24s ease-in-out infinite alternate;
}
.scn-xenophon-defends-himself .podium {
  position: absolute; bottom: 22%; left: 8%; width: 60px; height: 14px;
  background: linear-gradient(180deg, #4a3424 0%, #2a1c14 100%);
  border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: xds-pod 7s ease-in-out infinite;
}
.scn-xenophon-defends-himself .xenophon-figure {
  position: absolute; bottom: 26%; left: 12%; width: 24px; height: 64px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0503 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xds-xeno 4.2s ease-in-out infinite;
}
.scn-xenophon-defends-himself .soldier {
  position: absolute; bottom: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1c16 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
}
.scn-xenophon-defends-himself .front-a { left: 40%; animation: xds-sold-1 4.8s ease-in-out infinite; }
.scn-xenophon-defends-himself .front-b { left: 50%; animation: xds-sold-2 5.4s ease-in-out infinite; }
.scn-xenophon-defends-himself .front-c { left: 60%; animation: xds-sold-3 4.5s ease-in-out infinite; }
.scn-xenophon-defends-himself .torch-left {
  position: absolute; top: 8%; left: 10%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffaa44 0%, #dd6600 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 14px #ff8833, 0 0 80px 20px rgba(200,100,30,0.4);
  animation: xds-torch 2.4s ease-in-out infinite alternate;
}
.scn-xenophon-defends-himself .shadow-trench {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, transparent 40%, #0b0604 80%);
  pointer-events: none; animation: xds-shad 15s ease-in-out infinite alternate;
}
@keyframes xds-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.65; }
}
@keyframes xds-pod {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes xds-xeno {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-3px) rotate(6deg); }
  40% { transform: translateY(-1px) rotate(-4deg); }
  60% { transform: translateY(2px) rotate(3deg); }
  80% { transform: translateY(-2px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xds-sold-1 {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(1px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xds-sold-2 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xds-sold-3 {
  0% { transform: translateY(0) rotate(0deg); }
  35% { transform: translateY(1px) rotate(-2deg); }
  65% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xds-torch {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scale(1.1) rotate(5deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(-3deg); opacity: 0.75; }
}
@keyframes xds-shad {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

.scn-xenophon-presents-offer {
  background: linear-gradient(180deg, #1a1a1a 0%, #2b1e1e 50%, #3d2a1a 100%),
              radial-gradient(ellipse at 70% 80%, #4a3020 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-xenophon-presents-offer .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e1e 0%, #1f1414 100%);
  animation: xp1-wall 8s ease-in-out infinite alternate;
}
.scn-xenophon-presents-offer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2b1f1a 0%, #1a0f0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-xenophon-presents-offer .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-xenophon-presents-offer .lamp {
  position: absolute; bottom: 35%; left: 12%; width: 12px; height: 14px;
  background: radial-gradient(circle, #ffcc80 0%, #ff9933 60%, #663300 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px #ff9933, 0 0 40px 12px rgba(255,153,51,0.3);
  animation: xp1-lamp 2s ease-in-out infinite alternate;
}
.scn-xenophon-presents-offer .xenophon {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2d2d3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xp1-figure 4s ease-in-out infinite;
}
.scn-xenophon-presents-offer .listener {
  position: absolute; bottom: 22%; left: 55%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2b2b35 0%, #151520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xp1-figure 5s ease-in-out infinite reverse;
}
.scn-xenophon-presents-offer .shadow-on-wall {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 60px;
  background: rgba(0,0,0,0.4);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(8px);
  animation: xp1-shadow 4s ease-in-out infinite alternate;
}

@keyframes xp1-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes xp1-lamp {
  0% { box-shadow: 0 0 15px 4px #ff9933, 0 0 30px 8px rgba(255,153,51,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 25px 8px #ffcc66, 0 0 50px 15px rgba(255,204,102,0.4); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #ff9933, 0 0 35px 10px rgba(255,153,51,0.3); opacity: 0.85; }
}
@keyframes xp1-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes xp1-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(5px) scale(1.1); opacity: 0.6; }
  100% { transform: translateX(0) scale(1); opacity: 0.4; }
}

/* Scene 2: seuthes-speaks-to-army */
.scn-seuthes-speaks-to-army {
  background: linear-gradient(180deg, #87CEEB 0%, #e0f0ff 40%, #228B22 70%, #3cb371 100%),
              radial-gradient(circle at 70% 30%, #fff8dc 0%, transparent 40%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-seuthes-speaks-to-army .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #d4efff 100%);
  animation: ss2-sky 15s ease-in-out infinite alternate;
}
.scn-seuthes-speaks-to-army .sun {
  position: absolute; top: 10%; right: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffffcc 0%, #ffe680 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px #ffe680, 0 0 80px 30px rgba(255,230,128,0.3);
  animation: ss2-sun 12s ease-in-out infinite alternate;
}
.scn-seuthes-speaks-to-army .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4CAF50 0%, #2e7d32 40%, #1b5e20 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-seuthes-speaks-to-army .seuthes {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #556b2f 0%, #3e4f1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ss2-standing 4s ease-in-out infinite;
}
.scn-seuthes-speaks-to-army .banner {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #8B4513 0%, #5c3a1c 100%);
  border-radius: 2px 2px 0 0;
  transform-origin: bottom;
  animation: ss2-banner 6s ease-in-out infinite;
}
.scn-seuthes-speaks-to-army .soldier-a {
  position: absolute; bottom: 18%; left: 35%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ss2-soldier 8s ease-in-out infinite alternate;
}
.scn-seuthes-speaks-to-army .soldier-b {
  position: absolute; bottom: 18%; left: 65%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #34495e 0%, #202c38 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ss2-soldier 8s ease-in-out infinite alternate-reverse;
}

@keyframes ss2-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ss2-sun {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.75; transform: scale(0.95); }
}
@keyframes ss2-standing {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes ss2-banner {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes ss2-soldier {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* Scene 3: dinner-with-seuthes */
.scn-dinner-with-seuthes {
  background: linear-gradient(180deg, #1a0e00 0%, #3d1f00 50%, #663300 100%),
              radial-gradient(ellipse at 60% 90%, #ff7f00 0%, transparent 40%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-dinner-with-seuthes .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1f1205 100%);
  animation: dw3-wall 10s ease-in-out infinite alternate;
}
.scn-dinner-with-seuthes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3d2a1a 0%, #24170d 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-dinner-with-seuthes .fire {
  position: absolute; bottom: 30%; left: 10%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #ff9900 0%, #cc5500 50%, #331100 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #ff6600, 0 0 60px 20px rgba(255,102,0,0.4);
  animation: dw3-fire 1s ease-in-out infinite alternate;
}
.scn-dinner-with-seuthes .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #5c3a1c 0%, #3e2611 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
}
.scn-dinner-with-seuthes .meat-stool {
  position: absolute; bottom: 26%; left: 30%; width: 20px; height: 14px;
  background: radial-gradient(circle, #c8553d 0%, #8b3a2a 70%, #4a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: dw3-eat 4s ease-in-out infinite;
}
.scn-dinner-with-seuthes .loaf-stool {
  position: absolute; bottom: 26%; left: 55%; width: 24px; height: 16px;
  background: radial-gradient(circle, #d4a373 0%, #b07d51 70%, #804d2a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: dw3-eat 5s ease-in-out infinite reverse;
}
.scn-dinner-with-seuthes .arystas {
  position: absolute; bottom: 14%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2d241a 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw3-eat 3s ease-in-out infinite;
}
.scn-dinner-with-seuthes .seuthes {
  position: absolute; bottom: 16%; left: 65%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #4a3520 0%, #2d1f10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dw3-seuthes 6s ease-in-out infinite alternate;
}

@keyframes dw3-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes dw3-fire {
  0% { transform: scale(1) translateX(0); opacity: 0.8; }
  50% { transform: scale(1.05) translateX(3px); opacity: 1; }
  100% { transform: scale(0.95) translateX(-2px); opacity: 0.85; }
}
@keyframes dw3-eat {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(5deg); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dw3-seuthes {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(5px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}

/* Scene 4: gifts-given */
.scn-gifts-given {
  background: linear-gradient(180deg, #2a1200 0%, #4d2800 50%, #7a3f00 100%),
              radial-gradient(ellipse at 70% 80%, #ff9900 0%, transparent 50%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-gifts-given .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #331a0a 0%, #241206 100%);
  animation: gg4-wall 12s ease-in-out infinite alternate;
}
.scn-gifts-given .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4d2a1a 0%, #2e180d 100%);
  border-radius: 20% 20% 0 0 / 15% 15% 0 0;
}
.scn-gifts-given .fire {
  position: absolute; bottom: 25%; left: 15%; width: 28px; height: 36px;
  background: radial-gradient(ellipse at 50% 100%, #ffaa33 0%, #cc6600 50%, #331100 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 35px 12px #ff7700, 0 0 70px 25px rgba(255,119,0,0.4);
  animation: gg4-fire 1s ease-in-out infinite alternate;
}
.scn-gifts-given .table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 5%;
  background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.9);
}
.scn-gifts-given .horse {
  position: absolute; bottom: 10%; left: 10%; width: 40px; height: 28px;
  background: radial-gradient(circle at 30% 50%, #8B4513 0%, #5c3a1c 60%, #3e2611 100%);
  border-radius: 40% 20% 30% 50% / 50% 30% 40% 60%;
  animation: gg4-horse 6s ease-in-out infinite;
}
.scn-gifts-given .boy {
  position: absolute; bottom: 14%; left: 25%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2d1f12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gg4-boy 5s ease-in-out infinite;
}
.scn-gifts-given .musician {
  position: absolute; bottom: 14%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2e20 0%, #241a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: gg4-boy 4s ease-in-out infinite reverse;
}
.scn-gifts-given .seuthes {
  position: absolute; bottom: 16%; left: 72%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #5c3d20 0%, #3a2612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gg4-standing 7s ease-in-out infinite alternate;
}

@keyframes gg4-wall {
  0% { opacity: 0.75; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes gg4-fire {
  0% { transform: scale(1) translateY(0); opacity: 0.85; }
  50% { transform: scale(1.03) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.97) translateY(1px); opacity: 0.8; }
}
@keyframes gg4-horse {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(6px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes gg4-boy {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(4px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes gg4-standing {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-xenophon-replies-to-medosades {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 80%);
}
.scn-xenophon-replies-to-medosades .sky-overcast { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 30%, transparent 100%); animation: xs-sky 15s ease-in-out infinite alternate; }
.scn-xenophon-replies-to-medosades .ground-muted { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,.2); }
.scn-xenophon-replies-to-medosades .figure-xenophon { position:absolute; bottom:30%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xs-fig1 4s ease-in-out infinite; }
.scn-xenophon-replies-to-medosades .figure-medosades { position:absolute; bottom:30%; right:35%; width:22px; height:42px; background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xs-fig2 4.5s ease-in-out infinite reverse; }
.scn-xenophon-replies-to-medosades .figure-young { position:absolute; bottom:30%; left:48%; width:16px; height:34px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xs-fig3 3.8s ease-in-out infinite; animation-delay: 0.5s; }
.scn-xenophon-replies-to-medosades .tent-pole { position:absolute; bottom:40%; left:25%; width:4px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform-origin: bottom center; animation: xs-pole 8s ease-in-out infinite; }
.scn-xenophon-replies-to-medosades .banner-tatter { position:absolute; bottom:55%; left:23%; width:60px; height:30px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 10% 40% 20% 50% / 30% 50% 40% 20%; clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); filter: blur(2px); animation: xs-banner 6s ease-in-out infinite alternate; }
.scn-xenophon-replies-to-medosades .shadow-slice { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 0 0 50% 50%; animation: xs-shad 3s ease-in-out infinite alternate; }

@keyframes xs-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes xs-fig1 { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(-2px) rotate(0); } 75% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); } }
@keyframes xs-fig2 { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(0) translateY(-2px) rotate(0); } 75% { transform: translateX(3px) translateY(-1px) rotate(2deg); } }
@keyframes xs-fig3 { 0%,100% { transform: translateX(0) scale(1); } 25% { transform: translateX(2px) scale(0.95); } 50% { transform: translateX(0) scale(1.02); } 75% { transform: translateX(-2px) scale(0.95); } }
@keyframes xs-pole { 0%,100% { transform: rotate(0); } 20% { transform: rotate(1deg); } 40% { transform: rotate(-1deg); } 60% { transform: rotate(2deg); } 80% { transform: rotate(-2deg); } }
@keyframes xs-banner { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(-5px) skewX(3deg); } 100% { transform: translateX(5px) skewX(-3deg); } }
@keyframes xs-shad { 0% { opacity:0.3; } 100% { opacity:0.6; } }

/* ------------------------------------------------------------------ */
.scn-lacedaemonians-intervene { background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 60% 80%, #3a3a4a 0%, transparent 70%); }
.scn-lacedaemonians-intervene .overcast-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, transparent 100%); animation: li-sky 14s ease-in-out infinite alternate; }
.scn-lacedaemonians-intervene .council-table { position:absolute; bottom:20%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-lacedaemonians-intervene .figure-seuthes { position:absolute; bottom:30%; left:40%; width:22px; 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: li-fig1 5s ease-in-out infinite; }
.scn-lacedaemonians-intervene .figure-lac-a { position:absolute; bottom:30%; right:30%; width:20px; height:42px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li-fig2 5.2s ease-in-out infinite reverse; }
.scn-lacedaemonians-intervene .figure-lac-b { position:absolute; bottom:30%; right:43%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li-fig3 4.8s ease-in-out infinite; animation-delay: 0.3s; }
.scn-lacedaemonians-intervene .spear-rack { position:absolute; bottom:40%; left:10%; width:6px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 10px 0 0 #5a4a3a, 20px 0 0 #4a3a2a; animation: li-spear 10s ease-in-out infinite; }
.scn-lacedaemonians-intervene .lantern-tense { position:absolute; bottom:55%; left:50%; width:10px; height:14px; background: radial-gradient(circle, #c08040 0%, #6a4020 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 0 24px 6px #c08040, 0 0 48px 12px rgba(192,128,64,0.3); animation: li-lamp 2s ease-in-out infinite alternate; }
.scn-lacedaemonians-intervene .debris { position:absolute; bottom:18%; left:25%; width:30px; height:8px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: li-debris 7s ease-in-out infinite; }

@keyframes li-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes li-fig1 { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(-3deg); } }
@keyframes li-fig2 { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(3px) rotate(2deg); } }
@keyframes li-fig3 { 0%,100% { transform: translateY(0) scale(1); } 30% { transform: translateY(-2px) scale(0.95); } 60% { transform: translateY(1px) scale(1.05); } }
@keyframes li-spear { 0%,100% { transform: translateY(0); } 20% { transform: translateY(-2px); } 40% { transform: translateY(1px); } 60% { transform: translateY(-1px); } 80% { transform: translateY(2px); } }
@keyframes li-lamp { 0% { box-shadow: 0 0 12px 2px #a06030, 0 0 24px 6px rgba(160,96,48,0.2); opacity:0.7; } 50% { box-shadow: 0 0 32px 8px #e0a050, 0 0 64px 16px rgba(224,160,80,0.5); opacity:1; } 100% { box-shadow: 0 0 18px 4px #a06030, 0 0 36px 8px rgba(160,96,48,0.3); opacity:0.8; } }
@keyframes li-debris { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(6px) rotate(5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-6px) rotate(-5deg); } }

/* ------------------------------------------------------------------ */
.scn-seuthes-cursed-heraclides { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 80%); }
.scn-seuthes-cursed-heraclides .interior-dim { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, transparent 100%); animation: sch-bg 10s ease-in-out infinite alternate; }
.scn-seuthes-cursed-heraclides .table-rough { position:absolute; bottom:15%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,0.6); }
.scn-seuthes-cursed-heraclides .figure-seuthes-angry { position:absolute; bottom:28%; left:35%; width:24px; height:48px; background: linear-gradient(180deg, #4a2a1a 0%, #2a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sch-fig1 3s ease-in-out infinite; }
.scn-seuthes-cursed-heraclides .figure-heraclides { position:absolute; bottom:28%; right:35%; width:20px; height:38px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sch-fig2 4s ease-in-out infinite reverse; }
.scn-seuthes-cursed-heraclides .coin-pile { position:absolute; bottom:18%; left:48%; width:30px; height:12px; background: radial-gradient(circle at 30% 30%, #c89040 0%, #a07030 60%, #6a4020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sch-coin 6s ease-in-out infinite; }
.scn-seuthes-cursed-heraclides .lamp-glow { position:absolute; bottom:60%; left:50%; width:16px; height:20px; background: radial-gradient(circle, #e09040 0%, #a06030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 12px #a06030, 0 0 80px 24px rgba(160,96,48,0.3); animation: sch-lamp 3s ease-in-out infinite alternate; }
.scn-seuthes-cursed-heraclides .shadow-splay { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); border-radius: 0 0 40% 40%; animation: sch-shad 4s ease-in-out infinite alternate; }
.scn-seuthes-cursed-heraclides .mug-spill { position:absolute; bottom:17%; left:30%; width:14px; height:10px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 40% 40%; animation: sch-mug 5s ease-in-out infinite; }

@keyframes sch-bg { 0% { opacity:0.8; } 50% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes sch-fig1 { 0%,100% { transform: translateX(0) rotate(0); } 20% { transform: translateX(5px) rotate(5deg); } 40% { transform: translateX(0) rotate(0); } 60% { transform: translateX(-5px) rotate(-5deg); } 80% { transform: translateX(3px) rotate(3deg); } }
@keyframes sch-fig2 { 0%,100% { transform: translateX(0) scale(1); } 25% { transform: translateX(-3px) scale(0.9); } 50% { transform: translateX(0) scale(1.05); } 75% { transform: translateX(3px) scale(0.9); } }
@keyframes sch-coin { 0%,100% { transform: translateY(0) rotate(0); } 20% { transform: translateY(-2px) rotate(5deg); } 40% { transform: translateY(0) rotate(0); } 60% { transform: translateY(-1px) rotate(-3deg); } 80% { transform: translateY(1px) rotate(2deg); } }
@keyframes sch-lamp { 0% { box-shadow: 0 0 20px 6px #a06030, 0 0 40px 12px rgba(160,96,48,0.2); opacity:0.7; } 50% { box-shadow: 0 0 40px 12px #e09040, 0 0 80px 24px rgba(224,144,64,0.4); opacity:1; } 100% { box-shadow: 0 0 24px 8px #a06030, 0 0 48px 16px rgba(160,96,48,0.25); opacity:0.8; } }
@keyframes sch-shad { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes sch-mug { 0%,100% { transform: translateX(0) rotate(0); } 20% { transform: translateX(2px) rotate(10deg); } 40% { transform: translateX(0) rotate(0); } 60% { transform: translateX(-2px) rotate(-10deg); } 80% { transform: translateX(1px) rotate(5deg); } }

/* ------------------------------------------------------------------ */
.scn-xenophon-leaves-army { background: linear-gradient(180deg, #8ab4d4 0%, #c0d6e4 40%, #f0e8d0 100%), radial-gradient(ellipse at 70% 100%, #f0e0c0 0%, transparent 70%); }
.scn-xenophon-leaves-army .sunlit-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7aa8c8 0%, #b8d4e8 50%, transparent 100%); animation: xla-sky 20s ease-in-out infinite alternate; }
.scn-xenophon-leaves-army .sea-calm { position:absolute; bottom:15%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a9aba 0%, #8ab4d4 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; animation: xla-sea 18s ease-in-out infinite alternate; }
.scn-xenophon-leaves-army .sand-beach { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 20% 30% 0 0; }
.scn-xenophon-leaves-army .ship-distant { position:absolute; bottom:30%; right:20%; width:60px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0 100%, 30% 0, 70% 0, 100% 100%); animation: xla-ship 15s ease-in-out infinite; }
.scn-xenophon-leaves-army .figure-xenophon-travel { position:absolute; bottom:10%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xla-fig1 6s ease-in-out infinite; }
.scn-xenophon-leaves-army .figure-eucleides { position:absolute; bottom:10%; left:55%; width:20px; 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: xla-fig2 6.5s ease-in-out infinite reverse; }
.scn-xenophon-leaves-army .seagull { position:absolute; top:15%; left:30%; width:12px; height:4px; background: #c0d0e0; border-radius: 50% 50% 0 0; filter: blur(1px); animation: xla-gull 12s linear infinite; }
.scn-xenophon-leaves-army .wave-foam { position:absolute; bottom:20%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.6) 20%, transparent 40%, rgba(255,255,255,0.4) 60%, transparent 80%); animation: xla-foam 8s linear infinite; }

@keyframes xla-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes xla-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes xla-ship { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } }
@keyframes xla-fig1 { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); } }
@keyframes xla-fig2 { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(2px) translateY(-2px) rotate(1deg); } }
@keyframes xla-gull { 0% { transform: translateX(-20px) translateY(0); } 50% { transform: translateX(10px) translateY(-5px); } 100% { transform: translateX(40px) translateY(0); } }
@keyframes xla-foam { 0% { background-position: 0% 0; } 100% { background-position: 200% 0; } }

/* --- xenophon-advises-hostages (xa) --- */
.scn-xa {
  background:
    linear-gradient(180deg, #1a1010 0%, #2d1a12 40%, #3a2518 100%),
    radial-gradient(ellipse at 30% 70%, #4d2e1a 0%, transparent 60%);
}
.scn-xa .xa-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #241610 0%, #3a2018 70%, transparent);
  animation: xa-wall-pulse 8s ease-in-out infinite;
}
.scn-xa .xa-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #1f120a 0%, #2f1d12 60%, #3d2614 100%);
  border-radius: 20% 70% 0 0 / 30% 30% 0 0;
}
.scn-xa .xa-table {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #3a2012 0%, #1f0f08 100%);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-xa .xa-figure-left {
  position: absolute; bottom: 30%; left: 12%; width: 16%; height: 45%;
  background: linear-gradient(130deg, #110a07 0%, #2b1a10 100%);
  border-radius: 40% 50% 30% 50% / 60% 50% 40% 40%;
  animation: xa-fig-left 6s ease-in-out infinite;
}
.scn-xa .xa-figure-right {
  position: absolute; bottom: 30%; right: 12%; width: 14%; height: 48%;
  background: linear-gradient(200deg, #1f1208 0%, #2c1a0e 100%);
  border-radius: 50% 40% 40% 50% / 50% 60% 40% 40%;
  animation: xa-fig-right 7s ease-in-out infinite;
}
.scn-xa .xa-brazier {
  position: absolute; bottom: 28%; left: 55%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 30%, #a05430 0%, #4a2010 80%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 16px rgba(200,120,60,0.4);
  animation: xa-braze 2s ease-in-out infinite alternate;
}
.scn-xa .xa-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,180,80,0.08) 0%, transparent 70%);
  animation: xa-glow-pulse 4s ease-in-out infinite alternate;
}
@keyframes xa-wall-pulse {
  0% { opacity: 0.7 }
  50% { opacity: 1; filter: brightness(1.1) }
  100% { opacity: 0.75 }
}
@keyframes xa-fig-left {
  0% { transform: translateY(0) rotate(0deg) }
  33% { transform: translateY(-2px) rotate(2deg) scale(1.01) }
  66% { transform: translateY(1px) rotate(-1deg) scale(0.98) }
  100% { transform: translateY(0) rotate(0) }
}
@keyframes xa-fig-right {
  0% { transform: translateY(0) scale(1) }
  50% { transform: translateY(-3px) scale(1.02) rotate(-1deg) }
  100% { transform: translateY(0) scale(1) }
}
@keyframes xa-braze {
  0% { box-shadow: 0 0 30px 12px rgba(200,120,60,0.3); transform: scale(1) }
  50% { box-shadow: 0 0 50px 20px rgba(220,140,70,0.5); transform: scale(1.05) }
  100% { box-shadow: 0 0 35px 14px rgba(200,120,60,0.35); transform: scale(0.98) }
}
@keyframes xa-glow-pulse {
  0% { opacity: 0.5 }
  50% { opacity: 0.9 }
  100% { opacity: 0.6 }
}

/* --- army-grows-restless (ag) --- */
.scn-ag {
  background:
    linear-gradient(180deg, #0f0e0c 0%, #1d1610 50%, #2a1a12 100%),
    radial-gradient(ellipse at 70% 30%, #3a2212 0%, transparent 60%);
}
.scn-ag .ag-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #181412 0%, #1e1610 70%, transparent);
  animation: ag-sky-pulse 10s ease-in-out infinite;
}
.scn-ag .ag-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1008 0%, #2a1a0e 80%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-ag .ag-soldier-1 {
  position: absolute; bottom: 22%; left: 10%; width: 12%; height: 30%;
  background: linear-gradient(150deg, #0f0b08 0%, #1e140c 100%);
  border-radius: 40% 60% 30% 40% / 60% 50% 40% 50%;
  animation: ag-sway 9s ease-in-out infinite;
}
.scn-ag .ag-soldier-2 {
  position: absolute; bottom: 20%; left: 28%; width: 14%; height: 28%;
  background: linear-gradient(220deg, #120e0a 0%, #1c120a 100%);
  border-radius: 60% 40% 40% 60% / 50% 60% 50% 40%;
  animation: ag-sway 11s ease-in-out infinite reverse;
}
.scn-ag .ag-soldier-3 {
  position: absolute; bottom: 23%; right: 22%; width: 13%; height: 26%;
  background: linear-gradient(90deg, #100c08 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 50% / 60% 40% 50% 50%;
  animation: ag-sway 13s ease-in-out infinite;
}
.scn-ag .ag-leader {
  position: absolute; bottom: 22%; left: 48%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #1a120a 0%, #260e0a 100%);
  border-radius: 50% 40% 40% 50% / 70% 60% 40% 50%;
  animation: ag-leader-breathe 8s ease-in-out infinite;
}
.scn-ag .ag-torch {
  position: absolute; bottom: 40%; left: 50%; width: 8%; height: 22%;
  background: radial-gradient(ellipse at 50% 80%, #d07a30 0%, #4a1e08 80%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 50px 20px rgba(180,100,40,0.6);
  animation: ag-torch-flicker 0.8s steps(3) infinite;
}
.scn-ag .ag-dust {
  position: absolute; bottom: 20%; left: 20%; width: 6px; height: 6px;
  background: rgba(180,140,80,0.3); border-radius: 50%; filter: blur(2px);
  animation: ag-dust-drift 15s linear infinite;
}
@keyframes ag-sky-pulse {
  0% { opacity: 0.8 }
  50% { opacity: 1; filter: brightness(1.2) }
  100% { opacity: 0.85 }
}
@keyframes ag-sway {
  0% { transform: translateX(0) rotate(0deg) }
  25% { transform: translateX(1px) rotate(2deg) }
  50% { transform: translateX(-1px) rotate(-1deg) scale(1.01) }
  75% { transform: translateX(2px) rotate(0deg) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes ag-leader-breathe {
  0% { transform: translateY(0) scale(1) }
  50% { transform: translateY(-4px) scale(1.02) rotate(-1deg) }
  100% { transform: translateY(0) scale(1) }
}
@keyframes ag-torch-flicker {
  0% { box-shadow: 0 0 40px 15px rgba(180,100,40,0.4); filter: brightness(0.9) }
  33% { box-shadow: 0 0 60px 25px rgba(200,120,50,0.6); filter: brightness(1.2) }
  66% { box-shadow: 0 0 35px 10px rgba(160,90,30,0.5); filter: brightness(1) }
  100% { box-shadow: 0 0 50px 18px rgba(180,100,40,0.45); filter: brightness(0.95) }
}
@keyframes ag-dust-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3 }
  50% { transform: translate(30px, -10px) scale(1.5); opacity: 0.6 }
  100% { transform: translate(60px, -20px) scale(0.8); opacity: 0 }
}

/* --- arcadian-jumps-up (aj) --- */
.scn-aj {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1a12 40%, #3a2218 100%),
    radial-gradient(ellipse at 50% 60%, #4a2818 0%, transparent 70%);
}
.scn-aj .aj-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1c1410 0%, #2c1c14 60%, transparent);
}
.scn-aj .aj-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1008 0%, #2d1a10 100%);
  border-radius: 30% 70% 0 0 / 50% 40% 0 0;
}
.scn-aj .aj-bench {
  position: absolute; bottom: 22%; left: 18%; width: 64%; height: 6%;
  background: linear-gradient(180deg, #2a1608 0%, #140a04 100%);
  border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-aj .aj-figure-sitting-left {
  position: absolute; bottom: 20%; left: 25%; width: 12%; height: 22%;
  background: linear-gradient(150deg, #120c08 0%, #221610 100%);
  border-radius: 50% 50% 30% 40% / 60% 60% 40% 40%;
  animation: aj-sit 10s ease-in-out infinite;
}
.scn-aj .aj-figure-sitting-right {
  position: absolute; bottom: 20%; right: 25%; width: 12%; height: 24%;
  background: linear-gradient(200deg, #140e0a 0%, #221610 100%);
  border-radius: 40% 60% 50% 40% / 50% 70% 30% 60%;
  animation: aj-sit 12s ease-in-out infinite reverse;
}
.scn-aj .aj-figure-jumping {
  position: absolute; bottom: 18%; left: 45%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #1a120c 0%, #2a1a10 100%);
  border-radius: 50% 40% 40% 50% / 60% 60% 40% 50%;
  animation: aj-jump 1.5s ease-in-out infinite;
}
.scn-aj .aj-shadow {
  position: absolute; bottom: 12%; left: 42%; width: 20%; height: 6%;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(4px);
  animation: aj-shadow-pulse 1.5s ease-in-out infinite;
}
.scn-aj .aj-torch {
  position: absolute; bottom: 40%; left: 55%; width: 6%; height: 18%;
  background: radial-gradient(ellipse at 50% 30%, #c06a30 0%, #4a2010 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 12px rgba(200,120,50,0.5);
  animation: aj-torch-flicker 1.2s ease-in-out infinite alternate;
}
@keyframes aj-sit {
  0% { transform: translateY(0) rotate(0deg) }
  50% { transform: translateY(-1px) rotate(1deg) scale(1.01) }
  100% { transform: translateY(0) rotate(0) }
}
@keyframes aj-jump {
  0% { transform: translateY(0) rotate(-5deg) scale(1) }
  20% { transform: translateY(-20px) rotate(10deg) scale(1.1) }
  40% { transform: translateY(-10px) rotate(-5deg) scale(0.95) }
  60% { transform: translateY(-25px) rotate(15deg) scale(1.05) }
  80% { transform: translateY(-5px) rotate(0deg) scale(1) }
  100% { transform: translateY(0) rotate(-5deg) scale(1) }
}
@keyframes aj-shadow-pulse {
  0% { transform: scale(1); opacity: 0.4 }
  20% { transform: scale(1.3); opacity: 0.2 }
  40% { transform: scale(1); opacity: 0.4 }
  60% { transform: scale(1.2); opacity: 0.3 }
  80% { transform: scale(0.9); opacity: 0.5 }
  100% { transform: scale(1); opacity: 0.4 }
}
@keyframes aj-torch-flicker {
  0% { box-shadow: 0 0 25px 10px rgba(200,120,50,0.4); filter: brightness(0.9) }
  50% { box-shadow: 0 0 45px 18px rgba(220,140,60,0.6); filter: brightness(1.2) }
  100% { box-shadow: 0 0 30px 12px rgba(200,120,50,0.5); filter: brightness(1) }
}

/* --- xenophon-recounts (xr) --- */
.scn-xr {
  background:
    linear-gradient(180deg, #14100c 0%, #1f1610 40%, #2e1e12 100%),
    radial-gradient(ellipse at 40% 50%, #3a2214 0%, transparent 70%);
}
.scn-xr .xr-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #181210 0%, #221a12 60%, transparent);
}
.scn-xr .xr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #140e08 0%, #22180e 100%);
  border-radius: 50% 50% 0 0 / 40% 30% 0 0;
}
.scn-xr .xr-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 35% 55%, rgba(200,140,60,0.15) 0%, transparent 60%);
  animation: xr-glow-pulse 5s ease-in-out infinite alternate;
}
.scn-xr .xr-figure {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(100deg, #1a100a 0%, #2c1c10 100%);
  border-radius: 50% 40% 40% 50% / 70% 60% 50% 60%;
  animation: xr-fig 8s ease-in-out infinite;
}
.scn-xr .xr-scroll {
  position: absolute; bottom: 24%; left: 50%; width: 12%; height: 4%;
  background: linear-gradient(90deg, #3a281a 0%, #5a3a1e 100%);
  border-radius: 4px; transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: xr-scroll-shake 4s ease-in-out infinite;
}
.scn-xr .xr-other-left {
  position: absolute; bottom: 22%; left: 18%; width: 14%; height: 30%;
  background: linear-gradient(160deg, #0f0a06 0%, #1c120c 100%);
  border-radius: 40% 50% 30% 50% / 60% 50% 40% 40%;
  animation: xr-other 10s ease-in-out infinite;
}
.scn-xr .xr-other-right {
  position: absolute; bottom: 22%; right: 15%; width: 13%; height: 32%;
  background: linear-gradient(220deg, #0f0a06 0%, #1c120c 100%);
  border-radius: 50% 40% 50% 30% / 50% 60% 40% 50%;
  animation: xr-other 12s ease-in-out infinite reverse;
}
.scn-xr .xr-shadow {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 8%;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(6px);
  animation: xr-shadow-shift 8s ease-in-out infinite;
}
@keyframes xr-glow-pulse {
  0% { opacity: 0.4 }
  50% { opacity: 0.9 }
  100% { opacity: 0.5 }
}
@keyframes xr-fig {
  0% { transform: translateY(0) rotate(0deg) scale(1) }
  25% { transform: translateY(-2px) rotate(2deg) scale(1.02) }
  50% { transform: translateY(1px) rotate(-1deg) scale(0.98) }
  75% { transform: translateY(-1px) rotate(1deg) scale(1.01) }
  100% { transform: translateY(0) rotate(0) scale(1) }
}
@keyframes xr-scroll-shake {
  0% { transform: rotate(-10deg) translateX(0) }
  25% { transform: rotate(-12deg) translateX(2px) }
  50% { transform: rotate(-8deg) translateX(-1px) }
  75% { transform: rotate(-11deg) translateX(1px) }
  100% { transform: rotate(-10deg) translateX(0) }
}
@keyframes xr-other {
  0% { transform: translateY(0) scale(1) }
  50% { transform: translateY(-3px) scale(1.02) rotate(-1deg) }
  100% { transform: translateY(0) scale(1) }
}
@keyframes xr-shadow-shift {
  0% { transform: scaleX(1) opacity: 0.5 }
  50% { transform: scaleX(1.1) opacity: 0.3 }
  100% { transform: scaleX(1) opacity: 0.5 }
}

/* harmene-arrival – calm, sunlit coastal scene */
.scn-harmene-arrival {
  background: linear-gradient(180deg, #4a90c8 0%, #7ab8e8 40%, #b0d8f0 70%, #e8e0b0 100%),
              radial-gradient(ellipse at 50% 0%, #ffdd80 0%, transparent 60%);
}
.scn-harmene-arrival .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a7ca8 0%, #2a6080 50%, #1a4058 100%);
  animation: ha-sea 8s ease-in-out infinite alternate;
}
.scn-harmene-arrival .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #6ab0e0 0%, #90c8f0 60%, #c0e0ff 100%);
  animation: ha-sky 12s ease-in-out infinite alternate;
}
.scn-harmene-arrival .coast {
  position: absolute; bottom: 30%; left: 10%; right: 40%; height: 15%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 40% 20% 0 0 / 60% 30% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
}
.scn-harmene-arrival .ship {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ha-ship 10s ease-in-out infinite alternate;
}
.scn-harmene-arrival .sail {
  position: absolute; bottom: 50%; left: 35%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, #d0c0a0 80%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: ha-sail 6s ease-in-out infinite alternate;
}
.scn-harmene-arrival .sun {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe870 0%, #ffcc40 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,60,0.6);
  animation: ha-sun 15s ease-in-out infinite alternate;
}
.scn-harmene-arrival .cloud-a {
  position: absolute; top: 15%; left: 10%; width: 100px; height: 20px;
  background: rgba(255,255,255,0.5);
  filter: blur(8px);
  border-radius: 50%;
  animation: ha-cloud-a 30s linear infinite;
}
.scn-harmene-arrival .cloud-b {
  position: absolute; top: 20%; right: 5%; width: 80px; height: 15px;
  background: rgba(255,255,255,0.3);
  filter: blur(6px);
  border-radius: 50%;
  animation: ha-cloud-b 40s linear infinite reverse;
}
@keyframes ha-sea { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ha-sky { 0% { background-position: 0% 0%; } 50% { background-position: 50% 100%; } 100% { background-position: 100% 0%; } }
@keyframes ha-ship { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes ha-sail { 0% { transform: rotate(-3deg) scaleX(0.95); } 50% { transform: rotate(3deg) scaleX(1.05); } 100% { transform: rotate(-2deg) scaleX(0.98); } }
@keyframes ha-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 10px rgba(255,200,60,0.6); } 50% { transform: translateY(3px) scale(1.05); box-shadow: 0 0 40px 15px rgba(255,200,60,0.8); } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 10px rgba(255,200,60,0.6); } }
@keyframes ha-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes ha-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* single-general-proposed – tense, dim interior (army tent) */
.scn-single-general-proposed {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 30%, #1a0a00 100%),
              radial-gradient(ellipse at 30% 60%, #5a3a20 0%, transparent 60%);
}
.scn-single-general-proposed .tent-wall {
  position: absolute; inset: 10% 5% 15% 5%;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 4px, #5a4a3a 4px, #5a4a3a 6px);
  border-radius: 30% 30% 10% 10%;
  opacity: 0.3;
  animation: sg-tent-pulse 4s ease-in-out infinite alternate;
}
.scn-single-general-proposed .tent-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 10% 10%;
}
.scn-single-general-proposed .table {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(90deg, #5a3a1a 0%, #6a4a2a 50%, #5a3a1a 100%);
  border-radius: 8%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.6);
  animation: sg-table 6s ease-in-out infinite alternate;
}
.scn-single-general-proposed .figure-orator {
  position: absolute; bottom: 15%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sg-orator-gesture 2s ease-in-out infinite alternate;
}
.scn-single-general-proposed .figure-officer-a {
  position: absolute; bottom: 14%; left: 45%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sg-sway 4s ease-in-out infinite;
}
.scn-single-general-proposed .figure-officer-b {
  position: absolute; bottom: 14%; right: 20%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sg-sway 4.5s ease-in-out infinite 0.5s;
}
.scn-single-general-proposed .torch {
  position: absolute; bottom: 45%; left: 15%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #8a5a2a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(10deg);
  animation: sg-torch-flicker 0.8s ease-in-out infinite alternate;
}
.scn-single-general-proposed .omen-eagle {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #1a0a00 0%, transparent 80%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  opacity: 0.5;
  animation: sg-eagle-fly 12s linear infinite;
}
.scn-single-general-proposed .votive-flame {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ff8020 0%, #cc4400 80%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200,80,0,0.6);
  animation: sg-flame 1.2s ease-in-out infinite alternate;
}
@keyframes sg-tent-pulse { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes sg-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes sg-orator-gesture { 0% { transform: rotate(-5deg) scaleY(1); } 100% { transform: rotate(5deg) scaleY(1.05); } }
@keyframes sg-sway { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes sg-torch-flicker { 0% { opacity: 0.7; box-shadow: 0 0 8px 2px #ff8020; } 100% { opacity: 1; box-shadow: 0 0 15px 5px #ffaa40; } }
@keyframes sg-eagle-fly { 0% { transform: translateX(0) rotate(0); opacity: 0; } 20% { opacity: 0.5; } 80% { opacity: 0.5; } 100% { transform: translateX(-200px) rotate(-10deg); opacity: 0; } }
@keyframes sg-flame { 0% { transform: scaleY(1) scaleX(0.9); } 50% { transform: scaleY(1.1) scaleX(1); } 100% { transform: scaleY(0.95) scaleX(0.95); } }

/* xenophon-declines – tense, dim interior (close-up on Xenophon) */
.scn-xenophon-declines {
  background: linear-gradient(180deg, #1a0a05 0%, #2a1a0a 40%, #0a0500 100%),
              radial-gradient(ellipse at 60% 30%, #4a2a1a 0%, transparent 70%);
}
.scn-xenophon-declines .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 30%, transparent 40%, #00000088 100%);
  opacity: 0.5;
  animation: xd-dark-pulse 6s ease-in-out infinite alternate;
}
.scn-xenophon-declines .xenophon-silhouette {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: inset(0 0 20% 0); /* avoid full face */
  transform-origin: bottom center;
  animation: xd-xenophon 3s ease-in-out infinite alternate;
}
.scn-xenophon-declines .hand-gesture {
  position: absolute; bottom: 35%; left: 45%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(30deg);
  animation: xd-hand 1.5s ease-in-out infinite alternate;
}
.scn-xenophon-declines .lacedaemonian-banner {
  position: absolute; top: 10%; right: 15%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); /* desaturated red */
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 10px 2px rgba(200,80,40,0.3);
  transform: rotate(-5deg);
  animation: xd-banner 4s ease-in-out infinite alternate;
}
.scn-xenophon-declines .campfire {
  position: absolute; bottom: 8%; right: 25%; width: 18px; height: 20px;
  background: radial-gradient(circle, #ffaa40 0%, #cc4400 80%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 0 30px 8px rgba(200,80,0,0.5);
  animation: xd-campfire 0.9s ease-in-out infinite alternate;
}
.scn-xenophon-declines .shadow-figures {
  position: absolute; bottom: 12%; left: 10%; right: 60%; height: 40px;
  background: linear-gradient(180deg, rgba(10,5,0,0.8) 0%, transparent 100%);
  border-radius: 50%;
  animation: xd-shadows 5s ease-in-out infinite alternate;
}
.scn-xenophon-declines .ground {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
}
@keyframes xd-dark-pulse { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes xd-xenophon { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes xd-hand { 0% { transform: rotate(25deg) scale(0.95); } 100% { transform: rotate(35deg) scale(1.05); } }
@keyframes xd-banner { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes xd-campfire { 0% { transform: scale(0.9); opacity: 0.8; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes xd-shadows { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.3; transform: scaleY(0.8); } 100% { opacity: 0.5; transform: scaleY(1); } }

/* cheirisophus-chosen – calm, dim interior with hopeful glimpse */
.scn-cheirisophus-chosen {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 60%, #1a0a00 100%),
              radial-gradient(ellipse at 70% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-cheirisophus-chosen .hall-wall {
  position: absolute; inset: 5% 5% 10% 5%;
  background: repeating-linear-gradient(0deg, #3a2a1a 0px, #3a2a1a 3px, #4a3a2a 3px, #4a3a2a 5px);
  border-radius: 20% 20% 10% 10%;
  opacity: 0.2;
  animation: cc-wall 10s ease-in-out infinite alternate;
}
.scn-cheirisophus-chosen .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 15% 15%;
}
.scn-cheirisophus-chosen .cheirisophus-figure {
  position: absolute; bottom: 14%; left: 40%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-cheir 4s ease-in-out infinite alternate;
}
.scn-cheirisophus-chosen .soldier-silhouette-a {
  position: absolute; bottom: 14%; left: 20%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cc-sway 5s ease-in-out infinite;
}
.scn-cheirisophus-chosen .soldier-silhouette-b {
  position: absolute; bottom: 14%; right: 25%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cc-sway 5.5s ease-in-out infinite 1s;
}
.scn-cheirisophus-chosen .window-outside {
  position: absolute; top: 18%; right: 15%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6ab0e0 0%, #90c8f0 100%);
  border: 3px solid #2a1a0a;
  border-radius: 10%;
  box-shadow: 0 0 20px 6px rgba(100,180,220,0.4);
  animation: cc-window 15s ease-in-out infinite alternate;
}
.scn-cheirisophus-chosen .fair-breeze {
  position: absolute; top: 25%; left: 60%; right: 5%; height: 10px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
  filter: blur(4px);
  animation: cc-breeze 8s linear infinite;
}
.scn-cheirisophus-chosen .departing-ship {
  position: absolute; bottom: 12%; left: 55%; width: 50px; height: 15px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.3);
  transform: scale(0.6);
  animation: cc-ship 20s ease-in-out infinite alternate;
}
@keyframes cc-wall { 0% { opacity: 0.1; } 50% { opacity: 0.25; } 100% { opacity: 0.15; } }
@keyframes cc-cheir { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes cc-sway { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes cc-window { 0% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(100,180,220,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(100,180,220,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(100,180,220,0.4); } }
@keyframes cc-breeze { 0% { transform: translateX(-20px); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateX(120vw); opacity: 0; } }
@keyframes cc-ship { 0% { transform: translateX(0) scale(0.6); } 50% { transform: translateX(10px) scale(0.65); } 100% { transform: translateX(0) scale(0.6); } }

.scn-xenophon-advises-attack {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2520 100%),
              radial-gradient(ellipse at 50% 100%, #3a2520 0%, transparent 70%);
}
.scn-xenophon-advises-attack .tent-bg-xa {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1e18 0%, #3a2a20 50%, #1a1410 100%);
  animation: xa-bg-pulse 8s ease-in-out infinite alternate;
}
.scn-xenophon-advises-attack .tent-arch-xa {
  position: absolute; top: 5%; left: 15%; right: 15%; bottom: 60%;
  background: linear-gradient(180deg, transparent 0%, #4a3828 40%, #2a1e18 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: xa-arch 12s ease-in-out infinite alternate;
}
.scn-xenophon-advises-attack .campfire-xa {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #e07030 0%, #c04020 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(224,112,48,0.6);
  animation: xa-fire 2s ease-in-out infinite alternate;
}
.scn-xenophon-advises-attack .smoke-xa {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 60px;
  background: linear-gradient(0deg, rgba(200,180,160,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: xa-smoke 5s ease-in-out infinite;
}
.scn-xenophon-advises-attack .xenophon-xa {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xa-figure-talk 6s ease-in-out infinite;
}
.scn-xenophon-advises-attack .officer-left-xa {
  position: absolute; bottom: 32%; left: 25%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1008 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: xa-figure-nod 4s ease-in-out infinite;
}
.scn-xenophon-advises-attack .officer-right-xa {
  position: absolute; bottom: 34%; right: 25%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #2a1e18 0%, #0a0804 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: xa-figure-nod 4.5s ease-in-out infinite reverse;
}
.scn-xenophon-advises-attack .spear-xa {
  position: absolute; bottom: 35%; left: 55%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: xa-spear 7s ease-in-out infinite alternate;
}
.scn-xenophon-advises-attack .glow-xa {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(224,112,48,0.3) 0%, transparent 70%);
  mix-blend-mode: screen;
  animation: xa-glow-pulse 3s ease-in-out infinite alternate;
}
@keyframes xa-bg-pulse { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes xa-arch { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes xa-fire { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) translateY(-2px) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes xa-smoke { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.6 } 50% { transform: translateX(-50%) translateY(-20px) scale(1.5); opacity: 0.2 } 100% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.6 } }
@keyframes xa-figure-talk { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(1deg) } }
@keyframes xa-figure-nod { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(2deg) } }
@keyframes xa-spear { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes xa-glow-pulse { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }

.scn-meeting-of-officers {
  background: linear-gradient(180deg, #0f0d12 0%, #1a161c 50%, #2a2230 100%),
              radial-gradient(ellipse at 50% 100%, #2a2230 0%, transparent 70%);
}
.scn-meeting-of-officers .night-sky-mo {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f0d12 0%, #1a1620 50%, transparent 100%);
  animation: mo-sky 15s ease-in-out infinite alternate;
}
.scn-meeting-of-officers .ground-mo {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a1410 0%, #2a1e18 50%, #3a2820 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-meeting-of-officers .table-mo {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mo-table 20s ease-in-out infinite alternate;
}
.scn-meeting-of-officers .campfire-mo {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #e08040 0%, #c05030 30%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 50px 25px rgba(224,128,64,0.5);
  animation: mo-fire 2.5s ease-in-out infinite alternate;
}
.scn-meeting-of-officers .figure-center-mo {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mo-figure-speak 5s ease-in-out infinite;
}
.scn-meeting-of-officers .figure-left-mo {
  position: absolute; bottom: 22%; left: 30%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2618 0%, #1a0e08 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mo-figure-listen 4s ease-in-out infinite;
}
.scn-meeting-of-officers .figure-right-mo {
  position: absolute; bottom: 24%; right: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0604 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mo-figure-listen 4.5s ease-in-out infinite reverse;
}
.scn-meeting-of-officers .map-mo {
  position: absolute; bottom: 20%; left: 38%; right: 38%; height: 5%;
  background: linear-gradient(135deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 4px;
  transform: perspective(300px) rotateX(30deg);
  animation: mo-map 10s ease-in-out infinite alternate;
}
.scn-meeting-of-officers .shadow-mo {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: mo-shadow 6s ease-in-out infinite alternate;
}
@keyframes mo-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mo-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mo-fire { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.04) translateY(-2px) } 100% { transform: translateX(-50%) scale(0.96) } }
@keyframes mo-figure-speak { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 75% { transform: translateX(-50%) rotate(1deg) } }
@keyframes mo-figure-listen { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(4deg) } 50% { transform: rotate(-4deg) } 75% { transform: rotate(2deg) } }
@keyframes mo-map { 0% { transform: perspective(300px) rotateX(30deg) } 50% { transform: perspective(300px) rotateX(25deg) } 100% { transform: perspective(300px) rotateX(30deg) } }
@keyframes mo-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

.scn-election-of-generals {
  background: linear-gradient(180deg, #0e0a10 0%, #1a1420 40%, #2a2240 100%),
              radial-gradient(ellipse at 50% 100%, #2a2240 0%, transparent 70%);
}
.scn-election-of-generals .dark-sky-eg {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0e0a10 0%, #1a1420 50%, #2a2240 100%);
  animation: eg-sky 12s ease-in-out infinite alternate;
}
.scn-election-of-generals .horizon-eg {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #2a2240 0%, #3a2a3a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
}
.scn-election-of-generals .torch-left-eg {
  position: absolute; bottom: 45%; left: 15%;
  width: 8px; height: 50px;
  background: linear-gradient(0deg, #5a4a3a 0%, #2a1e18 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: eg-torch 2s ease-in-out infinite alternate;
}
.scn-election-of-generals .torch-right-eg {
  position: absolute; bottom: 47%; right: 15%;
  width: 8px; height: 50px;
  background: linear-gradient(0deg, #5a4a3a 0%, #2a1e18 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: eg-torch 2.5s ease-in-out infinite alternate;
}
.scn-election-of-generals .general-1-eg {
  position: absolute; bottom: 30%; left: 10%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eg-figure 6s ease-in-out infinite;
}
.scn-election-of-generals .general-2-eg {
  position: absolute; bottom: 28%; left: 23%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #141008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eg-figure 6.5s ease-in-out infinite 0.5s;
}
.scn-election-of-generals .general-3-eg {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eg-figure-central 7s ease-in-out infinite;
}
.scn-election-of-generals .general-4-eg {
  position: absolute; bottom: 30%; right: 23%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #12100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eg-figure 6.2s ease-in-out infinite 1.2s;
}
.scn-election-of-generals .general-5-eg {
  position: absolute; bottom: 32%; right: 10%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eg-figure 5.8s ease-in-out infinite 0.8s;
}
@keyframes eg-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes eg-torch { 0% { opacity: 0.6; transform: rotate(-10deg) scaleY(1) } 50% { opacity: 1; transform: rotate(-10deg) scaleY(1.1) } 100% { opacity: 0.7; transform: rotate(-10deg) scaleY(0.95) } }
@keyframes eg-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes eg-figure-central { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-4px) } }

.scn-sneeze-omen {
  background: linear-gradient(180deg, #1a1212 0%, #2a1c1c 40%, #3a2424 100%),
              radial-gradient(ellipse at 50% 100%, #3a2424 0%, transparent 70%);
}
.scn-sneeze-omen .bg-deep-so {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1212 0%, #302020 50%, #1a1212 100%);
  animation: so-bg 10s ease-in-out infinite alternate;
}
.scn-sneeze-omen .campfire-so {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 70px;
  background: radial-gradient(ellipse at 50% 100%, #e08030 0%, #c05020 30%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 60px 30px rgba(224,128,48,0.6);
  animation: so-fire 1.8s ease-in-out infinite alternate;
}
.scn-sneeze-omen .fire-light-so {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(224,128,48,0.15) 0%, transparent 70%);
  mix-blend-mode: screen;
  animation: so-light 3s ease-in-out infinite alternate;
}
.scn-sneeze-omen .kneeling-1-so {
  position: absolute; bottom: 12%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: so-bow 4s ease-in-out infinite;
}
.scn-sneeze-omen .kneeling-2-so {
  position: absolute; bottom: 14%; left: 22%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0804 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: so-bow 4.2s ease-in-out infinite 0.3s;
}
.scn-sneeze-omen .kneeling-3-so {
  position: absolute; bottom: 10%; left: 38%; width: 16px; height: 26px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: so-bow 4.5s ease-in-out infinite 0.6s;
}
.scn-sneeze-omen .xenophon-so {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1e18 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: so-stand 6s ease-in-out infinite;
}
.scn-sneeze-omen .raised-hand-so {
  position: absolute; bottom: 38%; left: 51%; width: 4px; height: 18px;
  background: linear-gradient(0deg, #2a1e18 0%, #100a08 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: so-hand 2s ease-in-out infinite alternate;
}
.scn-sneeze-omen .smoke-so {
  position: absolute; bottom: 35%; left: 45%; right: 45%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: so-smoke 7s ease-in-out infinite;
}
@keyframes so-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes so-fire { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.06) translateY(-3px) } 100% { transform: translateX(-50%) scale(0.94) } }
@keyframes so-light { 0% { opacity: 0.5 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes so-bow { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(20deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(15deg) } }
@keyframes so-stand { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes so-hand { 0% { transform: rotate(-20deg) } 100% { transform: rotate(10deg) } }
@keyframes so-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4 } 50% { transform: translateY(-20px) scale(2); opacity: 0.1 } 100% { transform: translateY(0) scale(1); opacity: 0.4 } }

/* proxenus-dies */
.scn-proxenus-dies {
  background: linear-gradient(180deg, #2b1a0e 0%, #1f0d04 50%, #140902 100%),
    radial-gradient(ellipse at 30% 70%, #8c4a2a 0%, transparent 60%);
}
.scn-proxenus-dies .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1f0d04 0%, transparent 60%);
  animation: pd-wall 20s ease-in-out infinite alternate;
}
.scn-proxenus-dies .bed {
  position: absolute; bottom: 10%; left: 20%; width: 55%; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a140a 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.8);
  animation: pd-bed 8s ease-in-out infinite alternate;
}
.scn-proxenus-dies .figure-proxenus {
  position: absolute; bottom: 18%; left: 35%; width: 14%; height: 18%;
  background: linear-gradient(135deg, #3a1a0a 0%, #1a0a04 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pd-figure-down 6s ease-in-out infinite;
}
.scn-proxenus-dies .figure-gorgias {
  position: absolute; bottom: 15%; left: 58%; width: 10%; height: 25%;
  background: linear-gradient(135deg, #2a1508 0%, #120804 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center; animation: pd-figure-stand 10s ease-in-out infinite alternate;
}
.scn-proxenus-dies .candle {
  position: absolute; bottom: 22%; left: 48%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f5c482 0%, #b87a3a 60%, #6a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: pd-flame 1.5s ease-in-out infinite alternate;
}
.scn-proxenus-dies .candle-glow {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 12%;
  background: radial-gradient(circle, rgba(245,196,130,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: pd-glow 3s ease-in-out infinite alternate;
}
.scn-proxenus-dies .shadow-soft {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,4,2,0.7) 100%);
  animation: pd-shadow 15s ease-in-out infinite alternate;
}
@keyframes pd-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes pd-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pd-figure-down { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes pd-figure-stand { 0% { transform: translateY(0) rotate(1deg) } 33% { transform: translateY(-1px) rotate(-1deg) } 66% { transform: translateY(0) rotate(2deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes pd-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-3px) } 100% { transform: scaleY(0.9) translateY(2px) } }
@keyframes pd-glow { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: 0.7; transform: scale(0.9) } }
@keyframes pd-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.6 } }

/* menon-wickedness */
.scn-menon-wickedness {
  background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 40%, #160b03 100%),
    radial-gradient(ellipse at 60% 50%, #6a3a1a 0%, transparent 70%);
}
.scn-menon-wickedness .bg-cell {
  position: absolute; inset: 0; background: linear-gradient(135deg, #140606 0%, transparent 80%);
  animation: mw-bg 25s ease-in-out infinite alternate;
}
.scn-menon-wickedness .table {
  position: absolute; bottom: 15%; left: 20%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1f0a04 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.8);
  animation: mw-table 12s ease-in-out infinite alternate;
}
.scn-menon-wickedness .map {
  position: absolute; bottom: 18%; left: 25%; width: 30%; height: 6%;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 2%; box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
  animation: mw-map 8s ease-in-out infinite alternate;
}
.scn-menon-wickedness .fig-menon {
  position: absolute; bottom: 12%; left: 30%; width: 14%; height: 22%;
  background: linear-gradient(135deg, #1a0a04 0%, #0a0200 100%);
  border-radius: 50% 45% 35% 35% / 60% 55% 40% 40%;
  transform-origin: bottom center; animation: mw-menon-sit 5s ease-in-out infinite;
}
.scn-menon-wickedness .fig-henchman {
  position: absolute; bottom: 10%; left: 55%; width: 12%; height: 26%;
  background: linear-gradient(135deg, #2a1206 0%, #120602 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center; animation: mw-henchman 7s ease-in-out infinite alternate;
}
.scn-menon-wickedness .lamp-harsh {
  position: absolute; bottom: 30%; left: 48%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f5d4a0 0%, #c89050 60%, #6a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: mw-lamp 1s ease-in-out infinite alternate;
}
.scn-menon-wickedness .shadow-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 30%, rgba(5,2,1,0.9) 100%);
  animation: mw-shadow 10s ease-in-out infinite alternate;
}
@keyframes mw-bg { 0% { opacity: 0.8 } 33% { opacity: 1 } 66% { opacity: 0.9 } 100% { opacity: 0.85 } }
@keyframes mw-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mw-map { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes mw-menon-sit { 0%,100% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes mw-henchman { 0% { transform: translateY(0) skewX(-1deg) } 50% { transform: translateY(-2px) skewX(1deg) } 100% { transform: translateY(0) skewX(0) } }
@keyframes mw-lamp { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.4) rotate(3deg) } 100% { transform: scaleY(0.8) rotate(-1deg) } }
@keyframes mw-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }

/* menon-downfall */
.scn-menon-downfall {
  background: linear-gradient(180deg, #0d0505 0%, #1a0a04 50%, #050202 100%),
    radial-gradient(ellipse at 50% 30%, #7a3a1a 0%, transparent 70%);
}
.scn-menon-downfall .bg-prison {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0a0303 0%, #1f0d06 30%, #0a0303 100%);
  animation: md-bg 18s ease-in-out infinite alternate;
}
.scn-menon-downfall .bar-left {
  position: absolute; left: 30%; top: 5%; bottom: 5%; width: 3%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a04 100%);
  border-radius: 10% / 5%; box-shadow: 2px 0 6px rgba(0,0,0,0.8);
  animation: md-bars 15s ease-in-out infinite alternate;
}
.scn-menon-downfall .bar-right {
  position: absolute; left: 65%; top: 5%; bottom: 5%; width: 3%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a04 100%);
  border-radius: 10% / 5%; box-shadow: -2px 0 6px rgba(0,0,0,0.8);
  animation: md-bars 15s ease-in-out infinite alternate-reverse;
}
.scn-menon-downfall .fig-menon-kneeling {
  position: absolute; bottom: 15%; left: 40%; width: 15%; height: 20%;
  background: linear-gradient(135deg, #2a0e06 0%, #0a0200 100%);
  border-radius: 40% 40% 25% 25% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: md-kneel 4s ease-in-out infinite;
}
.scn-menon-downfall .fig-guard {
  position: absolute; bottom: 10%; left: 53%; width: 12%; height: 28%;
  background: linear-gradient(135deg, #1a0a00 0%, #080400 100%);
  border-radius: 40% 40% 20% 20% / 55% 55% 30% 30%;
  transform-origin: bottom center; animation: md-guard 9s ease-in-out infinite alternate;
}
.scn-menon-downfall .torch {
  position: absolute; bottom: 40%; left: 20%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #e8a050 0%, #b87030 50%, #5a2a0a 100%);
  border-radius: 40% 40% 10% 10%;
  animation: md-torch 0.8s ease-in-out infinite alternate;
}
.scn-menon-downfall .torch-glow {
  position: absolute; bottom: 35%; left: 14%; width: 18%; height: 16%;
  background: radial-gradient(circle, rgba(232,160,80,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: md-glow 2s ease-in-out infinite alternate;
}
@keyframes md-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes md-bars { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes md-kneel { 0%,100% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } }
@keyframes md-guard { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes md-torch { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.3) translateY(-4px) } 100% { transform: scaleY(0.8) translateY(2px) } }
@keyframes md-glow { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.5; transform: scale(0.9) } }

/* agias-and-socrates */
.scn-agias-and-socrates {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 40%, #0d0502 100%),
    radial-gradient(ellipse at 50% 70%, #6a3a2a 0%, transparent 60%);
}
.scn-agias-and-socrates .bg-hall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a0a06 0%, transparent 40%, #1a0a06 100%);
  animation: as-bg 22s ease-in-out infinite alternate;
}
.scn-agias-and-socrates .fig-agias {
  position: absolute; bottom: 15%; left: 25%; width: 12%; height: 22%;
  background: linear-gradient(135deg, #2a120a 0%, #0a0402 100%);
  border-radius: 45% 40% 30% 30% / 60% 55% 35% 35%;
  transform-origin: bottom center; animation: as-fig-left 7s ease-in-out infinite;
}
.scn-agias-and-socrates .fig-socrates {
  position: absolute; bottom: 15%; left: 48%; width: 12%; height: 22%;
  background: linear-gradient(135deg, #2a120a 0%, #0a0402 100%);
  border-radius: 45% 40% 30% 30% / 60% 55% 35% 35%;
  transform-origin: bottom center; animation: as-fig-right 7s ease-in-out infinite 2s;
}
.scn-agias-and-socrates .guard-left {
  position: absolute; bottom: 8%; left: 12%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0402 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: as-guard 11s ease-in-out infinite alternate;
}
.scn-agias-and-socrates .guard-right {
  position: absolute; bottom: 8%; left: 63%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0402 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: as-guard 11s ease-in-out infinite alternate-reverse;
}
.scn-agias-and-socrates .candle-calma {
  position: absolute; bottom: 38%; left: 30%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f0c482 0%, #b08040 60%, #5a2a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: as-candle1 2s ease-in-out infinite alternate;
}
.scn-agias-and-socrates .candle-glow-a {
  position: absolute; bottom: 34%; left: 26%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(240,196,130,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: as-glow1 4s ease-in-out infinite alternate;
}
.scn-agias-and-socrates .candle-calmb {
  position: absolute; bottom: 38%; left: 58%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f0c482 0%, #b08040 60%, #5a2a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: as-candle2 2.5s ease-in-out infinite alternate 0.5s;
}
.scn-agias-and-socrates .candle-glow-b {
  position: absolute; bottom: 34%; left: 54%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(240,196,130,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: as-glow2 4.5s ease-in-out infinite alternate 0.3s;
}
@keyframes as-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes as-fig-left { 0%,100% { transform: translateY(0) rotate(-1deg) } 40% { transform: translateY(-2px) rotate(1deg) } 70% { transform: translateY(0) rotate(0) } }
@keyframes as-fig-right { 0%,100% { transform: translateY(0) rotate(1deg) } 40% { transform: translateY(-2px) rotate(-1deg) } 70% { transform: translateY(0) rotate(0) } }
@keyframes as-guard { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes as-candle1 { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.15) translateY(-2px) } 100% { transform: scaleY(0.95) translateY(1px) } }
@keyframes as-glow1 { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.2) } 100% { opacity: 0.5; transform: scale(0.9) } }
@keyframes as-candle2 { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-3px) } 100% { transform: scaleY(0.9) translateY(1px) } }
@keyframes as-glow2 { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.15) } 100% { opacity: 0.5; transform: scale(0.9) } }

/* ---------- xenophon-leads ---------- */
.scn-xenophon-leads {
  background: linear-gradient(180deg, #2a3a5e 0%, #b8723a 50%, #e8a04a 80%, #f0c870 100%),
              radial-gradient(ellipse at 50% 0%, #f0d080 0%, transparent 60%);
}
.scn-xenophon-leads .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a7e 0%, #7a6a4a 100%); opacity:0.6; animation: xen-sky 15s ease-in-out infinite alternate; }
.scn-xenophon-leads .sun { position:absolute; bottom:55%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffd080 0%, #f0a040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #f0a040; animation: xen-sun 6s ease-in-out infinite; }
.scn-xenophon-leads .mountains { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; clip-path: polygon(0% 100%, 10% 40%, 25% 60%, 35% 30%, 50% 50%, 65% 25%, 80% 45%, 90% 35%, 100% 100%); animation: xen-mountains 12s ease-in-out infinite alternate; }
.scn-xenophon-leads .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 10% 10%; }
.scn-xenophon-leads .rider { position:absolute; bottom:25%; left:20%; width:80px; height:80px; background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xen-rider 4s ease-in-out infinite; box-shadow: -10px 0 20px rgba(0,0,0,0.5); }
.scn-xenophon-leads .soldiers { position:absolute; bottom:22%; left:35%; width:200px; height:50px; display:flex; gap:8px; animation: xen-soldiers 6s linear infinite; }
.scn-xenophon-leads .soldiers::before { content:''; flex:1; background:#3a2a1a; border-radius: 40% 40% 20% 20%; height:100%; animation: xen-soldier-march 1.2s ease-in-out infinite alternate; }
.scn-xenophon-leads .soldiers::after { content:''; flex:1; background:#2a1a0a; border-radius: 40% 40% 20% 20%; height:80%; align-self:flex-end; animation: xen-soldier-march 1.4s ease-in-out infinite alternate; }
.scn-xenophon-leads .spear { position:absolute; bottom:35%; left:25%; width:3px; height:80px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); transform:rotate(15deg); transform-origin: bottom; animation: xen-spear 2s ease-in-out infinite alternate; }
.scn-xenophon-leads .clouds { position:absolute; top:10%; left:0; right:0; height:60px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.3) 20%, transparent 40%, rgba(255,255,255,0.2) 60%, transparent 80%); filter:blur(10px); animation: xen-clouds 40s linear infinite; }

@keyframes xen-sky { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes xen-sun { 0% { transform:scale(0.9); opacity:0.8; } 50% { transform:scale(1.1); opacity:1; } 100% { transform:scale(0.95); opacity:0.85; } }
@keyframes xen-mountains { 0% { transform:translateY(0px); } 50% { transform:translateY(-5px); } 100% { transform:translateY(0px); } }
@keyframes xen-rider { 0% { transform:translateY(0) rotate(-2deg); } 30% { transform:translateY(-3px) rotate(0deg); } 60% { transform:translateY(0) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes xen-soldiers { 0% { transform:translateX(0); } 100% { transform:translateX(-80px); } }
@keyframes xen-soldier-march { 0% { transform:translateY(0); } 50% { transform:translateY(-5px); } 100% { transform:translateY(0); } }
@keyframes xen-spear { 0% { transform:rotate(12deg); } 50% { transform:rotate(18deg); } 100% { transform:rotate(14deg); } }
@keyframes xen-clouds { 0% { background-position:0 0; } 100% { background-position:-2000px 0; } }

/* ---------- summit-taken ---------- */
.scn-summit-taken {
  background: linear-gradient(180deg, #3a4a6e 0%, #7a6a4a 40%, #b8925a 70%, #d0a870 100%),
              radial-gradient(ellipse at 50% 100%, #b08050 0%, transparent 70%);
}
.scn-summit-taken .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a5a8e 0%, #8a7a5a 100%); animation: sum-sky 12s ease-in-out infinite alternate; }
.scn-summit-taken .cliff { position:absolute; bottom:20%; left:10%; right:0; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(0% 100%, 0% 20%, 20% 10%, 35% 25%, 50% 5%, 65% 15%, 80% 0%, 100% 10%, 100% 100%); animation: sum-cliff 18s ease-in-out infinite alternate; }
.scn-summit-taken .path { position:absolute; bottom:15%; left:20%; width:8px; height:70%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); transform:skewX(15deg); transform-origin: bottom; border-radius:0 0 4px 4px; }
.scn-summit-taken .climber { position:absolute; bottom:45%; left:22%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 30%, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sum-climber 5s ease-in-out infinite; }
.scn-summit-taken .enemies { position:absolute; top:10%; right:15%; width:60px; height:60px; animation: sum-enemies 8s linear infinite; }
.scn-summit-taken .enemies::before { content:''; display:block; width:20px; height:35px; background:#2a1a0a; border-radius:50% 50% 20% 20%; position:absolute; right:0; animation: sum-enemy-run 1.5s ease-in-out infinite alternate; }
.scn-summit-taken .enemies::after { content:''; display:block; width:18px; height:30px; background:#1a0a00; border-radius:50% 50% 20% 20%; position:absolute; right:25px; top:10px; animation: sum-enemy-run 1.8s ease-in-out infinite alternate; }
.scn-summit-taken .summit { position:absolute; top:5%; left:50%; transform:translateX(-50%); width:0; height:0; border-left:40px solid transparent; border-right:40px solid transparent; border-bottom:60px solid #3a2a1a; filter:drop-shadow(0 0 10px #f0c040); animation: sum-summit 10s ease-in-out infinite; }
.scn-summit-taken .clouds { position:absolute; top:12%; left:0; right:0; height:40px; background: linear-gradient(90deg, rgba(255,255,255,0.4) 0%, transparent 30%, rgba(255,255,255,0.2) 60%, transparent 100%); filter:blur(8px); animation: sum-clouds 50s linear infinite; }

@keyframes sum-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sum-cliff { 0% { transform:scale(1); } 50% { transform:scale(0.97) translateY(-2px); } 100% { transform:scale(1); } }
@keyframes sum-climber { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-6px) rotate(3deg); } 60% { transform:translateY(0) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sum-enemies { 0% { transform:translateX(0); } 100% { transform:translateX(-100px); } }
@keyframes sum-enemy-run { 0% { transform:translateY(0); } 50% { transform:translateY(-8px); } 100% { transform:translateY(0); } }
@keyframes sum-summit { 0% { opacity:0.8; transform:translateX(-50%) scale(0.95); } 50% { opacity:1; transform:translateX(-50%) scale(1.05); } 100% { opacity:0.85; transform:translateX(-50%) scale(0.98); } }
@keyframes sum-clouds { 0% { background-position:0 0; } 100% { background-position:1500px 0; } }

/* ---------- incendiaries ---------- */
.scn-incendiaries {
  background: linear-gradient(180deg, #2a3040 0%, #4a3a2a 30%, #8a5020 60%, #d07030 80%, #f0a050 100%),
              radial-gradient(ellipse at 50% 80%, #f09040 0%, transparent 70%);
}
.scn-incendiaries .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a4a5a 0%, #6a4a2a 100%); opacity:0.5; animation: inc-sky 8s ease-in-out infinite alternate; }
.scn-incendiaries .villages { position:absolute; bottom:25%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); clip-path: polygon(0% 100%, 5% 40%, 15% 60%, 25% 30%, 35% 50%, 45% 20%, 55% 40%, 65% 10%, 75% 30%, 85% 20%, 95% 40%, 100% 100%); animation: inc-villages 14s ease-in-out infinite alternate; }
.scn-incendiaries .smoke { position:absolute; bottom:50%; left:20%; width:120px; height:80px; background: linear-gradient(90deg, transparent, rgba(80,70,60,0.5) 30%, rgba(60,50,40,0.3) 70%, transparent); filter:blur(15px); animation: inc-smoke 10s ease-in-out infinite; }
.scn-incendiaries .fire { position:absolute; bottom:30%; left:30%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 100%, #f0a030 0%, #c06020 40%, transparent 70%); border-radius:50% 50% 0 0; animation: inc-fire 2s ease-in-out infinite; }
.scn-incendiaries .soldiers { position:absolute; bottom:20%; left:5%; width:150px; height:50px; display:flex; gap:10px; animation: inc-soldiers 7s linear infinite; }
.scn-incendiaries .soldiers::before { content:''; flex:1; background:#3a2a1a; border-radius:40% 40% 20% 20%; height:100%; animation: inc-soldier-move 1.3s ease-in-out infinite alternate; }
.scn-incendiaries .soldiers::after { content:''; flex:1; background:#2a1a0a; border-radius:40% 40% 20% 20%; height:80%; align-self:flex-end; animation: inc-soldier-move 1.5s ease-in-out infinite alternate; }
.scn-incendiaries .embers { position:absolute; top:20%; left:20%; right:20%; height:60px; background: radial-gradient(circle at 50% 50%, #f0c040 0%, transparent 70%); filter:blur(5px); animation: inc-embers 3s ease-in-out infinite; }
.scn-incendiaries .glow { position:absolute; inset:0; background: radial-gradient(circle at 50% 70%, #f0a040 0%, transparent 60%); opacity:0.3; animation: inc-glow 5s ease-in-out infinite alternate; }

@keyframes inc-sky { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes inc-villages { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.02) translateY(-4px); } 100% { transform:scale(1) translateY(0); } }
@keyframes inc-smoke { 0% { transform:translateY(0) scale(1); opacity:0.5; } 50% { transform:translateY(-20px) scale(1.2); opacity:0.7; } 100% { transform:translateY(0) scale(1); opacity:0.4; } }
@keyframes inc-fire { 0% { transform:scaleY(1) rotate(0deg); } 50% { transform:scaleY(1.1) rotate(3deg); } 100% { transform:scaleY(1) rotate(-2deg); } }
@keyframes inc-soldiers { 0% { transform:translateX(0); } 100% { transform:translateX(-100px); } }
@keyframes inc-soldier-move { 0% { transform:translateY(0); } 50% { transform:translateY(-6px); } 100% { transform:translateY(0); } }
@keyframes inc-embers { 0% { transform:translateY(0) scale(0.8); opacity:0.4; } 50% { transform:translateY(-15px) scale(1.3); opacity:0.8; } 100% { transform:translateY(0) scale(0.9); opacity:0.5; } }
@keyframes inc-glow { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.25; } }

/* ---------- wine-skins ---------- */
.scn-wine-skins {
  background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 40%, #8a9a9a 70%, #9aaaaa 100%),
              radial-gradient(ellipse at 50% 100%, #8a9a9a 0%, transparent 70%);
}
.scn-wine-skins .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 100%); opacity:0.7; animation: win-sky 20s ease-in-out infinite alternate; }
.scn-wine-skins .river { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border-radius:0 0 20% 20%; animation: win-river 15s linear infinite; }
.scn-wine-skins .bank { position:absolute; bottom:40%; left:0; right:0; height:10%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; }
.scn-wine-skins .skins { position:absolute; bottom:45%; left:20%; width:100px; height:40px; display:flex; gap:15px; animation: win-skins 6s ease-in-out infinite; }
.scn-wine-skins .skins::before { content:''; width:30px; height:30px; background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 100%); border-radius:50%; box-shadow:inset 0 -4px 6px rgba(0,0,0,0.3); animation: win-skin-bob 3s ease-in-out infinite alternate; }
.scn-wine-skins .skins::after { content:''; width:30px; height:30px; background: radial-gradient(circle, #7a6a5a 0%, #5a4a3a 100%); border-radius:50%; box-shadow:inset 0 -4px 6px rgba(0,0,0,0.3); animation: win-skin-bob 3.5s ease-in-out infinite alternate; }
.scn-wine-skins .stones { position:absolute; bottom:48%; left:10%; width:20px; height:15px; background:#5a5a4a; border-radius:50%; box-shadow: 30px 0 0 #4a4a3a, 60px 0 0 #6a5a4a; animation: win-stones 8s ease-in-out infinite; }
.scn-wine-skins .ropes { position:absolute; bottom:42%; left:20%; width:100px; height:2px; background:#4a3a2a; animation: win-ropes 10s linear infinite; }
.scn-wine-skins .figures { position:absolute; bottom:38%; right:20%; width:40px; height:60px; animation: win-figures 7s ease-in-out infinite; }
.scn-wine-skins .figures::before { content:''; display:block; width:20px; height:40px; background:#3a3a2a; border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: win-figure-bend 4s ease-in-out infinite alternate; }

@keyframes win-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes win-river { 0% { background-position:0 0; } 100% { background-position:100px 0; } }
@keyframes win-skins { 0% { transform:translateY(0); } 50% { transform:translateY(-5px); } 100% { transform:translateY(0); } }
@keyframes win-skin-bob { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(0); } }
@keyframes win-stones { 0% { transform:translateY(0); } 50% { transform:translateY(2px); } 100% { transform:translateY(0); } }
@keyframes win-ropes { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes win-figures { 0% { transform:translateX(0); } 50% { transform:translateX(-10px); } 100% { transform:translateX(0); } }
@keyframes win-figure-bend { 0% { transform:rotate(0deg); } 50% { transform:rotate(15deg); } 100% { transform:rotate(0deg); } }

/* Scene 1: orontas-arrested */
.scn-orontas-arrested {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0a0505 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-orontas-arrested .tent-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e0e 50%, #2a1a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.7);
  animation: oa-tent 15s ease-in-out infinite alternate;
}
.scn-orontas-arrested .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e0e 0%, #2a1a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: oa-floor 20s linear infinite;
}
.scn-orontas-arrested .torch-glow {
  position: absolute; top: 10%; left: 35%; width: 40px; height: 60px;
  background: radial-gradient(circle, #ffaa40 0%, #cc7020 40%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 50px 20px rgba(255,170,64,0.4), 0 0 100px 40px rgba(200,100,30,0.2);
  animation: oa-flicker 0.8s ease-in-out infinite alternate;
}
.scn-orontas-arrested .soldier-1 {
  position: absolute; bottom: 28%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 40%, #2a1005 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: -5px 0 8px rgba(0,0,0,0.5);
  animation: oa-sway 4s ease-in-out infinite;
}
.scn-orontas-arrested .orontas {
  position: absolute; bottom: 26%; left: 50%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 50%, #1a0a05 100%);
  border-radius: 40% 40% 20% 20%;
  transform: translateX(-50%) rotate(-5deg);
  animation: oa-struggle 3s ease-in infinite;
}
.scn-orontas-arrested .soldier-2 {
  position: absolute; bottom: 28%; right: 22%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 40%, #2a1005 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 5px 0 8px rgba(0,0,0,0.5);
  animation: oa-sway 4.5s ease-in-out infinite;
}
.scn-orontas-arrested .shadow-pool {
  position: absolute; bottom: 20%; left: 30%; width: 150px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%);
  filter: blur(10px);
  animation: oa-shadow 6s ease-in-out infinite alternate;
}
@keyframes oa-tent {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1.02); }
}
@keyframes oa-floor {
  0% { background-position: 0 0; }
  100% { background-position: 20px 0; }
}
@keyframes oa-flicker {
  0% { opacity: 0.7; transform: scale(0.95) rotate(-2deg); box-shadow: 0 0 40px 15px rgba(255,170,64,0.3), 0 0 80px 30px rgba(200,100,30,0.1); }
  50% { opacity: 1; transform: scale(1.05) rotate(3deg); box-shadow: 0 0 60px 25px rgba(255,200,80,0.5), 0 0 120px 50px rgba(230,140,40,0.3); }
  100% { opacity: 0.8; transform: scale(1) rotate(-1deg); box-shadow: 0 0 50px 20px rgba(255,170,64,0.4), 0 0 100px 40px rgba(200,100,30,0.2); }
}
@keyframes oa-sway {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes oa-struggle {
  0% { transform: translateX(-50%) rotate(-5deg) translateY(0); }
  30% { transform: translateX(-50%) rotate(-2deg) translateY(-3px); }
  60% { transform: translateX(-50%) rotate(3deg) translateY(2px); }
  100% { transform: translateX(-50%) rotate(-5deg) translateY(0); }
}
@keyframes oa-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.2); }
  100% { opacity: 0.7; transform: scaleX(0.9); }
}

/* Scene 2: court-martial-orontas */
.scn-court-martial-orontas {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #05050a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 60%);
}
.scn-court-martial-orontas .stone-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
  animation: cm-wall 20s ease-in-out infinite alternate;
}
.scn-court-martial-orontas .council-table {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 20px 20px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: cm-table 12s ease-in-out infinite;
}
.scn-court-martial-orontas .judges {
  position: absolute; bottom: 27%; left: 20%; right: 20%; height: 15%;
  display: flex; justify-content: space-around;
  background: transparent;
}
.scn-court-martial-orontas .judges::before,
.scn-court-martial-orontas .judges::after {
  content: '';
  display: block;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%);
  border-radius: 30% 30% 20% 20%;
  margin: 0 5px;
  animation: cm-judge 8s ease-in-out infinite;
}
.scn-court-martial-orontas .judges::before { margin-right: auto; }
.scn-court-martial-orontas .judges::after { margin-left: auto; }
.scn-court-martial-orontas .cyrus {
  position: absolute; bottom: 24%; left: 48%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 50%, #1a0e0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: translateX(-50%);
  animation: cm-cyrus 6s ease-in-out infinite;
}
.scn-court-martial-orontas .orontas-accused {
  position: absolute; bottom: 22%; left: 35%; width: 26px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 50%, #1a0a05 100%);
  border-radius: 30% 30% 20% 20%;
  transform: translateX(-50%) rotate(2deg);
  animation: cm-orontas 4s ease-in-out infinite;
}
.scn-court-martial-orontas .torch-glow-cm {
  position: absolute; top: 5%; left: 50%; width: 50px; height: 70px;
  background: radial-gradient(circle, #ffaa40 0%, #cc7020 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 70px 30px rgba(255,170,64,0.3), 0 0 140px 60px rgba(200,100,30,0.15);
  animation: cm-flicker 1s ease-in-out infinite alternate;
}
.scn-court-martial-orontas .spear-rack {
  position: absolute; bottom: 10%; right: 10%; width: 60px; height: 120px;
  background: repeating-linear-gradient(0deg, #5a3a2a 0px, #5a3a2a 4px, transparent 4px, transparent 8px);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  opacity: 0.6;
  animation: cm-spear 18s linear infinite;
}
@keyframes cm-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cm-table {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
}
@keyframes cm-judge {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cm-cyrus {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes cm-orontas {
  0% { transform: translateX(-50%) rotate(2deg) translateY(0); }
  30% { transform: translateX(-50%) rotate(1deg) translateY(-1px); }
  60% { transform: translateX(-50%) rotate(3deg) translateY(1px); }
  100% { transform: translateX(-50%) rotate(2deg) translateY(0); }
}
@keyframes cm-flicker {
  0% { opacity: 0.6; transform: scale(0.9) rotate(-3deg); box-shadow: 0 0 50px 20px rgba(255,170,64,0.2), 0 0 100px 40px rgba(200,100,30,0.1); }
  50% { opacity: 1; transform: scale(1.1) rotate(2deg); box-shadow: 0 0 80px 30px rgba(255,200,80,0.5), 0 0 160px 60px rgba(230,140,40,0.3); }
  100% { opacity: 0.7; transform: scale(1) rotate(-1deg); box-shadow: 0 0 60px 25px rgba(255,170,64,0.3), 0 0 120px 50px rgba(200,100,30,0.15); }
}
@keyframes cm-spear {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(5deg); }
}

/* Scene 3: clearchus-opinion */
.scn-clearchus-opinion {
  background: linear-gradient(180deg, #0a0a14 0%, #14141e 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 30% 60%, #1e1e2e 0%, transparent 70%);
}
.scn-clearchus-opinion .bg-void {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, #1a1a2a 0%, #05050a 100%);
  animation: cl-void 25s ease-in-out infinite alternate;
}
.scn-clearchus-opinion .clearchus {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0e05 100%);
  border-radius: 40% 40% 20% 20%;
  transform: translateX(-50%);
  animation: cl-clearchus 5s ease-in-out infinite;
}
.scn-clearchus-opinion .cyrus-opinion {
  position: absolute; bottom: 24%; left: 55%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a0e0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: translateX(-50%);
  animation: cl-cyrus 6s ease-in-out infinite;
}
.scn-clearchus-opinion .orontas-silhouette {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #0a0505 0%, #000 100%);
  border-radius: 30% 30% 20% 20%;
  opacity: 0.7;
  animation: cl-silhouette 8s ease-in-out infinite alternate;
}
.scn-clearchus-opinion .table-scroll {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 6%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 5px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.8);
  animation: cl-table 12s ease-in-out infinite;
}
.scn-clearchus-opinion .oil-lamp {
  position: absolute; top: 15%; left: 42%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.4), 0 0 60px 20px rgba(200,128,64,0.2);
  animation: cl-lamp 2.5s ease-in-out infinite alternate;
}
.scn-clearchus-opinion .smoke-wisp {
  position: absolute; top: 8%; left: 46%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,200,200,0.1) 0%, transparent 100%);
  filter: blur(8px);
  animation: cl-smoke 15s linear infinite;
}
@keyframes cl-void {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cl-clearchus {
  0% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  25% { transform: translateX(-50%) rotate(0deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(1deg) translateY(1px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
}
@keyframes cl-cyrus {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes cl-silhouette {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes cl-table {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes cl-lamp {
  0% { opacity: 0.6; transform: scale(0.9) rotate(-5deg); box-shadow: 0 0 20px 5px rgba(255,208,128,0.2), 0 0 40px 10px rgba(200,128,64,0.1); }
  50% { opacity: 1; transform: scale(1.1) rotate(3deg); box-shadow: 0 0 40px 15px rgba(255,208,128,0.5), 0 0 80px 30px rgba(200,128,64,0.3); }
  100% { opacity: 0.7; transform: scale(1) rotate(-2deg); box-shadow: 0 0 30px 10px rgba(255,208,128,0.3), 0 0 60px 20px rgba(200,128,64,0.15); }
}
@keyframes cl-smoke {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  50% { transform: translate(10px, -15px) scale(1.5); opacity: 0.1; }
  100% { transform: translate(20px, -30px) scale(2); opacity: 0; }
}

/* Scene 4: orontas-condemned */
.scn-orontas-condemned {
  background: linear-gradient(180deg, #0a0505 0%, #1a0e0e 30%, #2a1a1a 70%, #1a0e0e 100%),
              radial-gradient(ellipse at 50% 0%, #1a0e0e 0%, transparent 80%);
}
.scn-orontas-condemned .bg-condemned {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, #050505 100%);
  animation: oc-bg 20s ease-in-out infinite alternate;
}
.scn-orontas-condemned .cyrus-condemning {
  position: absolute; bottom: 24%; left: 55%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a0e0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: translateX(-50%);
  animation: oc-cyrus 6s ease-in-out infinite;
}
.scn-orontas-condemned .orontas-kneeling {
  position: absolute; bottom: 18%; left: 38%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 50%, #0a0500 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: translateX(-50%) rotate(15deg);
  animation: oc-kneel 4s ease-in-out infinite;
}
.scn-orontas-condemned .altar-stone {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.8);
  animation: oc-altar 15s ease-in-out infinite;
}
.scn-orontas-condemned .light-beam {
  position: absolute; top: 0; left: 45%; right: 45%; height: 50%;
  background: linear-gradient(180deg, rgba(255,200,150,0.15) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: oc-beam 8s ease-in-out infinite alternate;
}
.scn-orontas-condemned .chain-shackle {
  position: absolute; bottom: 10%; left: 48%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 0 10px 10px rgba(0,0,0,0.5);
  animation: oc-chain 3s ease-in-out infinite;
}
@keyframes oc-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes oc-cyrus {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  75% { transform: translateX(-50%) translateY(1px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes oc-kneel {
  0%,100% { transform: translateX(-50%) rotate(15deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(10deg) translateY(-3px); }
}
@keyframes oc-altar {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
}
@keyframes oc-beam {
  0% { opacity: 0.2; transform: scaleY(0.8); }
  50% { opacity: 0.4; transform: scaleY(1); }
  100% { opacity: 0.1; transform: scaleY(0.9); }
}
@keyframes oc-chain {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

/* Scene: clearchus-blamed (dark, tense) */
.scn-clearchus-blamed {
  background:
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1210 60%, #0a0808 100%),
    linear-gradient(180deg, #2a1e12 0%, #0d0806 100%);
}
.scn-clearchus-blamed .bg {
  position: absolute; inset: 0; background: inherit; z-index: 0;
}
.scn-clearchus-blamed .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  z-index: 1;
  animation: cb-wall 12s ease-in-out infinite alternate;
}
.scn-clearchus-blamed .floor {
  position: absolute; bottom: 0; height: 40%; left: 0; right: 0;
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%);
  z-index: 1;
}
.scn-clearchus-blamed .table {
  position: absolute; bottom: 20%; left: 50%; width: 180px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  z-index: 3;
  animation: cb-table 4s ease-in-out infinite;
}
.scn-clearchus-blamed .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1e12 0%, #0d0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  z-index: 4;
  animation: cb-figure-left 6s ease-in-out infinite alternate;
}
.scn-clearchus-blamed .figure-right {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #2a1e12 0%, #0d0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  z-index: 4;
  animation: cb-figure-right 5s ease-in-out infinite alternate;
}
.scn-clearchus-blamed .lantern {
  position: absolute; bottom: 38%; left: 50%; width: 20px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0a050 0%, #b06030 60%, #402010 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px #c07030, 0 0 60px 16px rgba(192,112,48,0.4);
  z-index: 5;
  animation: cb-lantern 2s ease-in-out infinite alternate;
}
.scn-clearchus-blamed .scroll {
  position: absolute; bottom: 25%; left: 50%; width: 34px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c09060 0%, #a07040 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 30% 30%;
  z-index: 4;
  animation: cb-scroll 8s ease-in-out infinite;
}
.scn-clearchus-blamed .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 90px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%);
  z-index: 2;
  animation: cb-shadow 3s ease-in-out infinite alternate;
}
@keyframes cb-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cb-table { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(0.5deg) translateY(-1px); } }
@keyframes cb-figure-left { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cb-figure-right { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cb-lantern { 0% { box-shadow:0 0 20px 6px #c07030; transform: scale(1) rotate(0deg); } 50% { box-shadow:0 0 40px 12px #f09050; transform: scale(1.05) rotate(3deg); } 100% { box-shadow:0 0 25px 8px #c07030; transform: scale(0.98) rotate(-2deg); } }
@keyframes cb-scroll { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(-2deg) translateY(1px); } }
@keyframes cb-shadow { 0% { opacity:0.6; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(1.1); } 100% { opacity:0.5; transform:scaleX(0.95); } }

/* Scene: clearchus-character (calm) */
.scn-clearchus-character {
  background:
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1210 60%, #0d0806 100%),
    linear-gradient(180deg, #2a1e12 0%, #0d0806 100%);
}
.scn-clearchus-character .bg { position:absolute; inset:0; background:inherit; z-index:0; }
.scn-clearchus-character .tent-wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  z-index:1;
  animation: cc-wall 15s ease-in-out infinite alternate;
}
.scn-clearchus-character .floor {
  position:absolute; bottom:0; height:45%; left:0; right:0;
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%);
  z-index:1;
}
.scn-clearchus-character .table {
  position:absolute; bottom:25%; left:55%; width:120px; height:16px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius:4px;
  box-shadow:0 4px 8px rgba(0,0,0,0.6);
  z-index:3;
  animation: cc-table 5s ease-in-out infinite;
}
.scn-clearchus-character .sword {
  position:absolute; bottom:30%; left:55%; width:60px; height:8px;
  transform:translateX(-50%) rotate(-20deg);
  background: linear-gradient(90deg, #7a6a5a 0%, #a09080 30%, #c0b0a0 50%, #a09080 70%, #7a6a5a 100%);
  border-radius:40% 10% 10% 40% / 50% 10% 10% 50%;
  z-index:4;
  box-shadow:0 2px 4px rgba(0,0,0,0.5);
  animation: cc-sword 7s ease-in-out infinite alternate;
}
.scn-clearchus-character .figure {
  position:absolute; bottom:25%; left:35%; width:32px; height:52px;
  background: linear-gradient(180deg, #2a1e12 0%, #0d0806 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  z-index:4;
  animation: cc-figure 6s ease-in-out infinite alternate;
}
.scn-clearchus-character .lamp {
  position:absolute; bottom:40%; left:40%; width:16px; height:20px;
  background: radial-gradient(circle, #f0a050 0%, #b06030 60%, #402010 100%);
  border-radius:40% 40% 10% 10%;
  box-shadow:0 0 24px 6px #c07030, 0 0 48px 12px rgba(192,112,48,0.3);
  z-index:5;
  animation: cc-lamp 3s ease-in-out infinite alternate;
}
.scn-clearchus-character .shadow {
  position:absolute; bottom:25%; left:35%; width:100px; height:25px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%);
  z-index:2;
  animation: cc-shadow 4s ease-in-out infinite alternate;
}
@keyframes cc-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes cc-table { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(-0.5deg) translateY(1px); } }
@keyframes cc-sword { 0% { transform:translateX(-50%) rotate(-20deg); opacity:0.85; } 50% { transform:translateX(-50%) rotate(-18deg); opacity:1; } 100% { transform:translateX(-50%) rotate(-22deg); opacity:0.9; } }
@keyframes cc-figure { 0% { transform:translateX(0) scaleY(1); } 50% { transform:translateX(2px) scaleY(1.01) rotate(0.5deg); } 100% { transform:translateX(0) scaleY(1); } }
@keyframes cc-lamp { 0% { box-shadow:0 0 18px 4px #c07030; transform:scale(1) rotate(-2deg); } 50% { box-shadow:0 0 30px 8px #f0a050; transform:scale(1.02) rotate(2deg); } 100% { box-shadow:0 0 22px 5px #c07030; transform:scale(0.98) rotate(-1deg); } }
@keyframes cc-shadow { 0% { opacity:0.5; transform:scaleX(1); } 50% { opacity:0.7; transform:scaleX(1.05); } 100% { opacity:0.55; transform:scaleX(0.98); } }

/* Scene: clearchus-exile (calm) */
.scn-clearchus-exile {
  background:
    radial-gradient(ellipse at 50% 50%, #2a1e12 0%, #0d0806 70%, #050302 100%),
    linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
}
.scn-clearchus-exile .bg { position:absolute; inset:0; background:inherit; z-index:0; }
.scn-clearchus-exile .wall {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1210 100%);
  z-index:1;
  animation: ce-wall 14s ease-in-out infinite alternate;
}
.scn-clearchus-exile .floor {
  position:absolute; bottom:0; height:50%; left:0; right:0;
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%);
  z-index:1;
}
.scn-clearchus-exile .window {
  position:absolute; top:25%; right:20%; width:40px; height:50px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border:4px solid #4a3a2a;
  border-radius:4px;
  box-shadow:inset 0 0 20px rgba(0,0,0,0.8);
  z-index:2;
  animation: ce-window 8s ease-in-out infinite alternate;
}
.scn-clearchus-exile .figure {
  position:absolute; bottom:30%; left:25%; width:30px; height:48px;
  background: linear-gradient(180deg, #2a1e12 0%, #0d0806 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  z-index:4;
  animation: ce-figure 9s ease-in-out infinite alternate;
}
.scn-clearchus-exile .lamp {
  position:absolute; bottom:45%; left:35%; width:14px; height:18px;
  background: radial-gradient(circle, #e09040 0%, #a06030 60%, #402010 100%);
  border-radius:40% 40% 10% 10%;
  box-shadow:0 0 20px 5px #b07040, 0 0 40px 10px rgba(176,112,64,0.3);
  z-index:5;
  animation: ce-lamp 3s ease-in-out infinite alternate;
}
.scn-clearchus-exile .chest {
  position:absolute; bottom:30%; right:30%; width:40px; height:24px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius:4px;
  box-shadow:0 4px 8px rgba(0,0,0,0.6);
  z-index:3;
  animation: ce-chest 6s ease-in-out infinite;
}
.scn-clearchus-exile .shadow {
  position:absolute; bottom:30%; left:25%; width:80px; height:20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%);
  z-index:2;
  animation: ce-shadow 5s ease-in-out infinite alternate;
}
@keyframes ce-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.93; } }
@keyframes ce-window { 0% { box-shadow:inset 0 0 20px rgba(0,0,0,0.8); background:#2a3a5a; } 50% { box-shadow:inset 0 0 30px rgba(0,0,0,0.7); background:#3a4a6a; } 100% { box-shadow:inset 0 0 20px rgba(0,0,0,0.8); background:#2a3a5a; } }
@keyframes ce-figure { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ce-lamp { 0% { box-shadow:0 0 15px 3px #b07040; transform:scale(1) rotate(-1deg); } 50% { box-shadow:0 0 25px 6px #e09040; transform:scale(1.03) rotate(1deg); } 100% { box-shadow:0 0 18px 4px #b07040; transform:scale(0.98) rotate(-1deg); } }
@keyframes ce-chest { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes ce-shadow { 0% { opacity:0.5; transform:scaleX(1); } 50% { opacity:0.7; transform:scaleX(1.08); } 100% { opacity:0.55; transform:scaleX(0.96); } }

/* Scene: clearchus-born-soldier (calm) */
.scn-clearchus-born-soldier {
  background:
    radial-gradient(ellipse at 50% 35%, #3a2a1a 0%, #1a1210 60%, #0d0806 100%),
    linear-gradient(180deg, #2a1e12 0%, #0d0806 100%);
}
.scn-clearchus-born-soldier .bg { position:absolute; inset:0; background:inherit; z-index:0; }
.scn-clearchus-born-soldier .wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  z-index:1;
  animation: cbs-wall 16s ease-in-out infinite alternate;
}
.scn-clearchus-born-soldier .floor {
  position:absolute; bottom:0; height:45%; left:0; right:0;
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%);
  z-index:1;
}
.scn-clearchus-born-soldier .armor-stand {
  position:absolute; bottom:25%; left:40%; width:30px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius:20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow:0 4px 8px rgba(0,0,0,0.6);
  z-index:3;
  animation: cbs-armor 8s ease-in-out infinite alternate;
}
.scn-clearchus-born-soldier .helmet {
  position:absolute; bottom:50%; left:40%; width:28px; height:22px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #7a6a5a 0%, #4a3a2a 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow:0 2px 6px rgba(0,0,0,0.5);
  z-index:4;
  animation: cbs-helmet 5s ease-in-out infinite alternate;
}
.scn-clearchus-born-soldier .figure {
  position:absolute; bottom:25%; right:35%; width:30px; height:50px;
  background: linear-gradient(180deg, #2a1e12 0%, #0d0806 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  z-index:4;
  animation: cbs-figure 7s ease-in-out infinite alternate;
}
.scn-clearchus-born-soldier .lamp {
  position:absolute; bottom:45%; left:55%; width:16px; height:20px;
  background: radial-gradient(circle, #f0a050 0%, #b06030 60%, #402010 100%);
  border-radius:40% 40% 10% 10%;
  box-shadow:0 0 20px 5px #c07030, 0 0 40px 10px rgba(192,112,48,0.3);
  z-index:5;
  animation: cbs-lamp 3s ease-in-out infinite alternate;
}
.scn-clearchus-born-soldier .shadow {
  position:absolute; bottom:25%; right:35%; width:90px; height:22px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%);
  z-index:2;
  animation: cbs-shadow 4s ease-in-out infinite alternate;
}
@keyframes cbs-wall { 0% { opacity:0.88; } 50% { opacity:1; } 100% { opacity:0.94; } }
@keyframes cbs-armor { 0% { transform:translateX(0) scaleY(1); } 50% { transform:translateX(2px) scaleY(1.01); } 100% { transform:translateX(-2px) scaleY(0.99); } }
@keyframes cbs-helmet { 0% { transform:translateX(-50%) rotate(0deg); opacity:0.9; } 50% { transform:translateX(-50%) rotate(2deg); opacity:1; } 100% { transform:translateX(-50%) rotate(-2deg); opacity:0.92; } }
@keyframes cbs-figure { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes cbs-lamp { 0% { box-shadow:0 0 15px 3px #c07030; transform:scale(1) rotate(0deg); } 50% { box-shadow:0 0 30px 8px #f0a050; transform:scale(1.02) rotate(2deg); } 100% { box-shadow:0 0 18px 4px #c07030; transform:scale(0.98) rotate(-2deg); } }
@keyframes cbs-shadow { 0% { opacity:0.45; transform:scaleX(1); } 50% { opacity:0.65; transform:scaleX(1.06); } 100% { opacity:0.5; transform:scaleX(0.97); } }

.scn-clearchus-speaks-to-tissaphernes { background: linear-gradient(180deg, #1e1916 0%, #2c231c 50%, #1a1510 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); }
.scn-clearchus-speaks-to-tissaphernes .hall-back { position:absolute; inset:0; background: linear-gradient(90deg, #2a221c 0%, #3a2e24 30%, #2a221c 100%); }
.scn-clearchus-speaks-to-tissaphernes .hall-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1510 0%, #2c231c 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-clearchus-speaks-to-tissaphernes .altar { position:absolute; bottom:30%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-clearchus-speaks-to-tissaphernes .flame { position:absolute; bottom:48%; left:50%; width:8px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffb040 0%, #d06020 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #d06020, 0 0 40px 12px rgba(200,80,20,.3); animation: cst-flame 1.5s ease-in-out infinite; }
.scn-clearchus-speaks-to-tissaphernes .figure-left { position:absolute; bottom:28%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cst-figure-l 4s ease-in-out infinite; }
.scn-clearchus-speaks-to-tissaphernes .figure-right { position:absolute; bottom:28%; right:38%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cst-figure-r 4s ease-in-out infinite alternate; }
.scn-clearchus-speaks-to-tissaphernes .shadow-shaft { position:absolute; bottom:30%; left:50%; width:2px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 100%); animation: cst-shaft 8s ease-in-out infinite; }
@keyframes cst-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(1) translateY(0); opacity:.8 } }
@keyframes cst-figure-l { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } }
@keyframes cst-figure-r { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cst-shaft { 0% { opacity:.3; transform: translateX(-50%) scaleY(1); } 50% { opacity:.6; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:.3; transform: translateX(-50%) scaleY(1); } }

.scn-clearchus-flatters { background: linear-gradient(180deg, #2a1e14 0%, #3b2a1c 50%, #2a1e14 100%), radial-gradient(ellipse at 50% 70%, #4a3520 0%, transparent 70%); }
.scn-clearchus-flatters .room-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1c 0%, #4a3a24 50%, #3a2a1c 100%); animation: cfl-wall 20s ease-in-out infinite alternate; }
.scn-clearchus-flatters .table { position:absolute; bottom:25%; left:40%; width:30%; height:10px; background: linear-gradient(180deg, #6a4a30 0%, #4a2e18 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-clearchus-flatters .wine-jug { position:absolute; bottom:32%; left:48%; width:12px; height:20px; background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%); border-radius:0 0 40% 40% / 0 0 60% 60%; transform-origin: bottom center; animation: cfl-jug 6s ease-in-out infinite; }
.scn-clearchus-flatters .lamp { position:absolute; bottom:60%; left:30%; width:14px; height:18px; background: radial-gradient(ellipse at 50% 40%, #ffc060 0%, #d08020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #d08020, 0 0 60px 20px rgba(200,100,30,.3); animation: cfl-lamp 3s ease-in-out infinite alternate; }
.scn-clearchus-flatters .figure-clearchus { position:absolute; bottom:28%; left:45%; width:18px; height:44px; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cfl-bow 5s ease-in-out infinite; }
.scn-clearchus-flatters .figure-tissaphernes { position:absolute; bottom:28%; right:40%; width:20px; height:48px; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cfl-sit 7s ease-in-out infinite alternate; }
@keyframes cfl-wall { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes cfl-jug { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes cfl-lamp { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(1); opacity:.9; } }
@keyframes cfl-bow { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(0) translateY(0); } 75% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes cfl-sit { 0% { transform: rotate(0); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }

.scn-tissaphernes-arrogance { background: linear-gradient(180deg, #1e1612 0%, #2c221c 50%, #1a120e 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-tissaphernes-arrogance .wall-stone { position:absolute; inset:0; background: linear-gradient(90deg, #2a221c 0%, #3a2e24 30%, #2a221c 100%); }
.scn-tissaphernes-arrogance .window-frame { position:absolute; top:20%; left:30%; width:40%; height:50%; border: 4px solid #3a2a1a; background: #1a1510; border-radius:8px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-tissaphernes-arrogance .landscape { position:absolute; top:22%; left:32%; width:36%; height:46%; background: linear-gradient(180deg, #2a2a3a 0%, #3a4a5a 50%, #5a6a4a 100%); border-radius:4px; overflow:hidden; animation: tia-land 30s ease-in-out infinite alternate; }
.scn-tissaphernes-arrogance .figure-tissaphernes { position:absolute; bottom:28%; left:50%; width:22px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tia-fig 8s ease-in-out infinite; }
.scn-tissaphernes-arrogance .spear { position:absolute; bottom:28%; left:54%; width:3px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #2a2018 100%); transform-origin: bottom center; animation: tia-spear 4s ease-in-out infinite alternate; }
.scn-tissaphernes-arrogance .dust { position:absolute; bottom:20%; left:20%; width:60%; height:10px; background: radial-gradient(ellipse, rgba(200,180,150,.3) 0%, transparent 100%); animation: tia-dust 12s linear infinite; }
@keyframes tia-land { 0% { background-position: 0 0; } 50% { background-position: -10px -5px; } 100% { background-position: 0 0; } }
@keyframes tia-fig { 0% { transform: translateX(-50%) rotate(0); } 30% { transform: translateX(-50%) rotate(3deg); } 60% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes tia-spear { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes tia-dust { 0% { opacity:.2; transform: translateY(0); } 50% { opacity:.5; transform: translateY(-3px); } 100% { opacity:.2; transform: translateY(0); } }

.scn-tiara-speech { background: linear-gradient(180deg, #2a1e14 0%, #3b2a1c 50%, #2a1e14 100%), radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%); }
.scn-tiara-speech .throne-room { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1c 0%, #4a3a24 50%, #3a2a1c 100%); animation: tis-room 15s ease-in-out infinite alternate; }
.scn-tiara-speech .throne { position:absolute; bottom:30%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a30 0%, #3a221a 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-tiara-speech .figure-king { position:absolute; bottom:40%; left:48%; width:20px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tis-king 6s ease-in-out infinite; }
.scn-tiara-speech .figure-kneeling { position:absolute; bottom:28%; left:56%; width:18px; height:40px; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tis-kneel 5s ease-in-out infinite alternate; }
.scn-tiara-speech .tiara { position:absolute; bottom:55%; left:48%; width:14px; height:10px; background: linear-gradient(180deg, #d0a040 0%, #b08030 100%); border-radius:0 0 50% 50% / 0 0 100% 100%; box-shadow: 0 0 12px 4px #d0a040; animation: tis-tiara 8s ease-in-out infinite; }
.scn-tiara-speech .light-ray { position:absolute; top:10%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, rgba(255,200,100,.2) 0%, transparent 100%); transform:rotate(10deg); animation: tis-ray 4s ease-in-out infinite alternate; }
@keyframes tis-room { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes tis-king { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes tis-kneel { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes tis-tiara { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(0) scale(1); } }
@keyframes tis-ray { 0% { opacity:.1; transform:rotate(8deg) scaleY(1); } 100% { opacity:.3; transform:rotate(12deg) scaleY(1.2); } }

/* Scene: tithe-for-artemis */
.scn-tithe-for-artemis {
  background: linear-gradient(180deg, #1f1410 0%, #140a08 100%), radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-tithe-for-artemis .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a12 0%, #0a0500 100%); animation: tfa-bg 20s ease-in-out infinite alternate;
}
.scn-tithe-for-artemis .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #1a0e08 0%, #2a1a10 100%); border-radius: 20% 20% 0 0;
}
.scn-tithe-for-artemis .table {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-tithe-for-artemis .lamp {
  position: absolute; bottom: 22%; left: 48%; width: 12px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(200,160,100,0.5);
}
.scn-tithe-for-artemis .flame {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 10px; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b06020 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px #ffa040; animation: tfa-flame 0.6s ease-in-out infinite alternate;
}
.scn-tithe-for-artemis .figure {
  position: absolute; bottom: 8%; right: 35%; width: 20px; height: 40px; background: linear-gradient(180deg, #0e0805 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tfa-figure 5s ease-in-out infinite;
}
.scn-tithe-for-artemis .coins {
  position: absolute; bottom: 12%; left: 36%; width: 30px; height: 6px; background: radial-gradient(circle at 30% 50%, #d4af37 0%, #8b6914 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.7); animation: tfa-coins 1.5s ease-in-out infinite alternate;
}
.scn-tithe-for-artemis .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%; background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, transparent 100%); animation: tfa-shadow 8s ease-in-out infinite alternate;
}
@keyframes tfa-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tfa-flame { 0% { transform: translateX(-50%) scaleY(0.9) rotate(-5deg); opacity: 0.8; } 50% { transform: translateX(-50%) scaleY(1.05) rotate(3deg); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.95) rotate(-2deg); opacity: 0.9; } }
@keyframes tfa-figure { 0% { transform: rotate(-2deg) translateY(0); } 30% { transform: rotate(1deg) translateY(-1px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(2deg) translateY(-1px); } }
@keyframes tfa-coins { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.05) rotate(5deg); } 100% { transform: scaleX(0.95) rotate(-5deg); } }
@keyframes tfa-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* Scene: scillus-sanctuary */
.scn-scillus-sanctuary {
  background: linear-gradient(180deg, #4a8ab5 0%, #c0d0a0 40%, #e8c060 100%), radial-gradient(ellipse at 70% 20%, #ffeda0 0%, transparent 60%);
}
.scn-scillus-sanctuary .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #7ab0d0 0%, #e0d0a0 100%); animation: ss-sky 15s ease-in-out infinite alternate;
}
.scn-scillus-sanctuary .sun {
  position: absolute; top: 15%; right: 25%; width: 40px; height: 40px; background: radial-gradient(circle, #ffe080 0%, #d09030 70%); border-radius: 50%; box-shadow: 0 0 60px 30px #ffd060; animation: ss-sun 12s ease-in-out infinite;
}
.scn-scillus-sanctuary .temple {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 60px; background: linear-gradient(180deg, #d4c8a0 0%, #a09470 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: ss-temple 20s ease-in-out infinite alternate;
}
.scn-scillus-sanctuary .river {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 8%; background: linear-gradient(90deg, #5690b0 0%, #80b0d0 50%, #5690b0 100%); border-radius: 40% 60% 40% 60%; box-shadow: inset 0 2px 10px rgba(0,0,0,0.1); animation: ss-river 8s linear infinite;
}
.scn-scillus-sanctuary .altar {
  position: absolute; bottom: 16%; left: 45%; width: 24px; height: 16px; background: linear-gradient(0deg, #7a6a50 0%, #b0a080 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ss-altar 6s ease-in-out infinite alternate;
}
.scn-scillus-sanctuary .figure {
  position: absolute; bottom: 12%; left: 50%; width: 16px; height: 32px; background: linear-gradient(180deg, #302820 0%, #100a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-figure 4s ease-in-out infinite;
}
.scn-scillus-sanctuary .offerings {
  position: absolute; bottom: 15%; left: 44%; width: 20px; height: 4px; background: radial-gradient(circle at 30% 50%, #d4a030 0%, #8b6010 100%); border-radius: 50%; animation: ss-offerings 2s ease-in-out infinite alternate;
}
.scn-scillus-sanctuary .cloud {
  position: absolute; top: 22%; left: 10%; width: 70px; height: 16px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(4px); animation: ss-cloud 40s linear infinite;
}
@keyframes ss-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes ss-sun { 0%, 100% { transform: scale(1); box-shadow: 0 0 40px 20px #ffd060; } 50% { transform: scale(1.05); box-shadow: 0 0 70px 30px #ffe080; } }
@keyframes ss-temple { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ss-river { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes ss-altar { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ss-figure { 0% { transform: rotate(-2deg) translateY(0); } 30% { transform: rotate(1deg) translateY(-1px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(2deg) translateY(-1px); } }
@keyframes ss-offerings { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.1); } 100% { opacity: 0.7; transform: scaleX(0.9); } }
@keyframes ss-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* Scene: mossynoecian-alliance */
.scn-mossynoecian-alliance {
  background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 40%, #4a5a6a 100%), radial-gradient(ellipse at 50% 60%, #2a3a4a 0%, transparent 80%);
}
.scn-mossynoecian-alliance .bg-overcast {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); animation: ma-bg 18s ease-in-out infinite alternate;
}
.scn-mossynoecian-alliance .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 30% 30% 0 0;
}
.scn-mossynoecian-alliance .greek-figures {
  position: absolute; bottom: 8%; left: 10%; width: 40px; height: 50px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 8px rgba(0,0,0,0.5); animation: ma-greek 6s ease-in-out infinite;
}
.scn-mossynoecian-alliance .mossyn-figures {
  position: absolute; bottom: 8%; right: 10%; width: 40px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 8px rgba(0,0,0,0.5); animation: ma-mossyn 6s ease-in-out infinite alternate;
}
.scn-mossynoecian-alliance .spear {
  position: absolute; bottom: 25%; left: 50%; width: 2px; height: 40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); transform-origin: bottom; border-radius: 2px; animation: ma-spear 2s ease-in-out infinite;
}
.scn-mossynoecian-alliance .flag {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 12px; background: #a0461a; border-radius: 0 40% 40% 0; transform-origin: left bottom; animation: ma-flag 1.5s ease-in-out infinite alternate;
}
.scn-mossynoecian-alliance .dust {
  position: absolute; bottom: 18%; left: 30%; width: 60px; height: 20px; background: radial-gradient(ellipse, rgba(160,140,100,0.3) 0%, transparent 100%); filter: blur(6px); animation: ma-dust 10s linear infinite;
}
.scn-mossynoecian-alliance .flash {
  position: absolute; inset: 0; background: radial-gradient(circle at 60% 30%, rgba(255,255,200,0.2) 0%, transparent 60%); animation: ma-flash 8s ease-in-out infinite;
}
@keyframes ma-bg { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes ma-greek { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ma-mossyn { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-2px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ma-spear { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes ma-flag { 0% { transform: skewY(-10deg); } 50% { transform: skewY(10deg); } 100% { transform: skewY(-5deg); } }
@keyframes ma-dust { 0% { transform: translateX(-20px); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateX(20px); opacity: 0; } }
@keyframes ma-flash { 0%, 90%, 100% { opacity: 0; } 10%, 15% { opacity: 0.6; } 30%, 35% { opacity: 0.3; } }

/* Scene: alliance-proposed */
.scn-alliance-proposed {
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, transparent 80%);
}
.scn-alliance-proposed .bg-storm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); animation: ap-bg 20s ease-in-out infinite alternate;
}
.scn-alliance-proposed .hand-left {
  position: absolute; bottom: 10%; left: 10%; width: 40px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 30% 40% 40% / 60% 40% 40% 50%; transform-origin: bottom right; animation: ap-hand-l 3s ease-in-out infinite;
}
.scn-alliance-proposed .hand-right {
  position: absolute; bottom: 10%; right: 10%; width: 40px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 50% 40% 40% / 40% 60% 50% 40%; transform-origin: bottom left; animation: ap-hand-r 3s ease-in-out infinite;
}
.scn-alliance-proposed .arm-left {
  position: absolute; bottom: 20%; left: 5%; width: 8px; height: 60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e08 100%); border-radius: 4px; transform-origin: bottom; animation: ap-arm-l 3s ease-in-out infinite;
}
.scn-alliance-proposed .arm-right {
  position: absolute; bottom: 20%; right: 5%; width: 8px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; transform-origin: bottom; animation: ap-arm-r 3s ease-in-out infinite;
}
.scn-alliance-proposed .spark {
  position: absolute; bottom: 22%; left: 48%; width: 4px; height: 4px; background: radial-gradient(circle, #ffd080 0%, #b06020 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffa040; animation: ap-spark 1.5s ease-in-out infinite alternate;
}
.scn-alliance-proposed .ground-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%); animation: ap-shadow 10s ease-in-out infinite alternate;
}
@keyframes ap-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes ap-hand-l { 0% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(10px, 5px) rotate(-10deg); } 60% { transform: translate(15px, 8px) rotate(-15deg); } 100% { transform: translate(20px, 10px) rotate(-18deg); } }
@keyframes ap-hand-r { 0% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(-10px, 5px) rotate(10deg); } 60% { transform: translate(-15px, 8px) rotate(15deg); } 100% { transform: translate(-20px, 10px) rotate(18deg); } }
@keyframes ap-arm-l { 0% { transform: rotate(0deg); } 30% { transform: rotate(-10deg); } 60% { transform: rotate(-15deg); } 100% { transform: rotate(-18deg); } }
@keyframes ap-arm-r { 0% { transform: rotate(0deg); } 30% { transform: rotate(10deg); } 60% { transform: rotate(15deg); } 100% { transform: rotate(18deg); } }
@keyframes ap-spark { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.6; } }
@keyframes ap-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-beating-justified {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%),
    radial-gradient(ellipse at 50% 100%, #0f3460 40%, transparent 70%);
}
.scn-beating-justified .bg { position:absolute; inset:0; background: rgba(0,0,0,0.3); animation: bj-bg 8s ease-in-out infinite alternate; }
.scn-beating-justified .wall { position:absolute; left:0; right:0; top:0; bottom:40%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 0 0 20% 20%; }
.scn-beating-justified .floor { position:absolute; left:0; right:0; bottom:0; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 0 0; }
.scn-beating-justified .lantern { position:absolute; top:20%; left:20%; width:20px; height:25px; background: radial-gradient(circle, #f0c080 0%, #b08040 70%); border-radius: 20%; box-shadow: 0 0 30px 10px #c08040; animation: bj-lantern 3s ease-in-out infinite alternate; }
.scn-beating-justified .figure-dig { position:absolute; bottom:30%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bj-dig 2s ease-in-out infinite; }
.scn-beating-justified .figure-prone { position:absolute; bottom:10%; left:30%; width:30px; height:15px; background: #2a2a3e; border-radius: 50% 50% 30% 30%; transform: rotate(30deg); animation: bj-prone 4s ease-in-out infinite; }
.scn-beating-justified .shadow { position:absolute; bottom:10%; left:40%; width:40px; height:10px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(3px); animation: bj-shadow 4s ease-in-out infinite; }
.scn-beating-justified .dust { position:absolute; bottom:10%; left:55%; width:6px; height:6px; background: rgba(200,180,160,0.3); border-radius: 50%; animation: bj-dust 5s linear infinite; }
@keyframes bj-bg { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes bj-lantern { 0% { box-shadow: 0 0 20px 8px #c08040; opacity:0.9 } 50% { box-shadow: 0 0 40px 15px #f0c080; opacity:1 } 100% { box-shadow: 0 0 25px 10px #c08040; opacity:0.8 } }
@keyframes bj-dig { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(10px) translateY(0) rotate(5deg) } 75% { transform: translateX(5px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-5deg) } }
@keyframes bj-prone { 0% { transform: rotate(30deg) scale(1) } 50% { transform: rotate(25deg) scale(1.02) } 100% { transform: rotate(30deg) scale(1) } }
@keyframes bj-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes bj-dust { 0% { transform: translate(0,0) scale(1); opacity:0.5 } 50% { transform: translate(10px,-10px) scale(0.5); opacity:0.2 } 100% { transform: translate(20px,-20px) scale(0); opacity:0 } }

.scn-poltroons-struck {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 30% 50%, #3a3a5e 0%, transparent 70%);
}
.scn-poltroons-struck .bg { position:absolute; inset:0; background: rgba(0,0,0,0.4); }
.scn-poltroons-struck .floor { position:absolute; left:0; right:0; bottom:0; height:35%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 0 0; }
.scn-poltroons-struck .wall-back { position:absolute; left:0; right:0; top:0; bottom:35%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-poltroons-struck .commander { position:absolute; bottom:30%; left:40%; width:25px; height:45px; background: linear-gradient(180deg, #3a3a5e 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-commander 1.5s ease-in-out infinite; }
.scn-poltroons-struck .poltroon { position:absolute; bottom:20%; left:55%; width:20px; height:30px; background: #2a2a3e; border-radius: 40% 40% 30% 30%; transform: rotate(10deg); animation: ps-poltroon 1.5s ease-in-out infinite; }
.scn-poltroons-struck .blow { position:absolute; bottom:50%; left:45%; width:8px; height:20px; background: rgba(200,100,50,0.8); border-radius: 20%; transform: rotate(-30deg); animation: ps-blow 0.3s ease-in-out infinite; }
.scn-poltroons-struck .shadow { position:absolute; bottom:15%; left:40%; width:50px; height:8px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px); animation: ps-shadow 1.5s ease-in-out infinite; }
@keyframes ps-commander { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-5px) rotate(-10deg) scaleY(1.1) } 50% { transform: translateX(-2px) rotate(-5deg) } 70% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ps-poltroon { 0% { transform: rotate(10deg) scale(1) } 30% { transform: rotate(20deg) scale(0.9) translateX(5px) } 50% { transform: rotate(15deg) scale(0.95) } 70% { transform: rotate(10deg) scale(1) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes ps-blow { 0% { opacity:0.8; transform: scale(1) rotate(-30deg) } 50% { opacity:1; transform: scale(1.3) rotate(-20deg) } 100% { opacity:0; transform: scale(0.5) rotate(-40deg) } }
@keyframes ps-shadow { 0% { transform: scaleX(1) } 30% { transform: scaleX(1.2) } 50% { transform: scaleX(1) } 70% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-paphlagonian-embassy {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #deb887 100%),
    radial-gradient(ellipse at 80% 20%, #f0e68c 0%, transparent 50%);
}
.scn-paphlagonian-embassy .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87CEEB 100%); animation: pe-sky 12s ease-in-out infinite alternate; }
.scn-paphlagonian-embassy .ground { position:absolute; left:0; right:0; bottom:0; height:40%; background: linear-gradient(180deg, #deb887 0%, #c4a882 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.2); }
.scn-paphlagonian-embassy .tent { position:absolute; bottom:30%; left:20%; width:100px; height:70px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 20% 20% 10% 10%; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: pe-tent 8s ease-in-out infinite; }
.scn-paphlagonian-embassy .horse { position:absolute; bottom:25%; left:60%; width:40px; height:30px; background: #8b4513; border-radius: 40% 40% 30% 30%; animation: pe-horse 6s ease-in-out infinite; }
.scn-paphlagonian-embassy .figure { position:absolute; bottom:30%; left:50%; width:15px; height:35px; background: #4682b4; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: pe-figure 5s ease-in-out infinite; }
.scn-paphlagonian-embassy .banner { position:absolute; bottom:55%; left:35%; width:10px; height:20px; background: #c8553d; border-radius: 10%; transform-origin: bottom; animation: pe-banner 4s ease-in-out infinite; }
@keyframes pe-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes pe-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pe-horse { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pe-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pe-banner { 0% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(5deg) scaleY(1.1) } 50% { transform: rotate(-5deg) scaleY(0.9) } 75% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(0deg) scaleY(1) } }

.scn-carpaea-dance {
  background: 
    linear-gradient(180deg, #2c0e0e 0%, #4a1a1a 40%, #6b2a2a 100%),
    radial-gradient(ellipse at 50% 80%, #ff8c00 0%, transparent 60%);
}
.scn-carpaea-dance .bg-night { position:absolute; inset:0; background: rgba(0,0,0,0.3); }
.scn-carpaea-dance .fire { position:absolute; bottom:20%; left:50%; width:40px; height:60px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #ff4500 50%, transparent 70%); border-radius: 50%; animation: cd-fire 1s ease-in-out infinite alternate; }
.scn-carpaea-dance .ground { position:absolute; left:0; right:0; bottom:0; height:25%; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); border-radius: 40% 60% 0 0; }
.scn-carpaea-dance .dancer-shield { position:absolute; bottom:30%; left:30%; width:20px; height:40px; background: #8b4513; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: cd-dancer1 0.8s ease-in-out infinite; }
.scn-carpaea-dance .dancer-lifter { position:absolute; bottom:28%; left:55%; width:18px; height:35px; background: #a0522d; border-radius: 40% 40% 30% 30%; animation: cd-dancer2 0.9s ease-in-out infinite; }
.scn-carpaea-dance .oxen { position:absolute; bottom:20%; left:15%; width:30px; height:20px; background: #6b4c3b; border-radius: 50% 50% 30% 30%; animation: cd-oxen 1.2s ease-in-out infinite; }
.scn-carpaea-dance .pipe-player { position:absolute; bottom:35%; left:70%; width:12px; height:30px; background: #7b5b3a; border-radius: 40% 40% 30% 30%; animation: cd-pipe 1.1s ease-in-out infinite; }
.scn-carpaea-dance .sparks { position:absolute; bottom:50%; left:45%; width:5px; height:5px; background: #ffa500; border-radius: 50%; box-shadow: 0 0 8px 2px #ffa500; animation: cd-sparks 0.6s linear infinite; }
@keyframes cd-fire { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.1) scaleX(0.9) } 100% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05) } }
@keyframes cd-dancer1 { 0% { transform: translateY(0) rotate(-10deg) } 25% { transform: translateY(-5px) rotate(0deg) } 50% { transform: translateY(0) rotate(10deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(-10deg) } }
@keyframes cd-dancer2 { 0% { transform: translateY(0) rotate(10deg) } 25% { transform: translateY(-5px) rotate(0deg) } 50% { transform: translateY(0) rotate(-10deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(10deg) } }
@keyframes cd-oxen { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes cd-pipe { 0% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.05) rotate(2deg) } 100% { transform: scaleY(1) rotate(0deg) } }
@keyframes cd-sparks { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-10px) scale(0.5); opacity:0.5 } 100% { transform: translateY(-20px) scale(0); opacity:0 } }

/* scene 1: night-attack-planned */
.scn-night-attack-planned {
  background: linear-gradient(180deg, #0d0d2b 0%, #18204a 40%, #2a3075 70%, #1b2460 100%),
              radial-gradient(ellipse at 50% 70%, #2a3a8a 0%, transparent 60%);
}
.scn-night-attack-planned .moon {
  position: absolute; top: 5%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8e0c0 0%, #c8c0a0 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200, 200, 160, 0.4), 0 0 60px 20px rgba(200, 200, 160, 0.1);
  animation: nap-moon 6s ease-in-out infinite alternate;
}
.scn-night-attack-planned .stars {
  position: absolute; inset: 0; background: radial-gradient(2px 2px at 20% 10%, #fff, transparent),
              radial-gradient(2px 2px at 70% 15%, #fff, transparent),
              radial-gradient(1px 1px at 40% 30%, #fff, transparent),
              radial-gradient(1px 1px at 85% 40%, #fff, transparent);
  opacity: 0.7; animation: nap-stars 12s ease-in-out infinite alternate;
}
.scn-night-attack-planned .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0d0d1f 100%);
  border-radius: 60% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: nap-hills 18s ease-in-out infinite alternate;
}
.scn-night-attack-planned .tent {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 0;
  border-left: 60px solid transparent; border-right: 60px solid transparent;
  border-bottom: 80px solid #2a1e12;
  filter: drop-shadow(0 8px 6px rgba(0,0,0,0.6));
  animation: nap-tent 9s ease-in-out infinite;
}
.scn-night-attack-planned .table {
  position: absolute; bottom: 32%; left: 50%; width: 50px; height: 12px;
  transform: translateX(-50%); background: #3a2a1a; border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-night-attack-planned .map {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%); background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: inset 0 1px 3px rgba(255,255,200,0.2);
  animation: nap-map 4s ease-in-out infinite alternate;
}
.scn-night-attack-planned .figure-a {
  position: absolute; bottom: 30%; left: 42%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1520 0%, #0d0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nap-fig-a 5s ease-in-out infinite;
}
.scn-night-attack-planned .figure-b {
  position: absolute; bottom: 30%; left: 56%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1520 0%, #0d0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nap-fig-b 5.5s ease-in-out infinite 1s;
}
.scn-night-attack-planned .spear {
  position: absolute; bottom: 30%; left: 44%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  transform: rotate(15deg); transform-origin: bottom center;
  animation: nap-spear 6s ease-in-out infinite;
}
@keyframes nap-moon { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.85; transform: scale(1); } }
@keyframes nap-stars { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes nap-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes nap-tent { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes nap-map { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes nap-fig-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes nap-fig-b { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nap-spear { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(15deg); } }

/* scene 2: xenophon-dismounts */
.scn-xenophon-dismounts {
  background: linear-gradient(180deg, #1a1a3a 0%, #3a3a6a 30%, #b08050 70%, #e0b070 100%),
              radial-gradient(ellipse at 50% 80%, #c09050 0%, transparent 60%);
}
.scn-xenophon-dismounts .dawn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #8a6040 60%, transparent 100%);
  animation: xd-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-dismounts .sun {
  position: absolute; top: 15%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #d09060 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,200,100,0.5);
  animation: xd-sun 20s linear infinite;
}
.scn-xenophon-dismounts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a4a2a 0%, #2a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
  animation: xd-ground 12s ease-in-out infinite alternate;
}
.scn-xenophon-dismounts .horse {
  position: absolute; bottom: 15%; left: 25%; width: 90px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 50% 20% 30% / 60% 50% 30% 40%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: xd-horse 4s ease-in-out infinite;
}
.scn-xenophon-dismounts .xenophon {
  position: absolute; bottom: 15%; left: 10%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xd-xeno 5s ease-in-out infinite;
}
.scn-xenophon-dismounts .runner-1 {
  position: absolute; bottom: 18%; left: 60%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg); transform-origin: bottom center;
  animation: xd-run 2s ease-in-out infinite;
}
.scn-xenophon-dismounts .runner-2 {
  position: absolute; bottom: 20%; left: 75%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg); transform-origin: bottom center;
  animation: xd-run 2.2s ease-in-out infinite 0.5s;
}
@keyframes xd-sky   { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes xd-sun   { 0% { transform: translateX(0) scale(0.9); opacity:0.6; } 50% { transform: translateX(20px) scale(1); opacity:1; } 100% { transform: translateX(0) scale(0.9); opacity:0.6; } }
@keyframes xd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes xd-horse  { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes xd-xeno  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(15px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes xd-run   { 0% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(15deg) translateY(-3px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }

/* scene 3: frostbite */
.scn-frostbite {
  background: linear-gradient(180deg, #8a9a9a 0%, #b8c8c8 30%, #d0dcdc 60%, #e8f0f0 100%),
              radial-gradient(ellipse at 50% 90%, #c8d8d8 0%, transparent 70%);
}
.scn-frostbite .snow-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a7a 0%, #b8c8c8 100%);
  animation: fbt-sky 20s ease-in-out infinite alternate;
}
.scn-frostbite .snow-drift {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d0dcdc 0%, #c0d0d0 100%);
  border-radius: 80% 20% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(100,100,100,0.3);
  animation: fbt-drift 15s ease-in-out infinite alternate;
}
.scn-frostbite .figure {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fbt-fig 3s ease-in-out infinite;
}
.scn-frostbite .breath {
  position: absolute; bottom: 40%; left: 38%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(220,230,230,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: fbt-breath 4s ease-in-out infinite;
}
.scn-frostbite .rock {
  position: absolute; bottom: 22%; left: 65%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: fbt-rock 8s ease-in-out infinite;
}
.scn-frostbite .flake-a {
  position: absolute; top: 5%; left: 20%; width: 6px; height: 6px;
  background: #fff; border-radius: 50%; opacity: 0.7;
  animation: fbt-snowfall 10s linear infinite;
}
.scn-frostbite .flake-b {
  position: absolute; top: 5%; left: 70%; width: 4px; height: 4px;
  background: #fff; border-radius: 50%; opacity: 0.5;
  animation: fbt-snowfall 12s linear infinite 3s;
}
@keyframes fbt-sky      { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes fbt-drift    { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes fbt-fig      { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-4px) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fbt-breath   { 0% { transform: scale(0.8); opacity:0.3; } 50% { transform: scale(1.2); opacity:0.8; } 100% { transform: scale(0.8); opacity:0.3; } }
@keyframes fbt-rock     { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fbt-snowfall { 0% { transform: translateY(0) translateX(0); opacity:0.7; } 50% { transform: translateY(40vh) translateX(10px); opacity:0.5; } 100% { transform: translateY(80vh) translateX(0); opacity:0; } }

/* scene 4: thynians-submit */
.scn-thynians-submit {
  background: linear-gradient(180deg, #3a3a3a 0%, #4a4a4a 30%, #5a5a4a 60%, #4a4a3a 100%),
              radial-gradient(ellipse at 50% 70%, #4a4a3a 0%, transparent 50%);
}
.scn-thynians-submit .overcast-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4a4a 0%, #6a6a5a 100%);
  animation: tys-sky 25s ease-in-out infinite alternate;
}
.scn-thynians-submit .mountains {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 30% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.4);
  animation: tys-mtn 20s ease-in-out infinite alternate;
}
.scn-thynians-submit .hut-a {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
  animation: tys-hut 10s ease-in-out infinite;
}
.scn-thynians-submit .hut-a::before {
  content: ''; position: absolute; top: -15px; left: 5px;
  width: 40px; height: 0;
  border-left: 20px solid transparent; border-right: 20px solid transparent;
  border-bottom: 18px solid #4a3a2a;
}
.scn-thynians-submit .hut-b {
  position: absolute; bottom: 22%; right: 25%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
  animation: tys-hut 12s ease-in-out infinite 2s;
}
.scn-thynians-submit .hut-b::before {
  content: ''; position: absolute; top: -18px; left: 8px;
  width: 44px; height: 0;
  border-left: 22px solid transparent; border-right: 22px solid transparent;
  border-bottom: 20px solid #4a3a2a;
}
.scn-thynians-submit .descender {
  position: absolute; bottom: 30%; left: 40%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tys-desc 6s ease-in-out infinite;
}
.scn-thynians-submit .guard {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tys-guard 5s ease-in-out infinite 1s;
}
.scn-thynians-submit .clouds {
  position: absolute; top: 10%; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, rgba(80,80,70,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: tys-cloud 40s linear infinite;
}
@keyframes tys-sky   { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes tys-mtn   { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tys-hut   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tys-desc  { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(4px) rotate(2deg); } 50% { transform: translateY(8px) rotate(0deg); } 75% { transform: translateY(4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tys-guard { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tys-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.scn-tissaphernes-claims-favour {
  background: linear-gradient(180deg, #c8a06e 0%, #f0d8a8 30%, #e8c88a 60%, #b8905a 100%), radial-gradient(ellipse at 70% 20%, #f5e0b0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-tissaphernes-claims-favour .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f5d6a0 0%, #e8c070 100%); animation: tf-sky 10s ease-in-out infinite alternate; }
.scn-tissaphernes-claims-favour .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffecb0 0%, #f5c840 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #f5c840; animation: tf-sun 8s ease-in-out infinite alternate; }
.scn-tissaphernes-claims-favour .tent { position:absolute; bottom:30%; left:20%; width:30%; height:40%; background: linear-gradient(180deg, #9a7a4a 0%, #6a5030 100%); clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%); animation: tf-tent 15s ease-in-out infinite; }
.scn-tissaphernes-claims-favour .figure { position:absolute; bottom:20%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tf-figure 4s ease-in-out infinite; }
.scn-tissaphernes-claims-favour .arm { position:absolute; bottom:45%; left:43%; width:40px; height:8px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; transform-origin: left center; transform: rotate(-30deg); animation: tf-arm 6s ease-in-out infinite; }
.scn-tissaphernes-claims-favour .shadow { position:absolute; bottom:18%; left:38%; width:80px; height:10px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: tf-shadow 4s ease-in-out infinite; }
@keyframes tf-sky { 0% { opacity:0.8; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:0.85; filter:brightness(0.95) } }
@keyframes tf-sun { 0% { transform: scale(1); box-shadow: 0 0 80px 30px #f5c840; } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px #f5c840; } 100% { transform: scale(0.95); box-shadow: 0 0 60px 20px #f5c840; } }
@keyframes tf-tent { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(-1deg); } }
@keyframes tf-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tf-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-35deg); } }
@keyframes tf-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.2); } 100% { opacity:0.3; transform: scaleX(0.9); } }

.scn-clearchus-replies {
  background: linear-gradient(180deg, #d4b078 0%, #f0d8a8 30%, #e0c080 60%, #b8905a 100%), radial-gradient(ellipse at 30% 20%, #f5e0b0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-clearchus-replies .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f5d6a0 0%, #e8c070 100%); animation: cr-sky 12s ease-in-out infinite alternate; }
.scn-clearchus-replies .sun { position:absolute; top:10%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #ffecb0 0%, #f5c840 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 70px 25px #f5c840; animation: cr-sun 9s ease-in-out infinite alternate; }
.scn-clearchus-replies .tent1 { position:absolute; bottom:30%; left:15%; width:40px; height:50px; background: linear-gradient(180deg, #9a7a4a 0%, #6a5030 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: cr-tent 20s ease-in-out infinite; }
.scn-clearchus-replies .tent2 { position:absolute; bottom:30%; left:40%; width:35px; height:45px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: cr-tent 20s ease-in-out infinite reverse; }
.scn-clearchus-replies .figure { position:absolute; bottom:20%; left:55%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-figure 4s ease-in-out infinite; }
.scn-clearchus-replies .spear { position:absolute; bottom:40%; left:58%; width:5px; height:70px; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); border-radius: 2px; transform-origin: bottom; transform: rotate(10deg); box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: cr-spear 6s ease-in-out infinite; }
.scn-clearchus-replies .shadow { position:absolute; bottom:18%; left:50%; width:100px; height:10px; background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(4px); animation: cr-shadow 4s ease-in-out infinite; }
@keyframes cr-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cr-sun { 0% { transform: scale(1); box-shadow: 0 0 70px 25px #f5c840; } 50% { transform: scale(1.03); box-shadow: 0 0 90px 35px #f5c840; } 100% { transform: scale(0.97); box-shadow: 0 0 50px 15px #f5c840; } }
@keyframes cr-tent { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cr-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes cr-spear { 0% { transform: rotate(10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(12deg); } }
@keyframes cr-shadow { 0% { opacity:0.25; transform: scaleX(1); } 50% { opacity:0.4; transform: scaleX(1.1); } 100% { opacity:0.25; transform: scaleX(0.95); } }

.scn-truce-proposed {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3020 40%, #3a2010 100%), radial-gradient(ellipse at 50% 50%, #6a4a30 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-truce-proposed .tent-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2010 0%, #5a3a20 50%, #3a2010 100%); opacity:0.6; animation: tp-wall 12s ease-in-out infinite alternate; }
.scn-truce-proposed .table { position:absolute; bottom:25%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: tp-table 20s ease-in-out infinite; }
.scn-truce-proposed .lamp { position:absolute; bottom:35%; left:48%; width:20px; height:30px; background: radial-gradient(circle at 50% 20%, #ffd060 0%, #c08040 60%, transparent 80%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 15px #ffd060, 0 0 80px 30px rgba(255,208,96,0.3); animation: tp-lamp 3s ease-in-out infinite alternate; }
.scn-truce-proposed .figure-left { position:absolute; bottom:20%; left:25%; width:28px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-figure 5s ease-in-out infinite; }
.scn-truce-proposed .figure-right { position:absolute; bottom:20%; right:25%; width:28px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); transform-origin: bottom center; animation: tp-figure 5s ease-in-out infinite 0.5s; }
.scn-truce-proposed .scroll { position:absolute; bottom:28%; left:45%; width:40px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: tp-scroll 8s ease-in-out infinite; }
@keyframes tp-wall { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.55; } }
@keyframes tp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes tp-lamp { 0% { box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 20px rgba(255,208,96,0.3); opacity:0.9; } 50% { box-shadow: 0 0 50px 20px #ffd060, 0 0 100px 40px rgba(255,208,96,0.4); opacity:1; } 100% { box-shadow: 0 0 35px 12px #ffd060, 0 0 70px 25px rgba(255,208,96,0.3); opacity:0.9; } }
@keyframes tp-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tp-scroll { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-6deg); } }

.scn-clearchus-argues-truce {
  background: linear-gradient(180deg, #1a0a00 0%, #3a2010 40%, #2a1005 100%), radial-gradient(ellipse at 50% 50%, #5a3a20 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-clearchus-argues-truce .tent-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1005 0%, #4a2a15 50%, #2a1005 100%); opacity:0.7; animation: ca-wall 10s ease-in-out infinite alternate; }
.scn-clearchus-argues-truce .table { position:absolute; bottom:25%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #4a2a15 0%, #2a1005 100%); border-radius: 15px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); animation: ca-table 15s ease-in-out infinite; }
.scn-clearchus-argues-truce .lamp { position:absolute; bottom:38%; left:50%; width:18px; height:28px; background: radial-gradient(circle at 50% 20%, #e8b050 0%, #a06830 60%, transparent 80%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #e8b050, 0 0 60px 20px rgba(232,176,80,0.3); animation: ca-lamp 2s ease-in-out infinite alternate; }
.scn-clearchus-argues-truce .figure-clearchus { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-figure-c 3s ease-in-out infinite; }
.scn-clearchus-argues-truce .figure-tissaphernes { position:absolute; bottom:20%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); transform-origin: bottom center; animation: ca-figure-t 4s ease-in-out infinite 0.5s; }
.scn-clearchus-argues-truce .map { position:absolute; bottom:28%; left:40%; width:80px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 5px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: ca-map 10s ease-in-out infinite; }
@keyframes ca-wall { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.65; } }
@keyframes ca-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ca-lamp { 0% { box-shadow: 0 0 20px 5px #e8b050, 0 0 40px 10px rgba(232,176,80,0.3); opacity:0.85; } 50% { box-shadow: 0 0 40px 15px #e8b050, 0 0 80px 30px rgba(232,176,80,0.4); opacity:1; } 100% { box-shadow: 0 0 25px 8px #e8b050, 0 0 50px 15px rgba(232,176,80,0.3); opacity:0.85; } }
@keyframes ca-figure-c { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ca-figure-t { 0% { transform: translateY(0) rotate(0deg) scaleX(-1); } 50% { transform: translateY(-2px) rotate(-1deg) scaleX(-1); } 100% { transform: translateY(0) rotate(1deg) scaleX(-1); } }
@keyframes ca-map { 0% { transform: rotate(-3deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-4deg); } }

.scn-snow-bound { background: linear-gradient(180deg, #a0b0c0 0%, #c0d0e0 100%), radial-gradient(ellipse at 50% 100%, #e0e8f0 0%, transparent 70%); }
.scn-snow-bound .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c0d0 0%, #d0e0f0 100%); animation: sb-sky 15s ease-in-out infinite alternate; }
.scn-snow-bound .snow { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #e8f0f8 0%, #f0f4f8 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; animation: sb-snow 20s ease-in-out infinite alternate; }
.scn-snow-bound .hills { position:absolute; bottom:40%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #a0b0c0 0%, #8090a0 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); animation: sb-hills 12s ease-in-out infinite; }
.scn-snow-bound .village { position:absolute; bottom:32%; left:20%; width:60px; height:40px; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: sb-village 8s ease-in-out infinite; }
.scn-snow-bound .figure { position:absolute; bottom:30%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #403030 0%, #201818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sb-figure 6s ease-in-out infinite; }
.scn-snow-bound .woodpile { position:absolute; bottom:33%; left:48%; width:15px; height:10px; background: #504030; border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sb-woodpile 10s ease-in-out infinite; }
.scn-snow-bound .smoke { position:absolute; bottom:70%; left:42%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(200,200,200,0.6) 0%, transparent 100%); filter: blur(8px); animation: sb-smoke 12s ease-in-out infinite; }
@keyframes sb-sky { 0% { opacity:0.8; background-position:0% 0%; } 50% { opacity:1; background-position:50% 100%; } 100% { opacity:0.85; background-position:100% 0%; } }
@keyframes sb-snow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes sb-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sb-village { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes sb-figure { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(0deg) translateX(5px); } 50% { transform: rotate(10deg) translateX(10px); } 75% { transform: rotate(0deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes sb-woodpile { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes sb-smoke { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-20px) scale(1.5); opacity:0.2; } 100% { transform: translateY(0) scale(1); opacity:0.5; } }

.scn-surprise-attack { background: linear-gradient(180deg, #ffc078 0%, #ffb347 40%, #ff8c00 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 80%); }
.scn-surprise-attack .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffd699 0%, #ffb86c 100%); animation: sa-sky 10s ease-in-out infinite alternate; }
.scn-surprise-attack .sun { position:absolute; top:10%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #ffe0a0 0%, #ffb86c 80%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,184,108,0.6); animation: sa-sun 20s ease-in-out infinite; }
.scn-surprise-attack .tent { position:absolute; bottom:35%; left:25%; width:80px; height:60px; background: linear-gradient(180deg, #c8a060 0%, #a07840 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: sa-tent 8s ease-in-out infinite; }
.scn-surprise-attack .tent2 { position:absolute; bottom:38%; left:50%; width:60px; height:50px; background: linear-gradient(180deg, #b09050 0%, #90703a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: sa-tent2 10s ease-in-out infinite; }
.scn-surprise-attack .horse { position:absolute; bottom:35%; left:70%; width:40px; height:30px; background: #806040; border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%; animation: sa-horse 6s linear infinite; }
.scn-surprise-attack .soldier { position:absolute; bottom:40%; left:60%; width:15px; height:35px; background: #303030; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sa-soldier 4s ease-in-out infinite; }
.scn-surprise-attack .spear { position:absolute; bottom:50%; left:62%; width:3px; height:30px; background: #605040; transform: rotate(30deg); animation: sa-spear 3s ease-in-out infinite; }
@keyframes sa-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sa-sun { 0% { transform: scale(0.9); box-shadow: 0 0 30px 10px; } 50% { transform: scale(1.1); box-shadow: 0 0 60px 25px; } 100% { transform: scale(0.95); box-shadow: 0 0 35px 15px; } }
@keyframes sa-tent { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes sa-tent2 { 0% { transform: scale(1); } 50% { transform: scale(1.05) rotate(1deg); } 100% { transform: scale(1); } }
@keyframes sa-horse { 0% { transform: translateX(-10px) scaleX(1); } 25% { transform: translateX(0) scaleX(1.1); } 50% { transform: translateX(10px) scaleX(1); } 75% { transform: translateX(20px) scaleX(1.1); } 100% { transform: translateX(30px) scaleX(1); } }
@keyframes sa-soldier { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(10px) rotate(5deg); } 75% { transform: translateX(15px) rotate(0deg); } 100% { transform: translateX(20px) rotate(-5deg); } }
@keyframes sa-spear { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(45deg) translateX(5px); } 100% { transform: rotate(20deg) translateX(0); } }

.scn-snow-blindness { background: linear-gradient(180deg, #b0b8c0 0%, #d0d8e0 100%), radial-gradient(ellipse at 50% 100%, #e0e4e8 0%, transparent 70%); }
.scn-snow-blindness .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0c8d0 0%, #e0e8f0 100%); animation: sl-sky 12s ease-in-out infinite alternate; }
.scn-snow-blindness .snow { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #f0f4f8 0%, #f8fbfc 100%); border-radius: 20% 80% 0 0 / 40% 90% 0 0; animation: sl-snow 15s ease-in-out infinite alternate; }
.scn-snow-blindness .trench { position:absolute; bottom:40%; left:20%; right:60%; height:10%; background: #a0a8b0; border-radius:0 0 50% 50%; box-shadow: inset 0 5px 10px rgba(0,0,0,0.3); animation: sl-trench 20s ease-in-out infinite; }
.scn-snow-blindness .figure-huddle { position:absolute; bottom:35%; left:30%; width:25px; height:30px; background: #404850; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sl-fig1 8s ease-in-out infinite; }
.scn-snow-blindness .figure-xen { position:absolute; bottom:38%; left:50%; width:20px; height:40px; background: #303840; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sl-fig2 6s ease-in-out infinite; }
.scn-snow-blindness .bag { position:absolute; bottom:40%; left:55%; width:12px; height:8px; background: #605040; border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: sl-bag 10s ease-in-out infinite; }
.scn-snow-blindness .snowflakes { position:absolute; inset:0; pointer-events:none; background: radial-gradient(2px 2px at 10% 20%, rgba(255,255,255,0.8) 0%, transparent 100%) repeat; background-size: 20px 20px; animation: sl-flakes 30s linear infinite; }
@keyframes sl-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sl-snow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes sl-trench { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateX(5px); } 100% { transform: scaleX(1); } }
@keyframes sl-fig1 { 0% { transform: scale(0.95) rotate(-3deg); } 50% { transform: scale(1) rotate(0deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes sl-fig2 { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(6px) rotate(5deg); } 75% { transform: translateX(3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes sl-bag { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } }
@keyframes sl-flakes { 0% { background-position: 0 0; } 100% { background-position: 20px 20px; } }

.scn-sick-men-revived { background: linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%), radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 80%); }
.scn-sick-men-revived .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a2e 0%, #16213e 100%); animation: rm-sky 25s ease-in-out infinite alternate; }
.scn-sick-men-revived .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 40% 60% 0 0 / 50% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.8); animation: rm-ground 18s ease-in-out infinite alternate; }
.scn-sick-men-revived .fire { position:absolute; bottom:40%; left:40%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #ff5722 40%, transparent 70%); filter: blur(4px); animation: rm-fire 3s ease-in-out infinite; }
.scn-sick-men-revived .figure-down { position:absolute; bottom:35%; left:30%; width:20px; height:40px; background: #202030; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(90deg); transform-origin: bottom center; animation: rm-down 10s ease-in-out infinite; }
.scn-sick-men-revived .figure-up { position:absolute; bottom:40%; left:50%; width:20px; height:40px; background: #303040; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rm-up 6s ease-in-out infinite; }
.scn-sick-men-revived .weapon { position:absolute; bottom:55%; left:52%; width:3px; height:25px; background: #505060; transform: rotate(-20deg); animation: rm-weapon 4s ease-in-out infinite; }
.scn-sick-men-revived .spark { position:absolute; width:5px; height:5px; background: #ffd700; border-radius:50%; animation: rm-spark 2s ease-in-out infinite; }
@keyframes rm-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rm-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes rm-fire { 0% { transform: scale(0.8); opacity:0.6; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.7; } }
@keyframes rm-down { 0% { transform: rotate(80deg) translateY(0); } 50% { transform: rotate(100deg) translateY(-2px); } 100% { transform: rotate(80deg) translateY(0); } }
@keyframes rm-up { 0% { transform: translateX(0) rotate(-10deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(10px) rotate(10deg); } 75% { transform: translateX(5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-10deg); } }
@keyframes rm-weapon { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes rm-spark { 0% { transform: translate(0,0) scale(0); opacity:0; } 50% { transform: translate(10px,-10px) scale(1); opacity:1; } 100% { transform: translate(20px,-20px) scale(0); opacity:0; } }

.scn-xenophon-rejoins {
  background: linear-gradient(180deg, #2b1e16 0%, #1c1410 60%, #0f0a08 60%, #0f0a08 100%), radial-gradient(ellipse at 50% 40%, rgba(200,160,100,0.3) 0%, transparent 60%);
}
.scn-xenophon-rejoins .wall    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3d2a20 0%, #2b1e16 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.4); }
.scn-xenophon-rejoins .floor   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a120e 0%, #0d0906 100%); animation: xr-floor 12s ease-in-out infinite; }
.scn-xenophon-rejoins .table   { position:absolute; bottom:28%; left:50%; width:70%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #54382a 0%, #2d1d14 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-xenophon-rejoins .lamp    { position:absolute; bottom:34%; left:50%; width:20px; height:24px; transform:translateX(-50%); background: radial-gradient(circle at 50% 40%, #ffd080 0%, #b08040 60%, #5a3010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px rgba(200,160,60,.5), 0 0 40px 12px rgba(200,160,60,.3); animation: xr-lamp 3s ease-in-out infinite alternate; }
.scn-xenophon-rejoins .xenophon { position:absolute; bottom:22%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #1a1310 0%, #0d0906 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: xr-figure 4s ease-in-out infinite; }
.scn-xenophon-rejoins .soldier-a{ position:absolute; bottom:20%; left:55%; width:20px; height:36px; background: linear-gradient(180deg, #1e1713 0%, #100b08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: xr-figure 4.5s ease-in-out infinite 0.5s; }
.scn-xenophon-rejoins .soldier-b{ position:absolute; bottom:20%; left:65%; width:18px; height:32px; background: linear-gradient(180deg, #221a16 0%, #120d0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: xr-figure 4s ease-in-out infinite 1s; }
.scn-xenophon-rejoins .scroll  { position:absolute; bottom:34%; left:58%; width:14px; height:6px; background: linear-gradient(180deg, #c8a87a 0%, #8c6e4a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 1px 3px rgba(0,0,0,.5); animation: xr-scroll 6s ease-in-out infinite; }
@keyframes xr-lamp   { 0% { box-shadow: 0 0 16px 4px rgba(200,160,60,.4); opacity:.9 } 50% { box-shadow: 0 0 28px 10px rgba(200,160,60,.7); opacity:1 } 100% { box-shadow: 0 0 20px 6px rgba(200,160,60,.5); opacity:.85 } }
@keyframes xr-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes xr-floor  { 0%,100% { opacity:.85 } 50% { opacity:.75 } }
@keyframes xr-scroll { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } }

.scn-xenophon-visits-seuthes {
  background: linear-gradient(180deg, #0a0d1a 0%, #0f1425 40%, #141c2a 55%, #1a2a1a 55%, #0f120f 100%), radial-gradient(ellipse at 30% 20%, rgba(180,200,255,0.08) 0%, transparent 70%);
}
.scn-xenophon-visits-seuthes .night-sky     { position:absolute; inset:0; background: linear-gradient(180deg, #0a0d1a 0%, #13162b 60%, #1a2a1a 60%, transparent 100%); pointer-events:none; }
.scn-xenophon-visits-seuthes .moon          { position:absolute; top:10%; left:20%; width:50px; height:50px; background: radial-gradient(circle at 40% 30%, #e8eef5 0%, #b0c4de 60%, #7a8aaa 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(180,200,255,.3), 0 0 60px 20px rgba(180,200,255,.1); animation: xvs-moon 12s ease-in-out infinite alternate; }
.scn-xenophon-visits-seuthes .distant-fire { position:absolute; top:35%; left:70%; width:8px; height:8px; background: radial-gradient(circle, #ffa040 0%, #c06020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,160,64,.5); animation: xvs-fire 2s ease-in-out infinite alternate; }
.scn-xenophon-visits-seuthes .hill-back     { position:absolute; bottom:25%; left:0; right:0; height:18%; background: linear-gradient(180deg, #1a2a2a 0%, #0f1a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: xvs-hill 20s ease-in-out infinite; }
.scn-xenophon-visits-seuthes .hill-front    { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1e301e 0%, #0e1a0e 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; animation: xvs-hill 25s ease-in-out infinite reverse; }
.scn-xenophon-visits-seuthes .path         { position:absolute; bottom:15%; left:10%; width:70%; height:4px; background: rgba(80,80,60,.15); border-radius: 50%; filter: blur(2px); animation: xvs-path 30s linear infinite; }
.scn-xenophon-visits-seuthes .figure-lead   { position:absolute; bottom:12%; left:10%; width:16px; height:34px; background: linear-gradient(180deg, #1a1a22 0%, #0a0a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: xvs-walk 4s ease-in-out infinite; }
.scn-xenophon-visits-seuthes .figure-follower{ position:absolute; bottom:12%; left:5%; width:14px; height:30px; background: linear-gradient(180deg, #1e1e26 0%, #0e0e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: xvs-walk 4.2s ease-in-out infinite 0.6s; }
@keyframes xvs-moon  { 0% { box-shadow: 0 0 25px 6px rgba(180,200,255,.2); transform: scale(1) } 50% { box-shadow: 0 0 35px 12px rgba(180,200,255,.35); transform: scale(1.02) } 100% { box-shadow: 0 0 28px 8px rgba(180,200,255,.25); transform: scale(1) } }
@keyframes xvs-fire  { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.8; transform: scale(1) } }
@keyframes xvs-hill  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes xvs-walk  { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }

.scn-seuthes-tower {
  background: linear-gradient(180deg, #0a1128 0%, #1b2340 50%, #2a3050 100%), radial-gradient(ellipse at 70% 80%, rgba(100,140,200,0.2) 0%, transparent 50%);
}
.scn-seuthes-tower .moonlit-sky { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 20%, rgba(160,190,240,0.1) 0%, transparent 60%); pointer-events:none; }
.scn-seuthes-tower .moon        { position:absolute; top:8%; left:65%; width:45px; height:45px; background: radial-gradient(circle at 40% 30%, #dce8f5 0%, #9bb4d4 60%, #6a7a9a 100%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(160,190,240,.3), 0 0 80px 24px rgba(160,190,240,.1); animation: st-moon 15s ease-in-out infinite alternate; }
.scn-seuthes-tower .tower       { position:absolute; bottom:20%; left:30%; width:30%; height:50%; background: linear-gradient(180deg, #2a3050 0%, #151a30 50%, #0a0e1a 100%); clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); box-shadow: -8px 0 12px rgba(0,0,0,.5); animation: st-tower 8s ease-in-out infinite; }
.scn-seuthes-tower .flag        { position:absolute; bottom:66%; left:38%; width:20px; height:12px; background: linear-gradient(90deg, #5e1a1d 0%, #8c2a2e 50%, #5e1a1d 100%); border-radius: 0 50% 50% 0 / 0 100% 100% 0; transform-origin: left center; animation: st-flag 4s ease-in-out infinite; }
.scn-seuthes-tower .guard-horse  { position:absolute; bottom:18%; left:50%; width:40px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom center; animation: st-horse 5s ease-in-out infinite; }
.scn-seuthes-tower .captive     { position:absolute; bottom:20%; left:43%; width:18px; height:36px; background: linear-gradient(180deg, #22202e 0%, #12101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: st-captive 6s ease-in-out infinite; }
.scn-seuthes-tower .ground      { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a22 0%, #0d0d12 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
@keyframes st-moon    { 0% { box-shadow: 0 0 30px 8px rgba(160,190,240,.2); transform: scale(1) } 50% { box-shadow: 0 0 50px 16px rgba(160,190,240,.4); transform: scale(1.03) } 100% { box-shadow: 0 0 35px 10px rgba(160,190,240,.25); transform: scale(1) } }
@keyframes st-tower   { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes st-flag    { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.2) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes st-horse   { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes st-captive { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }

.scn-terms-offered {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2515 30%, #5c3a22 60%, #a06030 100%), radial-gradient(ellipse at 50% 90%, rgba(255,180,80,0.25) 0%, transparent 60%);
}
.scn-terms-offered .camp-bg    { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(200,120,40,0.1) 0%, transparent 60%); pointer-events:none; }
.scn-terms-offered .fire-glow  { position:absolute; bottom:5%; left:50%; width:60%; height:40%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, rgba(255,180,80,0.3) 0%, rgba(200,120,40,0.1) 40%, transparent 70%); animation: to-fire 2s ease-in-out infinite alternate; }
.scn-terms-offered .fire-core  { position:absolute; bottom:10%; left:50%; width:30px; height:35px; transform:translateX(-50%); background: radial-gradient(circle at 50% 40%, #ffd080 0%, #ffa040 40%, #c06020 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,160,64,.6), 0 0 60px 20px rgba(255,160,64,.3); animation: to-core 3s ease-in-out infinite; }
.scn-terms-offered .tent       { position:absolute; bottom:25%; right:20%; width:30%; height:35%; background: linear-gradient(180deg, #5c3a22 0%, #2a1a0e 100%); clip-path: polygon(20% 100%, 80% 100%, 100% 0, 0 0); animation: to-tent 8s ease-in-out infinite; }
.scn-terms-offered .seuthes    { position:absolute; bottom:18%; left:35%; width:24px; height:38px; background: linear-gradient(180deg, #3a2515 0%, #1e120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: to-seuthes 4s ease-in-out infinite; }
.scn-terms-offered .xenophon   { position:absolute; bottom:20%; left:50%; width:20px; height:36px; background: linear-gradient(180deg, #2a1a0e 0%, #160c06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: to-xeno 4.5s ease-in-out infinite 0.5s; }
.scn-terms-offered .spear      { position:absolute; bottom:28%; left:48%; width:3px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2515 100%); border-radius: 1px; transform-origin: bottom center; animation: to-spear 6s ease-in-out infinite; }
@keyframes to-fire  { 0% { opacity:.7; transform: translateX(-50%) scaleX(1) } 50% { opacity:1; transform: translateX(-50%) scaleX(1.05) } 100% { opacity:.8; transform: translateX(-50%) scaleX(1) } }
@keyframes to-core  { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 6px rgba(255,160,64,.5) } 50% { transform: translateX(-50%) scale(1.15); box-shadow: 0 0 40px 14px rgba(255,160,64,.7) } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 25px 8px rgba(255,160,64,.5) } }
@keyframes to-tent  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes to-seuthes { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes to-xeno   { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes to-spear  { 0% { transform: rotate(-4deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-4deg) } }

/* Scene: cyrus-charges-king (tense, sunlit) */
.scn-cyrus-charges-king { background: linear-gradient(180deg, #6ab0e6 0%, #f9d976 40%, #e67e22 100%), radial-gradient(ellipse at 20% 100%, #f39c12 0%, transparent 50%); }
.scn-cyrus-charges-king .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6ab0e6 0%, transparent 100%); animation: ch-sky 8s ease-in-out infinite alternate; }
.scn-cyrus-charges-king .sun { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #fff 0%, #f9d976 40%, transparent 70%); border-radius:50%; animation: ch-sun 6s ease-in-out infinite alternate; }
.scn-cyrus-charges-king .dust-bank { position:absolute; bottom:20%; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(210,180,140,0.6) 0%, transparent 70%); filter: blur(8px); animation: ch-dust 10s ease-in-out infinite alternate; }
.scn-cyrus-charges-king .horseman-fore { position:absolute; bottom:22%; left:20%; width:40px; height:50px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ch-charge 1.5s ease-in-out infinite; }
.scn-cyrus-charges-king .horseman-mid { position:absolute; bottom:25%; right:25%; width:30px; height:40px; background: linear-gradient(180deg, #34495e 0%, #2c3e50 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ch-charge-rev 1.8s ease-in-out infinite; }
.scn-cyrus-charges-king .spear-wall { position:absolute; bottom:28%; right:5%; width:100px; height:60px; background: repeating-linear-gradient(90deg, #7f8c8d 0px, #7f8c8d 4px, transparent 4px, transparent 20px); mask-image: linear-gradient(0deg, transparent 0%, #000 40%, #000 100%); animation: ch-spear 2s ease-in-out infinite; }
.scn-cyrus-charges-king .shadow-king { position:absolute; bottom:28%; right:10%; width:60px; height:80px; background: linear-gradient(135deg, #1a252f 0%, #000 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; animation: ch-king 2s ease-in-out infinite alternate; }
@keyframes ch-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ch-sun { 0% { transform: scale(0.95); box-shadow: 0 0 20px 5px #f9d976; } 50% { transform: scale(1.05); box-shadow: 0 0 40px 15px #f9d976; } 100% { transform: scale(0.98); box-shadow: 0 0 25px 8px #f9d976; } }
@keyframes ch-dust { 0% { transform: translateX(0); opacity:0.6; } 50% { transform: translateX(20px); opacity:0.9; } 100% { transform: translateX(-10px); opacity:0.5; } }
@keyframes ch-charge { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(15px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ch-charge-rev { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-12px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ch-spear { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ch-king { 0% { transform: scale(1); } 100% { transform: scale(1.05); } }

/* Scene: cyrus-falls (dark, sunlit) */
.scn-cyrus-falls { background: linear-gradient(180deg, #f5d76e 0%, #e67e22 30%, #1a1a2e 100%), radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 50%); }
.scn-cyrus-falls .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f5d76e 0%, #d35400 100%); animation: cf-sky 5s ease-in-out infinite alternate; }
.scn-cyrus-falls .sun-glare { position:absolute; top:5%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #fff 0%, #f5d76e 30%, transparent 60%); border-radius:50%; transform: translateX(-50%); animation: cf-glare 4s ease-in-out infinite alternate; }
.scn-cyrus-falls .figure-cyrus { position:absolute; bottom:20%; left:40%; width:50px; height:100px; background: linear-gradient(180deg, #2c3e50 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: cf-fall 2s ease-in-out infinite; }
.scn-cyrus-falls .javelin { position:absolute; bottom:40%; left:48%; width:80px; height:4px; background: linear-gradient(90deg, transparent 0%, #7f8c8d 20%, #bdc3c7 100%); transform: rotate(-45deg); transform-origin: left center; animation: cf-javelin 2s ease-in-out infinite; }
.scn-cyrus-falls .companion { position:absolute; bottom:15%; left:50%; width:45px; height:80px; background: linear-gradient(180deg, #34495e 0%, #1a252f 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-10deg); transform-origin: bottom center; animation: cf-companion 2.5s ease-in-out infinite; }
.scn-cyrus-falls .shadow-fall { position:absolute; inset:50% 0 0 0; background: linear-gradient(0deg, #0a0a15 0%, transparent 100%); animation: cf-shadow 6s ease-in-out infinite alternate; }
.scn-cyrus-falls .blood-drop { position:absolute; bottom:35%; left:44%; width:4px; height:8px; background: radial-gradient(circle, #a0461a 0%, #702243 100%); border-radius: 50%; animation: cf-blood 1.5s ease-in-out infinite; }
@keyframes cf-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes cf-glare { 0% { transform: translateX(-50%) scale(0.95); opacity:0.8; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(0.98); opacity:0.7; } }
@keyframes cf-fall { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-10px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes cf-javelin { 0% { transform: rotate(-45deg); } 50% { transform: rotate(-40deg); } 100% { transform: rotate(-45deg); } }
@keyframes cf-companion { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(-5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes cf-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes cf-blood { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(10px); opacity:1; } 100% { transform: translateY(0); opacity:0.6; } }

/* Scene: artapates-death (dark, sunlit) */
.scn-artapates-death { background: linear-gradient(180deg, #e67e22 0%, #a0461a 30%, #1a1a2e 100%), radial-gradient(ellipse at 50% 0%, #f5d76e 0%, transparent 60%); }
.scn-artapates-death .sky-sundown { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f5d76e 0%, #e67e22 100%); animation: ad-sky 8s ease-in-out infinite alternate; }
.scn-artapates-death .sun-set { position:absolute; top:15%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #fff 0%, #f5d76e 30%, #e67e22 60%, transparent 80%); border-radius:50%; transform: translateX(-50%); animation: ad-sun 10s ease-in-out infinite alternate; }
.scn-artapates-death .figure-cyrus-sit { position:absolute; bottom:20%; left:35%; width:55px; height:90px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a15 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); transform-origin: bottom center; animation: ad-sit 4s ease-in-out infinite; }
.scn-artapates-death .figure-artapates { position:absolute; bottom:20%; left:42%; width:50px; height:100px; background: linear-gradient(180deg, #2c3e50 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-15deg) translateX(-10px); transform-origin: bottom center; animation: ad-embrace 4s ease-in-out infinite; }
.scn-artapates-death .scimitar { position:absolute; bottom:30%; left:50%; width:60px; height:6px; background: linear-gradient(90deg, #bdc3c7 0%, #ecf0f1 50%, #bdc3c7 100%); transform: rotate(20deg); transform-origin: right center; border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%; animation: ad-sword 2s ease-in-out infinite; }
.scn-artapates-death .loyal-shadow { position:absolute; inset:40% 0 0 0; background: linear-gradient(0deg, #0a0a15 0%, rgba(26,26,46,0.8) 50%, transparent 100%); animation: ad-shadow 6s ease-in-out infinite alternate; }
@keyframes ad-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ad-sun { 0% { transform: translateX(-50%) scale(0.95); opacity:0.9; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(0.98); opacity:0.8; } }
@keyframes ad-sit { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-5px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes ad-embrace { 0% { transform: rotate(-15deg) translateX(-10px); } 50% { transform: rotate(-12deg) translateX(-15px); } 100% { transform: rotate(-15deg) translateX(-10px); } }
@keyframes ad-sword { 0% { transform: rotate(20deg); opacity:0.8; } 50% { transform: rotate(15deg); opacity:1; } 100% { transform: rotate(20deg); opacity:0.9; } }
@keyframes ad-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

/* Scene: character-of-cyrus (warm, overcast) */
.scn-character-of-cyrus { background: linear-gradient(180deg, #d5c4a1 0%, #a69c84 50%, #8a7f6e 100%), radial-gradient(ellipse at 50% 50%, #e8e0d0 0%, transparent 80%); }
.scn-character-of-cyrus .chamber-wall { position:absolute; inset:15% 10%; background: linear-gradient(180deg, #c4b69c 0%, #a69c84 100%); border-radius: 10%; box-shadow: inset 0 0 50px rgba(0,0,0,0.1); animation: cc-wall 10s ease-in-out infinite alternate; }
.scn-character-of-cyrus .window-light { position:absolute; top:5%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(255,255,240,0.4) 0%, transparent 70%); animation: cc-light 6s ease-in-out infinite alternate; }
.scn-character-of-cyrus .pillar-left { position:absolute; top:15%; left:15%; width:8%; height:70%; background: linear-gradient(90deg, #b0a090 0%, #d5c4a1 30%, #b0a090 100%); border-radius: 10% 10% 5% 5%; animation: cc-pillar 8s ease-in-out infinite alternate; }
.scn-character-of-cyrus .pillar-right { position:absolute; top:15%; right:15%; width:8%; height:70%; background: linear-gradient(90deg, #b0a090 0%, #d5c4a1 30%, #b0a090 100%); border-radius: 10% 10% 5% 5%; animation: cc-pillar 8s ease-in-out infinite alternate-reverse; }
.scn-character-of-cyrus .figure-young { position:absolute; bottom:20%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #8a7f6e 0%, #5a5040 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cc-breathe 4s ease-in-out infinite; }
.scn-character-of-cyrus .figure-tutor { position:absolute; bottom:25%; left:55%; width:35px; height:70px; background: linear-gradient(180deg, #7a6f5e 0%, #4a4030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cc-breathe 4.5s ease-in-out infinite; }
.scn-character-of-cyrus .scroll-table { position:absolute; bottom:18%; left:42%; width:40px; height:8px; background: linear-gradient(90deg, #d5c4a1 0%, #e8e0d0 100%); border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%; animation: cc-scroll 3s ease-in-out infinite; }
.scn-character-of-cyrus .ambient-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(255,255,240,0.3) 0%, transparent 60%); animation: cc-ambient 8s ease-in-out infinite alternate; }
@keyframes cc-wall { 0% { box-shadow: inset 0 0 50px rgba(0,0,0,0.1); } 50% { box-shadow: inset 0 0 70px rgba(0,0,0,0.15); } 100% { box-shadow: inset 0 0 50px rgba(0,0,0,0.1); } }
@keyframes cc-light { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes cc-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cc-breathe { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cc-scroll { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes cc-ambient { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }

.scn-xenophon-recounts {
  background:
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1e1610 0%, #2b1f15 40%, #2a1e14 100%);
}
.scn-xenophon-recounts .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2b1c12 0%, #3a261a 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-xenophon-recounts .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1f160f 0%, #2a1d12 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-xenophon-recounts .lamp-base {
  position: absolute;
  bottom: 32%;
  left: 28%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #6b5030 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.7);
  animation: xeno-lamp-sway 4s ease-in-out infinite;
}
.scn-xenophon-recounts .lamp-glow {
  position: absolute;
  bottom: 34%;
  left: 26%;
  width: 24px;
  height: 24px;
  background: radial-gradient(circle, #f0a050 0%, #d08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200, 100, 40, 0.6), 0 0 60px 20px rgba(180, 80, 30, 0.3);
  animation: xeno-lamp-flicker 0.6s ease-in-out infinite alternate;
}
.scn-xenophon-recounts .table {
  position: absolute;
  bottom: 26%;
  left: 24%;
  width: 70px;
  height: 40px;
  background: linear-gradient(180deg, #4a3520 0%, #2e1f12 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  transform: perspective(200px) rotateX(8deg);
  animation: xeno-table-shake 8s ease-in-out infinite;
}
.scn-xenophon-recounts .cup {
  position: absolute;
  bottom: 34%;
  left: 28%;
  width: 12px;
  height: 14px;
  background: linear-gradient(180deg, #5e4030 0%, #3b281a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: xeno-cup-tremble 3s ease-in-out infinite alternate;
}
.scn-xenophon-recounts .figure {
  position: absolute;
  bottom: 22%;
  right: 30%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0f0b08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.9);
  transform-origin: bottom center;
  animation: xeno-figure-breathe 3s ease-in-out infinite;
}
.scn-xenophon-recounts .shadow {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 60px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  transform: skewX(-10deg);
  animation: xeno-shadow-move 6s ease-in-out infinite alternate;
}
@keyframes xeno-lamp-sway {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(1px); }
}
@keyframes xeno-lamp-flicker {
  0% { opacity: 0.6; transform: scale(0.95); box-shadow: 0 0 20px 5px rgba(200,100,40,0.4), 0 0 40px 10px rgba(180,80,30,0.2); }
  30% { opacity: 0.9; transform: scale(1.05); box-shadow: 0 0 40px 15px rgba(220,120,50,0.7), 0 0 80px 30px rgba(200,100,40,0.4); }
  60% { opacity: 0.7; transform: scale(0.98); box-shadow: 0 0 25px 8px rgba(200,100,40,0.5), 0 0 50px 15px rgba(180,80,30,0.3); }
  100% { opacity: 0.8; transform: scale(1.02); box-shadow: 0 0 30px 10px rgba(210,110,45,0.6), 0 0 60px 20px rgba(190,90,35,0.3); }
}
@keyframes xeno-table-shake {
  0% { transform: perspective(200px) rotateX(8deg) translateX(0); }
  25% { transform: perspective(200px) rotateX(8deg) translateX(-1px); }
  50% { transform: perspective(200px) rotateX(9deg) translateX(1px); }
  75% { transform: perspective(200px) rotateX(7deg) translateX(-0.5px); }
  100% { transform: perspective(200px) rotateX(8deg) translateX(0); }
}
@keyframes xeno-cup-tremble {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(1px) translateY(-0.5px) rotate(1deg); }
  100% { transform: translateX(-1px) translateY(0.5px) rotate(-1deg); }
}
@keyframes xeno-figure-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes xeno-shadow-move {
  0% { transform: skewX(-10deg) translateX(0); opacity: 0.4; }
  100% { transform: skewX(-15deg) translateX(5px); opacity: 0.7; }
}

/* colchians-routed – dawn tense */
.scn-colchians-routed {
  background:
    linear-gradient(180deg, #4a536b 0%, #7c6a4a 40%, #c88a4a 70%, #f0b070 100%),
    radial-gradient(ellipse at 50% 100%, #ff7e47 0%, transparent 70%);
}
.scn-colchians-routed .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2c3e50 0%, #4a536b 40%, transparent 100%);
  animation: cr-sky 14s ease-in-out infinite alternate;
}
.scn-colchians-routed .horizon-glow {
  position: absolute; bottom: 55%; left: 35%; width: 30%; height: 12%;
  background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #ff9a4a 50%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: cr-glow 6s ease-in-out infinite alternate;
}
.scn-colchians-routed .mountains {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2c221a 100%);
  border-radius: 30% 50% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: cr-mountains 20s ease-in-out infinite alternate;
}
.scn-colchians-routed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 0 0 30% 50% / 0 0 40% 60%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: cr-ground 30s ease-in-out infinite alternate;
}
.scn-colchians-routed .troop-left,
.scn-colchians-routed .troop-right {
  position: absolute; bottom: 18%; width: 22%; height: 30%;
  background:
    linear-gradient(180deg, #5c4a3a 0%, #3a2e22 100%),
    radial-gradient(circle at 50% 30%, #8a6a4a 0%, transparent 70%);
  border-radius: 60% 40% 30% 50% / 50% 60% 40% 50%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4), 2px 4px 6px rgba(0,0,0,.5);
  animation: cr-troop 8s ease-in-out infinite alternate;
}
.scn-colchians-routed .troop-left {
  left: 15%;
}
.scn-colchians-routed .troop-right {
  right: 15%;
  animation-delay: 1.5s;
}
.scn-colchians-routed .spear-line {
  position: absolute; bottom: 15%; left: 50%; width: 3px; height: 50%;
  transform: translateX(-50%);
  background: repeating-linear-gradient(90deg,
    transparent 0px, transparent 2px,
    #a0845c 2px, #a0845c 3px,
    #7a6040 3px, #7a6040 4px,
    transparent 4px, transparent 6px
  );
  background-size: 6px 100%;
  animation: cr-spears 2s linear infinite;
}
.scn-colchians-routed .flag {
  position: absolute; bottom: 42%; left: 50%; width: 12px; height: 18px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(135deg, #a0461a 0%, #c8553d 50%, #a0461a 100%);
  border-radius: 2px 4px 4px 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: cr-flag 3s ease-in-out infinite alternate;
}

@keyframes cr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes cr-glow {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes cr-mountains {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes cr-ground {
  0% { background-position: 0 0; }
  50% { background-position: 10px 0; }
  100% { background-position: 0 0; }
}
@keyframes cr-troop {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(1px); }
}
@keyframes cr-spears {
  0% { background-position: 0 0; }
  100% { background-position: 0 10px; }
}
@keyframes cr-flag {
  0% { transform: translateX(-50%) rotate(-8deg); }
  50% { transform: translateX(-50%) rotate(8deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}

/* xenophon-advises-hostages – dim interior tense */
.scn-xenophon-advises-hostages {
  background:
    linear-gradient(180deg, #1a1410 0%, #2c1f14 30%, #3c2a1a 60%, #1a1410 100%),
    radial-gradient(ellipse at 50% 30%, #6b4a2a 0%, transparent 70%);
}
.scn-xenophon-advises-hostages .bg-mid {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3c2a1a 0%, #2c1f14 50%, transparent 100%);
  animation: xh-bg-mid 25s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 80% 20%, #1a1410 0%, #0d0a08 60%, transparent 100%);
  animation: xh-bg-deep 30s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .fire {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #ffb347 0%, #c86a2a 40%, #5e2a10 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 10px #ff8c42, 0 0 80px 20px rgba(255,140,66,0.4);
  animation: xh-fire 2s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .figure-xenophon {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2c1f14 0%, #1a1410 100%);
  border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: xh-xenophon 6s ease-in-out infinite;
}
.scn-xenophon-advises-hostages .figure-seuthes {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #221810 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
  animation: xh-seuthes 8s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .figure-thynian {
  position: absolute; bottom: 14%; left: 65%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2c221a 0%, #1a1410 100%);
  border-radius: 50% 40% 20% 30% / 60% 50% 30% 40%;
  transform: rotate(15deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: xh-thynian 5s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .whisper {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 6px;
  background: rgba(255,200,150,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: xh-whisper 2.5s ease-in-out infinite;
}
.scn-xenophon-advises-hostages .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: xh-shadow 20s ease-in-out infinite alternate;
}

@keyframes xh-bg-mid {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes xh-bg-deep {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.02); }
  100% { opacity: 0.6; transform: scale(0.98); }
}
@keyframes xh-fire {
  0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; box-shadow: 0 0 30px 8px #ff8c42; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; box-shadow: 0 0 50px 12px #ffae5a; }
  100% { transform: translateX(-50%) scale(0.98); opacity: 0.9; box-shadow: 0 0 35px 10px #ff8c42; }
}
@keyframes xh-xenophon {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-1px); }
  50% { transform: rotate(2deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes xh-seuthes {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes xh-thynian {
  0% { transform: rotate(15deg) translateY(0); opacity: 0.8; }
  50% { transform: rotate(10deg) translateY(-3px); opacity: 1; }
  100% { transform: rotate(15deg) translateY(0); opacity: 0.9; }
}
@keyframes xh-whisper {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  50% { transform: translateX(-4px) translateY(-2px); opacity: 0.6; }
  100% { transform: translateX(0) translateY(0); opacity: 0; }
}
@keyframes xh-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

.scn-army-grows-restless {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%), radial-gradient(ellipse at 50% 80%, #4a2a10 0%, transparent 70%);
}
.scn-army-grows-restless .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  animation: agr-pulse 10s ease-in-out infinite;
}
.scn-army-grows-restless .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
}
.scn-army-grows-restless .wall {
  position: absolute; top: 10%; bottom: 15%; left: 0; right: 0;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2010 20%, #2a1a0a 80%, #1a0a00 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-army-grows-restless .fire-light {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 80px; transform: translateX(-50%);
  background: radial-gradient(circle, #e08030 0%, #b05020 30%, #8a3010 60%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: agr-flicker 3s ease-in-out infinite;
}
.scn-army-grows-restless .figure-center {
  position: absolute; bottom: 15%; left: 50%; width: 24px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: agr-sway 4s ease-in-out infinite;
}
.scn-army-grows-restless .figures-left {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: agr-restless-left 6s ease-in-out infinite;
}
.scn-army-grows-restless .figures-right {
  position: absolute; bottom: 15%; right: 30%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: agr-restless-right 6s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-army-grows-restless .spear {
  position: absolute; bottom: 30%; left: 48%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius: 0 0 2px 2px;
  animation: agr-spear 5s ease-in-out infinite;
}

@keyframes agr-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes agr-flicker {
  0% { opacity: 0.5; transform: scale(1); }
  25% { opacity: 1; transform: scale(1.1); }
  50% { opacity: 0.6; transform: scale(0.9); }
  75% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes agr-sway {
  0% { transform: translateX(-50%) rotate(-2deg); }
  20% { transform: translateX(-50%) rotate(1deg); }
  40% { transform: translateX(-50%) rotate(-1deg); }
  60% { transform: translateX(-50%) rotate(2deg); }
  80% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes agr-restless-left {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(3deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  75% { transform: translateX(4px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes agr-restless-right {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-3deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  75% { transform: translateX(-4px) rotate(-4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes agr-spear {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

.scn-arcadian-jumps-up {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%), radial-gradient(ellipse at 50% 70%, #4a2a10 0%, transparent 60%);
}
.scn-arcadian-jumps-up .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2010 0%, #1a0a00 80%);
  animation: aju-pulse 12s ease-in-out infinite;
}
.scn-arcadian-jumps-up .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 0 0 / 8% 8% 0 0;
}
.scn-arcadian-jumps-up .wall {
  position: absolute; top: 5%; bottom: 12%; left: 0; right: 0;
  background: linear-gradient(90deg, #1a0a00 0%, #3a2010 30%, #1a0a00 70%, #0a0500 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
}
.scn-arcadian-jumps-up .fire-base {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #e08030 0%, #b05020 40%, #8a3010 70%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: aju-flicker 2.5s ease-in-out infinite;
}
.scn-arcadian-jumps-up .figure-jumping {
  position: absolute; bottom: 12%; left: 50%; width: 30px; height: 70px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aju-jump 3s ease-in-out infinite;
}
.scn-arcadian-jumps-up .figures-seated {
  position: absolute; bottom: 12%; left: 20%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: aju-seated 4s ease-in-out infinite;
}
.scn-arcadian-jumps-up .spear {
  position: absolute; bottom: 25%; left: 50%; width: 3px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius: 0 0 2px 2px;
  animation: aju-spear 3s ease-in-out infinite;
}
.scn-arcadian-jumps-up .shadow {
  position: absolute; bottom: 12%; left: 50%; width: 20px; height: 6px; transform: translateX(-50%);
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  animation: aju-shadow 3s ease-in-out infinite;
}

@keyframes aju-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes aju-flicker {
  0% { opacity: 0.4; transform: scale(1); }
  30% { opacity: 1; transform: scale(1.2); }
  50% { opacity: 0.5; transform: scale(0.8); }
  80% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(1); }
}
@keyframes aju-jump {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  20% { transform: translateX(-50%) translateY(-40px) rotate(-15deg); }
  40% { transform: translateX(-50%) translateY(-50px) rotate(-5deg); }
  60% { transform: translateX(-50%) translateY(-20px) rotate(10deg); }
  80% { transform: translateX(-50%) translateY(0) rotate(5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes aju-seated {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(-3deg); }
  75% { transform: rotate(4deg); }
  100% { transform: rotate(0deg); }
}
@keyframes aju-spear {
  0% { transform: translateX(-50%) rotate(-10deg); }
  50% { transform: translateX(-50%) rotate(10deg); }
  100% { transform: translateX(-50%) rotate(-10deg); }
}
@keyframes aju-shadow {
  0% { transform: translateX(-50%) scale(1); opacity: 0.5; }
  25% { transform: translateX(-50%) scale(0.8); opacity: 0.3; }
  50% { transform: translateX(-50%) scale(1.5); opacity: 0.2; }
  75% { transform: translateX(-50%) scale(1.2); opacity: 0.4; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.5; }
}

.scn-xenophon-advises-hostages {
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1a10 40%, #1a0f0a 100%),
              radial-gradient(ellipse at 30% 60%, #4a2a1a 0%, transparent 70%);
}
.scn-xenophon-advises-hostages .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0d0805 0%, transparent 50%, #140b07 100%);
  animation: xa-shadow 12s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .fire-glow {
  position: absolute; bottom: 10%; left: 25%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 100%, #ffa040 0%, #c06a20 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(192, 106, 32, 0.5), 0 0 160px 60px rgba(192, 106, 32, 0.3);
  animation: xa-fire 3s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .table {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: xa-table 9s ease-in-out infinite;
}
.scn-xenophon-advises-hostages .xenophon {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xa-figure-left 5s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .seuthes {
  position: absolute; bottom: 18%; right: 20%; width: 32px; height: 52px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0f05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: xa-figure-right 6s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .hostage {
  position: absolute; bottom: 8%; left: 48%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a0a05 0%, #0d0500 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: xa-hostage 2s ease-in-out infinite alternate;
}
.scn-xenophon-advises-hostages .shadow-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, rgba(0,0,0,0.4) 0%, transparent 60%);
  animation: xa-flicker 0.8s ease-in-out infinite alternate;
}
@keyframes xa-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; transform: scale(1.01); }
  100% { opacity: 0.5; }
}
@keyframes xa-fire {
  0% { opacity: 0.7; transform: scale(1) translateY(0); }
  30% { opacity: 1; transform: scale(1.05) translateY(-2px); }
  70% { opacity: 0.8; transform: scale(0.95) translateY(1px); }
  100% { opacity: 0.9; transform: scale(1.02) translateY(-1px); }
}
@keyframes xa-table {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(0.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xa-figure-left {
  0% { transform: translateX(0) rotate(-2deg); }
  20% { transform: translateX(2px) rotate(0deg); }
  50% { transform: translateX(0) rotate(2deg); }
  80% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes xa-figure-right {
  0% { transform: translateX(0) rotate(2deg); }
  30% { transform: translateX(-2px) rotate(0deg); }
  60% { transform: translateX(1px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes xa-hostage {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes xa-flicker {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

.scn-xenophon-recounts { 
  background: 
    linear-gradient(135deg, #1c1620 0%, #2a1e28 50%, #3a2825 100%),
    radial-gradient(ellipse at 30% 60%, #bf6a3a 0%, transparent 60%);
}
.scn-xenophon-recounts .wall-bg { 
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #1a141a 0%, #2a1e23 60%, #3a2825 100%); 
  animation: xr-flicker-wall 6s ease-in-out infinite alternate; 
}
.scn-xenophon-recounts .floor { 
  position:absolute; bottom:0; left:0; right:0; height:25%; 
  background: linear-gradient(180deg, #3a2a22 0%, #1e1612 100%); 
  border-radius: 20% 20% 0 0; 
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6); 
  animation: xr-floor-shift 8s ease-in-out infinite alternate; 
}
.scn-xenophon-recounts .window { 
  position:absolute; top:12%; left:70%; width:16%; height:26%; 
  background: radial-gradient(ellipse at center, #c08040 0%, #8a5a2a 50%, #4a2a1a 100%); 
  border-radius: 8% 8% 4% 4%; 
  box-shadow: 0 0 30px 10px rgba(192,128,64,.3), inset 0 0 20px rgba(255,200,100,.2); 
  animation: xr-window-glow 4s ease-in-out infinite alternate; 
}
.scn-xenophon-recounts .lamp { 
  position:absolute; bottom:30%; left:30%; width:10px; height:16px; 
  background: linear-gradient(180deg, #f0c060 0%, #b08040 100%); 
  border-radius: 40% 40% 20% 20%; 
  box-shadow: 0 0 40px 15px rgba(240,192,96,.5), 0 0 80px 30px rgba(240,192,96,.25); 
  animation: xr-lamp-flicker 1.5s ease-in-out infinite; 
}
.scn-xenophon-recounts .figure-a { 
  position:absolute; bottom:20%; left:20%; width:20px; height:45px; 
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: xr-figure-a 4s ease-in-out infinite; 
}
.scn-xenophon-recounts .figure-b { 
  position:absolute; bottom:20%; left:55%; width:18px; height:42px; 
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: xr-figure-b 5s ease-in-out infinite; 
}
.scn-xenophon-recounts .shadow-cast { 
  position:absolute; bottom:22%; left:15%; width:35%; height:18px; 
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.7) 0%, transparent 100%); 
  filter: blur(4px); 
  animation: xr-shadow-pulse 4s ease-in-out infinite alternate; 
}
@keyframes xr-flicker-wall { 
  0% { opacity: .7; filter: brightness(.8); } 
  30% { opacity: .85; filter: brightness(1); } 
  70% { opacity: .75; filter: brightness(.85); } 
  100% { opacity: .8; filter: brightness(.9); } 
}
@keyframes xr-floor-shift { 
  0% { transform: translateY(0); } 
  50% { transform: translateY(1px) scale(1.005); } 
  100% { transform: translateY(-1px) scale(.995); } 
}
@keyframes xr-window-glow { 
  0% { opacity: .6; box-shadow: 0 0 15px 5px rgba(192,128,64,.2); } 
  30% { opacity: .8; box-shadow: 0 0 35px 12px rgba(192,128,64,.4); } 
  70% { opacity: .7; box-shadow: 0 0 25px 8px rgba(192,128,64,.3); } 
  100% { opacity: .75; box-shadow: 0 0 30px 10px rgba(192,128,64,.35); } 
}
@keyframes xr-lamp-flicker { 
  0% { opacity: .7; transform: scale(.95) translateY(0); } 
  30% { opacity: 1; transform: scale(1.05) translateY(-1px); } 
  60% { opacity: .8; transform: scale(.98) translateY(0); } 
  100% { opacity: .9; transform: scale(1.02) translateY(-.5px); } 
}
@keyframes xr-figure-a { 
  0% { transform: translateX(0) rotate(-1deg); } 
  25% { transform: translateX(3px) rotate(2deg); } 
  50% { transform: translateX(-2px) rotate(-3deg); } 
  75% { transform: translateX(4px) rotate(0deg); } 
  100% { transform: translateX(0) rotate(1deg); } 
}
@keyframes xr-figure-b { 
  0% { transform: translateX(0) rotate(0deg); } 
  33% { transform: translateX(-2px) rotate(1deg); } 
  66% { transform: translateX(2px) rotate(-1deg); } 
  100% { transform: translateX(0) rotate(0deg); } 
}
@keyframes xr-shadow-pulse { 
  0% { opacity: .5; transform: scale(1); } 
  50% { opacity: .8; transform: scale(1.05); } 
  100% { opacity: .6; transform: scale(.98); } 
}

.scn-army-grows-restless {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e16 50%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
}

.scn-army-grows-restless .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(30,20,12,0.8) 0%, rgba(20,14,8,0.9) 100%);
  border-radius: 4% 2% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}

.scn-army-grows-restless .brazier {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, #3a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #a0461a, 0 0 80px 30px rgba(160,70,26,0.4);
  animation: agr-flame 2s ease-in-out infinite;
}

.scn-army-grows-restless .flame-glow {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,85,61,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: agr-glow-pulse 2s ease-in-out infinite alternate;
}

.scn-army-grows-restless .shadow-figure {
  position: absolute; bottom: 20%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #0a0604 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-army-grows-restless .shadow-figure.left {
  left: 35%;
  animation: agr-fig-left 4s ease-in-out infinite;
}
.scn-army-grows-restless .shadow-figure.right {
  right: 35%;
  animation: agr-fig-right 4.5s ease-in-out infinite;
}

.scn-army-grows-restless .coin-pile {
  position: absolute; bottom: 22%; left: 48%;
  width: 20px; height: 12px;
  background: linear-gradient(135deg, #b8860b 0%, #e6c200 40%, #cc9900 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: agr-coins 6s ease-in-out infinite;
}

.scn-army-grows-restless .spear {
  position: absolute; bottom: 25%; left: 55%;
  width: 3px; height: 70px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2212 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: agr-spear 6s ease-in-out infinite;
}

.scn-army-grows-restless .dust {
  position: absolute;
  width: 4px; height: 4px;
  background: rgba(180,140,100,0.4);
  border-radius: 50%;
  filter: blur(2px);
  pointer-events: none;
}
.scn-army-grows-restless .dust.speck1 {
  top: 45%; left: 30%;
  animation: agr-dust1 10s linear infinite;
}
.scn-army-grows-restless .dust.speck2 {
  top: 40%; left: 55%;
  animation: agr-dust2 12s linear infinite;
}

@keyframes agr-flame {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px 20px #a0461a, 0 0 80px 30px rgba(160,70,26,0.4); }
  25% { transform: translateX(-50%) scale(1.1) rotate(1deg); box-shadow: 0 0 50px 25px #c8553d, 0 0 100px 40px rgba(200,85,61,0.5); }
  50% { transform: translateX(-50%) scale(0.9) rotate(-1deg); box-shadow: 0 0 30px 15px #803c1a, 0 0 60px 20px rgba(128,60,26,0.3); }
  75% { transform: translateX(-50%) scale(1.05) rotate(0deg); box-shadow: 0 0 45px 22px #b84d2a, 0 0 90px 35px rgba(184,77,42,0.45); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow: 0 0 40px 20px #a0461a, 0 0 80px 30px rgba(160,70,26,0.4); }
}

@keyframes agr-glow-pulse {
  0% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.9; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
}

@keyframes agr-fig-left {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes agr-fig-right {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-2px) rotate(-2deg); }
  70% { transform: translateY(2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes agr-coins {
  0% { opacity: 0.7; transform: scale(1); }
  25% { opacity: 1; transform: scale(1.1) rotate(3deg); }
  50% { opacity: 0.8; transform: scale(0.95) rotate(-2deg); }
  100% { opacity: 0.7; transform: scale(1); }
}

@keyframes agr-spear {
  0% { transform: rotate(10deg); }
  30% { transform: rotate(11deg); }
  60% { transform: rotate(8deg); }
  100% { transform: rotate(10deg); }
}

@keyframes agr-dust1 {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 0.5; }
  50% { transform: translate(20px, -15px) scale(1.5); opacity: 0.3; }
  100% { transform: translate(40px, -30px) scale(0.8); opacity: 0; }
}

@keyframes agr-dust2 {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  15% { opacity: 0.4; }
  60% { transform: translate(-25px, -20px) scale(1.3); opacity: 0.2; }
  100% { transform: translate(-50px, -40px) scale(0.6); opacity: 0; }
}

.scn-arcadian-jumps-up { background: linear-gradient(180deg, #1c1210 0%, #2a1e14 40%, #1a0e08 100%), radial-gradient(ellipse at 30% 60%, rgba(200,120,60,.15) 0%, transparent 70%); }

.scn-arcadian-jumps-up .bg  { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%); animation: aj-bg 20s ease-in-out infinite alternate; }
.scn-arcadian-jumps-up .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.6); }
.scn-arcadian-jumps-up .lamp { position:absolute; left:18%; bottom:55%; width:12px; height:18px; background: linear-gradient(180deg, #6a4020, #3a2010); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,160,80,.6), 0 0 40px 12px rgba(255,160,80,.3); animation: aj-lamp-flicker 2s ease-in-out infinite alternate; }
.scn-arcadian-jumps-up .light-cone { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 60%, rgba(255,180,100,.12) 0%, transparent 60%); pointer-events:none; animation: aj-cone 5s ease-in-out infinite alternate; }
.scn-arcadian-jumps-up .table { position:absolute; bottom:30%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #4a3020, #2a1810); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: aj-table 10s ease-in-out infinite; }
.scn-arcadian-jumps-up .arcadian { position:absolute; bottom:32%; left:58%; width:20px; height:40px; background: linear-gradient(180deg, #0f0704 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aj-jump 3s ease-in-out infinite; }
.scn-arcadian-jumps-up .shadow-arcadian { position:absolute; bottom:30%; left:56%; width:28px; height:6px; background: rgba(0,0,0,.5); border-radius: 50%; animation: aj-shadow 3s ease-in-out infinite; }
.scn-arcadian-jumps-up .xenophon { position:absolute; bottom:30%; left:34%; width:18px; height:30px; background: linear-gradient(180deg, #1a0e08 0%, #0f0704 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: aj-sway 8s ease-in-out infinite; }
.scn-arcadian-jumps-up .mote { position:absolute; top:30%; right:25%; width:4px; height:4px; background: rgba(255,200,150,.4); border-radius: 50%; filter: blur(1px); animation: aj-drift 20s linear infinite; }

@keyframes aj-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes aj-lamp-flicker { 0% { box-shadow: 0 0 15px 4px rgba(255,160,80,.7), 0 0 35px 10px rgba(255,160,80,.4); opacity:.9 } 50% { box-shadow: 0 0 25px 8px rgba(255,180,100,.9), 0 0 50px 15px rgba(255,180,100,.5); opacity:1 } 100% { box-shadow: 0 0 12px 3px rgba(255,150,70,.6), 0 0 30px 8px rgba(255,150,70,.3); opacity:.85 } }
@keyframes aj-cone { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes aj-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes aj-jump { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-10px) rotate(-5deg) } 50% { transform: translateY(-18px) rotate(2deg) } 75% { transform: translateY(-8px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes aj-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:.6 } 25% { transform: scaleX(1.2) scaleY(.6); opacity:.4 } 50% { transform: scaleX(1.4) scaleY(.4); opacity:.2 } 75% { transform: scaleX(1.1) scaleY(.7); opacity:.4 } 100% { transform: scaleX(1) scaleY(1); opacity:.6 } }
@keyframes aj-sway { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes aj-drift { 0% { transform: translate(0,0) scale(1); opacity:.3 } 25% { transform: translate(20px,-10px) scale(1.2); opacity:.6 } 50% { transform: translate(40px,-20px) scale(0.8); opacity:.2 } 75% { transform: translate(60px,-5px) scale(1); opacity:.5 } 100% { transform: translate(80px,0) scale(0.9); opacity:.3 } }

.scn-colchians-routed {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0c080 50%, #ff7f50 100%),
    radial-gradient(ellipse at 50% 15%, #ffcc99 0%, transparent 60%);
}
.scn-colchians-routed .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, rgba(135,206,235,.6) 0%, transparent 100%); animation: clr-sky 14s ease-in-out infinite alternate; }
.scn-colchians-routed .sun { position:absolute; bottom:45%; left:50%; width:24px; height:24px; transform:translateX(-50%); background: radial-gradient(circle, #fff0c0 0%, #ffd700 40%, #ff7f50 100%); border-radius:50%; box-shadow: 0 0 30px 8px #ffaa66, 0 0 60px 20px rgba(255,170,102,.3); animation: clr-sun 5s ease-in-out infinite alternate; }
.scn-colchians-routed .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-colchians-routed .dust { position:absolute; bottom:30%; left:10%; right:10%; height:35%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,.15) 0%, transparent 90%); filter: blur(20px); animation: clr-dust 6s ease-in-out infinite; }
.scn-colchians-routed .soldier-a { position:absolute; bottom:30%; left:30%; width:14px; height:34px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: clr-soldier-a 4s ease-in-out infinite; }
.scn-colchians-routed .soldier-b { position:absolute; bottom:28%; left:55%; width:12px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: clr-soldier-b 5s ease-in-out infinite 1s; }
.scn-colchians-routed .spear { position:absolute; bottom:32%; left:30%; width:2px; height:28px; background: linear-gradient(180deg, #8b7355 0%, #5a4a3a 100%); border-radius: 2px; transform-origin: top center; animation: clr-spear 4s ease-in-out infinite; }
.scn-colchians-routed .banner { position:absolute; bottom:38%; left:30%; width:10px; height:12px; background: linear-gradient(180deg, #a0461a 0%, #702a10 100%); border-radius: 0 4px 4px 0; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform-origin: left center; animation: clr-banner 3s ease-in-out infinite; }
@keyframes clr-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes clr-sun { 0% { transform:translateX(-50%) scale(1); box-shadow:0 0 30px 8px #ffaa66,0 0 60px 20px rgba(255,170,102,.3); } 50% { transform:translateX(-50%) translateY(-3px) scale(1.05); box-shadow:0 0 40px 12px #ffcc77,0 0 80px 30px rgba(255,204,119,.4); } 100% { transform:translateX(-50%) scale(1); box-shadow:0 0 30px 8px #ffaa66,0 0 60px 20px rgba(255,170,102,.3); } }
@keyframes clr-soldier-a { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(18px) rotate(2deg); } 100% { transform: translateX(36px) rotate(-2deg); } }
@keyframes clr-soldier-b { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-12px) rotate(-2deg); } 100% { transform: translateX(-24px) rotate(2deg); } }
@keyframes clr-spear { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-4deg); } }
@keyframes clr-banner { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.7); } 100% { transform: scaleX(1); } }
@keyframes clr-dust { 0% { opacity:0; transform: translateY(0) scale(1); } 50% { opacity:0.5; transform: translateY(-12px) scale(1.1); } 100% { opacity:0; transform: translateY(-24px) scale(1.3); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.line-a { position: absolute; pointer-events: none; }
.line-b { position: absolute; pointer-events: none; }
.line-c { position: absolute; pointer-events: none; }
.polearm { position: absolute; pointer-events: none; }
.shaft { position: absolute; pointer-events: none; }
.stand { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-foundation-notice {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2e28 50%, #2a1f1a 100%),
              radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-foundation-notice .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f1a 0%, #3a2e28 50%, #2a1f1a 100%); }
.scn-foundation-notice .window { position:absolute; top:10%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #1a1a3e 0%, #2a2244 100%); border:6px solid #4a3a2a; border-radius:4px; animation: fn-window 20s ease-in-out infinite alternate; }
.scn-foundation-notice .desk { position:absolute; bottom:0; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px 4px 0 0; box-shadow:0 -4px 10px rgba(0,0,0,.5); }
.scn-foundation-notice .lamp-base { position:absolute; bottom:35%; left:50%; margin-left:-20px; width:40px; height:60px; background: linear-gradient(180deg, #b8944a 0%, #8a6a2a 100%); border-radius:50% 50% 10% 10%; transform-origin:bottom center; }
.scn-foundation-notice .lamp-shade { position:absolute; bottom:calc(35% + 60px); left:50%; margin-left:-40px; width:80px; height:30px; background: linear-gradient(180deg, #d4a853 0%, #b8944a 100%); border-radius:50% 50% 10% 10%; transform-origin:bottom center; animation:fn-lamp-shade 8s ease-in-out infinite; }
.scn-foundation-notice .lamp-glow { position:absolute; bottom:calc(35% + 30px); left:50%; margin-left:-60px; width:120px; height:120px; background: radial-gradient(circle, #ffd680 0%, #d4a853 40%, transparent 70%); border-radius:50%; filter:blur(8px); animation:fn-lamp-glow 5s ease-in-out infinite alternate; }
.scn-foundation-notice .papers { position:absolute; bottom:10%; left:20%; width:50%; height:8%; background: linear-gradient(180deg, #e8dcc8 0%, #d8c8b0 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.3); animation:fn-papers 12s ease-in-out infinite; }

@keyframes fn-window {
  0%   { opacity:0.7; background-position:0 0; }
  50%  { opacity:0.9; background-position:0 -10px; }
  100% { opacity:0.7; background-position:0 0; }
}
@keyframes fn-lamp-shade {
  0%   { transform:rotate(-2deg); }
  50%  { transform:rotate(2deg); }
  100% { transform:rotate(-2deg); }
}
@keyframes fn-lamp-glow {
  0%   { box-shadow:0 0 20px 5px #ffd680, 0 0 40px 10px rgba(255,214,128,.4); opacity:0.8; }
  50%  { box-shadow:0 0 30px 10px #ffd680, 0 0 60px 20px rgba(255,214,128,.6); opacity:1; }
  100% { box-shadow:0 0 20px 5px #ffd680, 0 0 40px 10px rgba(255,214,128,.4); opacity:0.8; }
}
@keyframes fn-papers {
  0%   { transform:translateY(0); }
  50%  { transform:translateY(-2px); }
  100% { transform:translateY(0); }
}

/* Scene 1: xensophon-refuses-command */
.scn-xensophon-refuses-command {
  background: linear-gradient(135deg, #1a1612 0%, #2b221d 40%, #3b2a1f 100%), radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-xensophon-refuses-command .wall {
  position: absolute; inset: 0; background: linear-gradient(0deg, #2b221d 0%, #1a1612 100%); 
  animation: xc-wall 10s ease-in-out infinite alternate;
}
.scn-xensophon-refuses-command .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(0deg, #1e1814 0%, #2b221d 100%); 
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-xensophon-refuses-command .altar {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 60px; height: 40px; 
  background: linear-gradient(180deg, #5c443a 0%, #3a2a1f 100%); border-radius: 4px; 
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-xensophon-refuses-command .flame {
  position: absolute; bottom: 43%; left: 50%; transform: translateX(-50%); width: 20px; height: 32px; 
  background: radial-gradient(ellipse at 50% 100%, #f0a060 10%, #d08030 40%, #a05020 70%, transparent 100%); 
  border-radius: 50%; filter: blur(2px); animation: xc-flame 2s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 12px rgba(200,100,30,.6);
}
.scn-xensophon-refuses-command .figure {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 50px; 
  background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: xc-figure 7s ease-in-out infinite;
}
.scn-xensophon-refuses-command .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 20px; 
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: xc-shadow 7s ease-in-out infinite;
}
.scn-xensophon-refuses-command .smoke-a {
  position: absolute; top: 30%; left: 45%; width: 30px; height: 20px; 
  background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 100%); 
  filter: blur(4px); animation: xc-smoke 12s linear infinite;
}
.scn-xensophon-refuses-command .smoke-b {
  position: absolute; top: 35%; left: 55%; width: 40px; height: 25px; 
  background: radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 100%); 
  filter: blur(5px); animation: xc-smoke 15s linear infinite reverse;
}
@keyframes xc-wall {
  0% { opacity: .9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: .85; filter: brightness(.95); }
}
@keyframes xc-flame {
  0% { transform: translateX(-50%) scaleY(1); opacity: .8; box-shadow: 0 0 30px 8px rgba(200,100,30,.5); }
  50% { transform: translateX(-50%) scaleY(1.15); opacity: 1; box-shadow: 0 0 50px 15px rgba(230,130,40,.7); }
  100% { transform: translateX(-50%) scaleY(.9); opacity: .85; box-shadow: 0 0 35px 10px rgba(200,100,30,.6); }
}
@keyframes xc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(-2deg); }
  60% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes xc-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.2); opacity: .3; }
  100% { transform: scaleX(.9); opacity: .6; }
}
@keyframes xc-smoke {
  0% { transform: translate(0, 0) scale(1); opacity: .3; }
  50% { transform: translate(10px, -5px) scale(1.2); opacity: .15; }
  100% { transform: translate(20px, -10px) scale(1.4); opacity: 0; }
}

/* Scene 2: army-divides */
.scn-army-divides {
  background: linear-gradient(180deg, #6b9ec2 0%, #94b8d6 30%, #c2d9e8 60%, #e0ecf3 100%), radial-gradient(ellipse at 70% 20%, #f0e8c0 0%, transparent 60%);
}
.scn-army-divides .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4e85a8 0%, #9bc6e0 100%);
  animation: ad-sky 15s ease-in-out infinite alternate;
}
.scn-army-divides .sun {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 50px; 
  background: radial-gradient(circle, #fff5c0 0%, #f0d080 40%, transparent 70%); 
  border-radius: 50%; box-shadow: 0 0 60px 20px #f0d080;
  animation: ad-sun 20s ease-in-out infinite alternate;
}
.scn-army-divides .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #4b7a9c 0%, #2e5a7a 100%);
  animation: ad-sea 12s ease-in-out infinite alternate;
}
.scn-army-divides .ship {
  position: absolute; bottom: 18%; left: 20%; width: 80px; height: 40px; 
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); 
  border-radius: 0 0 20% 20% / 0 0 100% 100%; 
  animation: ad-ship 8s ease-in-out infinite;
}
.scn-army-divides .sail {
  position: absolute; bottom: 28%; left: 20%; width: 30px; height: 50px; 
  background: linear-gradient(135deg, #e8d4b0 0%, #c4a880 100%); 
  border-radius: 10% 10% 5% 5%; transform-origin: bottom left;
  animation: ad-sail 6s ease-in-out infinite;
}
.scn-army-divides .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; 
  background: linear-gradient(0deg, #8a755a 0%, #b09a78 100%); 
  border-radius: 30% 70% 0 0 / 100% 100% 0 0;
}
.scn-army-divides .crowd {
  position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%); 
  width: 120px; height: 40px; 
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 4px, #4a3a2a 4px, #4a3a2a 8px, #5a4a3a 8px, #5a4a3a 12px); 
  border-radius: 20% 20% 0 0 / 100% 100% 0 0; 
  animation: ad-crowd 5s ease-in-out infinite;
}
.scn-army-divides .spear {
  position: absolute; bottom: 18%; left: 55%; width: 4px; height: 40px; 
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); 
  border-radius: 2px; 
  animation: ad-spear 4s ease-in-out infinite;
}
@keyframes ad-sky {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(.95); }
}
@keyframes ad-sun {
  0% { transform: translate(0, 0); opacity: .9; }
  50% { transform: translate(5px, -3px); opacity: 1; }
  100% { transform: translate(-5px, 2px); opacity: .85; }
}
@keyframes ad-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ad-ship {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ad-sail {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-5deg) scaleY(1.1); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes ad-crowd {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-48%) scaleX(1.02); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes ad-spear {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}

/* Scene 3: arcadians-routed */
.scn-arcadians-routed {
  background: linear-gradient(180deg, #2c241f 0%, #4a3a2a 40%, #7a5a3a 100%), radial-gradient(ellipse at 60% 50%, #b08040 0%, transparent 60%);
}
.scn-arcadians-routed .cliff {
  position: absolute; bottom: 20%; left: 0; right: 40%; height: 50%; 
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 0 100% 0 0 / 0 80% 0 0; 
  animation: ar-cliff 10s ease-in-out infinite alternate;
}
.scn-arcadians-routed .gorge {
  position: absolute; bottom: 10%; left: 30%; right: 10%; height: 30%; 
  background: linear-gradient(180deg, #2a2018 0%, #1a120e 100%); 
  border-radius: 20% 20% 0 0 / 50% 50% 0 0; 
  box-shadow: inset 0 12px 30px rgba(0,0,0,.7);
}
.scn-arcadians-routed .figures {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); 
  width: 60px; height: 40px; 
  background: linear-gradient(180deg, #1a140e 0%, #0a0806 100%); 
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%; 
  animation: ar-figures 3s ease-in-out infinite;
}
.scn-arcadians-routed .banner {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); 
  width: 8px; height: 30px; 
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); 
  border-radius: 2px; 
  animation: ar-banner 2s ease-in-out infinite;
}
.scn-arcadians-routed .dust-a {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 30px; 
  background: radial-gradient(ellipse, rgba(180,150,120,.4) 0%, transparent 100%); 
  filter: blur(5px); 
  animation: ar-dust 5s linear infinite;
}
.scn-arcadians-routed .dust-b {
  position: absolute; bottom: 20%; right: 15%; width: 50px; height: 25px; 
  background: radial-gradient(ellipse, rgba(180,150,120,.3) 0%, transparent 100%); 
  filter: blur(4px); 
  animation: ar-dust 7s linear infinite reverse;
}
.scn-arcadians-routed .sunflash {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 20px; 
  background: linear-gradient(135deg, rgba(240,200,100,.6) 0%, transparent 100%); 
  border-radius: 50%; filter: blur(8px); 
  animation: ar-sunflash 10s ease-in-out infinite alternate;
}
.scn-arcadians-routed .arrows {
  position: absolute; top: 30%; left: 10%; width: 30px; height: 4px; 
  background: linear-gradient(90deg, transparent 0%, #6a4a3a 100%); 
  border-radius: 2px; 
  animation: ar-arrows 1.5s ease-in-out infinite;
}
@keyframes ar-cliff {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes ar-figures {
  0% { transform: translateX(-50%) scaleY(1); }
  25% { transform: translateX(-40%) scaleY(1.05); }
  50% { transform: translateX(-60%) scaleY(.95); }
  75% { transform: translateX(-45%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes ar-banner {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes ar-dust {
  0% { transform: translate(0, 0) scale(1); opacity: .4; }
  50% { transform: translate(20px, -10px) scale(1.3); opacity: .2; }
  100% { transform: translate(40px, -20px) scale(1.5); opacity: 0; }
}
@keyframes ar-sunflash {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.2); }
  100% { opacity: .4; transform: scale(.9); }
}
@keyframes ar-arrows {
  0% { transform: translateX(0); opacity: 0; }
  50% { opacity: 1; }
  100% { transform: translateX(100px); opacity: 0; }
}

/* Scene 4: reunion-at-calpe-haven */
.scn-reunion-at-calpe-haven {
  background: linear-gradient(180deg, #b8d4e8 0%, #d6e4f0 30%, #f0ebd8 60%, #e8dcc8 100%), radial-gradient(ellipse at 50% 70%, #f0e0c0 0%, transparent 60%);
}
.scn-reunion-at-calpe-haven .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; 
  background: linear-gradient(180deg, #7a9eb5 0%, #4a7a94 100%); 
  animation: rh-water 10s ease-in-out infinite alternate;
}
.scn-reunion-at-calpe-haven .shore {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%; 
  background: linear-gradient(180deg, #c4a884 0%, #a88a6a 100%); 
  border-radius: 30% 70% 0 0 / 100% 100% 0 0;
}
.scn-reunion-at-calpe-haven .trees {
  position: absolute; bottom: 15%; left: 10%; width: 40px; height: 60px; 
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a1a 100%); 
  border-radius: 30% 30% 10% 10% / 60% 60% 30% 30%; 
  box-shadow: -15px 0 0 #2a4a1a, 20px 5px 0 #1a3a1a;
}
.scn-reunion-at-calpe-haven .figures-a {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 50px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: rh-figures 6s ease-in-out infinite;
}
.scn-reunion-at-calpe-haven .figures-b {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 50px; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: rh-figures 6s ease-in-out infinite 3s;
}
.scn-reunion-at-calpe-haven .embrace {
  position: absolute; bottom: 22%; left: 34%; width: 20px; height: 30px; 
  background: transparent; 
  border: 2px solid #5a4a3a; 
  border-radius: 50%; 
  animation: rh-embrace 4s ease-in-out infinite;
}
.scn-reunion-at-calpe-haven .lightrays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 40%; 
  background: linear-gradient(135deg, rgba(255,255,200,.3) 0%, transparent 100%); 
  filter: blur(10px); 
  animation: rh-lightrays 20s ease-in-out infinite alternate;
}
.scn-reunion-at-calpe-haven .birds {
  position: absolute; top: 10%; right: 15%; width: 20px; height: 10px; 
  background: #3a3a4a; 
  border-radius: 50% 50% 0 0; 
  animation: rh-birds 8s ease-in-out infinite;
}
@keyframes rh-water {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes rh-figures {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rh-embrace {
  0% { transform: scale(1); opacity: .7; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: .7; }
}
@keyframes rh-lightrays {
  0% { opacity: .2; transform: rotate(-5deg); }
  50% { opacity: .5; transform: rotate(0deg); }
  100% { opacity: .3; transform: rotate(5deg); }
}
@keyframes rh-birds {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-20px) translateY(-5px); }
  100% { transform: translateX(0) translateY(0); }
}

/* Scene: neons-disaster (nd) */
.scn-neons-disaster {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2038 40%, #1c1424 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a44 0%, transparent 70%);
}
.scn-neons-disaster .tent-nd {
  position: absolute; inset: auto 10% 15% 10%; height: 45%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.5);
  animation: nd-tent 14s ease-in-out infinite alternate;
}
.scn-neons-disaster .ground-nd {
  position: absolute; inset: auto 0 0 0; height: 20%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1e12 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-neons-disaster .brazier-nd {
  position: absolute; bottom: 24%; left: 45%; width: 28px; height: 18px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: nd-brazier 8s ease-in-out infinite;
}
.scn-neons-disaster .flame-nd {
  position: absolute; bottom: 32%; left: 46%; width: 16px; height: 24px;
  background: radial-gradient(circle, #ffa040 0%, #b06020 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b06020, 0 0 60px 20px rgba(176,96,32,.4);
  animation: nd-flame 3s ease-in-out infinite alternate;
}
.scn-neons-disaster .body-nd {
  position: absolute; bottom: 15%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: nd-body 20s ease-in-out infinite;
}
.scn-neons-disaster .spear-nd {
  position: absolute; bottom: 18%; left: 26%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a100a 100%);
  transform: rotate(-10deg);
  transform-origin: bottom;
  border-radius: 2px;
  animation: nd-spear 12s ease-in-out infinite alternate;
}
.scn-neons-disaster .light-nd {
  position: absolute; bottom: 25%; left: 42%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,180,80,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: nd-light 4s ease-in-out infinite alternate;
}
@keyframes nd-tent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.98); } }
@keyframes nd-brazier { 0%,100% { opacity: .9; } 50% { opacity: .7; } }
@keyframes nd-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-3px); } 100% { transform: scaleY(0.9) translateY(1px); } }
@keyframes nd-body { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(14deg) translateX(-1px); } }
@keyframes nd-spear { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-12deg) translateX(1px); } 100% { transform: rotate(-8deg); } }
@keyframes nd-light { 0% { opacity: 0.6; } 100% { opacity: 1; } }

/* Scene: bithynian-night-attack (bna) */
.scn-bithynian-night-attack {
  background:
    linear-gradient(180deg, #0a0a2e 0%, #1a1a44 40%, #0a0a2a 100%),
    radial-gradient(ellipse at 50% 90%, #2a2a5a 0%, transparent 70%);
}
.scn-bithynian-night-attack .moon-bna {
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8ff 0%, #c0c8e0 60%, #a0a8c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,220,255,.3);
  animation: bna-moon 20s ease-in-out infinite;
}
.scn-bithynian-night-attack .sky-bna {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a44 50%, #2a2a5a 100%);
  animation: bna-sky 30s linear infinite alternate;
}
.scn-bithynian-night-attack .hills-bna {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1a2e 0%, #2a2a44 100%);
  border-radius: 60% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: bna-hills 25s ease-in-out infinite alternate;
}
.scn-bithynian-night-attack .fort-bna {
  position: absolute; bottom: 45%; left: 10%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.6);
  animation: bna-fort 15s ease-in-out infinite;
}
.scn-bithynian-night-attack .ship-bna {
  position: absolute; bottom: 42%; right: 15%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 30% 30% 20% 20%;
  clip-path: polygon(0% 50%, 20% 0%, 100% 0%, 80% 50%, 100% 100%, 20% 100%);
  animation: bna-ship 12s ease-in-out infinite alternate;
}
.scn-bithynian-night-attack .eagle-bna {
  position: absolute; top: 20%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e0a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  transform: rotate(20deg);
  animation: bna-eagle 8s ease-in-out infinite;
}
.scn-bithynian-night-attack .tent-bna {
  position: absolute; bottom: 35%; left: 35%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #2a2a4a 0%, #1a1a3a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,.4);
  animation: bna-tent 18s ease-in-out infinite alternate;
}
@keyframes bna-moon { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes bna-sky { 0% { opacity: .9; } 100% { opacity: .7; } }
@keyframes bna-hills { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes bna-fort { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-1px); } }
@keyframes bna-ship { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(2px) rotate(0); } }
@keyframes bna-eagle { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-5px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes bna-tent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }

/* Scene: battle-at-the-gully (bg) */
.scn-battle-at-the-gully {
  background:
    linear-gradient(180deg, #4a6a8a 0%, #7a9a9a 40%, #5a7a7a 100%),
    radial-gradient(ellipse at 30% 60%, #8a9a7a 0%, transparent 60%);
}
.scn-battle-at-the-gully .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a8aaa 0%, #8aaa9a 100%);
  animation: bg-sky 20s ease-in-out infinite alternate;
}
.scn-battle-at-the-gully .gully-bg {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(0deg, #3a5a3a 0%, #5a7a5a 100%);
  clip-path: polygon(0% 0%, 20% 30%, 50% 10%, 80% 25%, 100% 0%, 100% 100%, 0% 100%);
  border-radius: 20% 20% 0 0;
  animation: bg-gully 10s ease-in-out infinite;
}
.scn-battle-at-the-gully .bridge-bg {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a5a 50%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: bg-bridge 6s ease-in-out infinite alternate;
}
.scn-battle-at-the-gully .troop1-bg {
  position: absolute; bottom: 28%; left: 20%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: bg-troop 4s ease-in-out infinite;
}
.scn-battle-at-the-gully .troop2-bg {
  position: absolute; bottom: 28%; left: 28%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: bg-troop 4s ease-in-out 0.5s infinite;
}
.scn-battle-at-the-gully .leader-bg {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-8deg);
  animation: bg-leader 5s ease-in-out infinite;
}
.scn-battle-at-the-gully .sun-bg {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #e0a060 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(224,160,96,.3);
  animation: bg-sun 25s ease-in-out infinite;
}
@keyframes bg-sky { 0% { opacity: .8; } 100% { opacity: 1; } }
@keyframes bg-gully { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes bg-bridge { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02) translateY(1px); } 100% { transform: scaleX(0.98); } }
@keyframes bg-troop { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(4px); } 100% { transform: rotate(-6deg) translateX(-2px); } }
@keyframes bg-leader { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(1px); } }
@keyframes bg-sun { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }

/* Scene: victory-and-trophy (vic) */
.scn-victory-and-trophy {
  background:
    linear-gradient(180deg, #5a7a6a 0%, #8a9a7a 40%, #6a8a6a 100%),
    radial-gradient(ellipse at 60% 80%, #aaba8a 0%, transparent 60%);
}
.scn-victory-and-trophy .sky-vic {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a9a8a 0%, #5a7a6a 100%);
  animation: vic-sky 15s ease-in-out infinite alternate;
}
.scn-victory-and-trophy .ground-vic {
  position: absolute; inset: auto 0 0 0; height: 50%;
  background: linear-gradient(0deg, #3a5a3a 0%, #5a7a5a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-victory-and-trophy .trophy-vic {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  box-shadow: 0 8px 12px rgba(0,0,0,.4);
  animation: vic-trophy 8s ease-in-out infinite;
}
.scn-victory-and-trophy .shield-vic {
  position: absolute; bottom: 35%; left: 35%; width: 24px; height: 30px;
  background: radial-gradient(circle, #8a5a2a 0%, #5a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  transform: rotate(-10deg);
  animation: vic-shield 12s ease-in-out infinite alternate;
}
.scn-victory-and-trophy .body-vic {
  position: absolute; bottom: 15%; left: 25%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(30deg);
  background: #2a1a1a;
  border-radius: 50%;
  opacity: 0.8;
  animation: vic-body 20s ease-in-out infinite;
}
.scn-victory-and-trophy .hill-vic {
  position: absolute; bottom: 20%; right: 10%; width: 120px; height: 60px;
  background: linear-gradient(0deg, #4a6a4a 0%, #6a8a6a 100%);
  border-radius: 50% 50% 0 0;
  transform: scaleX(0.8);
  animation: vic-hill 25s ease-in-out infinite alternate;
}
@keyframes vic-sky { 0% { opacity: .9; } 100% { opacity: .7; } }
@keyframes vic-trophy { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } }
@keyframes vic-shield { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-12deg) translateX(-1px); } }
@keyframes vic-body { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(28deg) translateX(3px); } 100% { transform: rotate(32deg) translateX(-2px); } }
@keyframes vic-hill { 0% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.82) translateY(2px); } 100% { transform: scaleX(0.78) translateY(-1px); } }

/* xenophon-urges-action */
.scn-xenophon-urges-action {
  background:
    radial-gradient(ellipse at 50% 60%, #4a3030 0%, #241818 100%),
    linear-gradient(180deg, #1a1010 0%, #2a1a1a 50%, #0e0808 100%);
}
.scn-xenophon-urges-action .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  animation: xua-pulse 8s ease-in-out infinite alternate;
}
.scn-xenophon-urges-action .tent-pole {
  position: absolute; bottom: 20%; width: 6px; height: 60%;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3220 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.6);
}
.scn-xenophon-urges-action .tent-pole.left { left: 20%; }
.scn-xenophon-urges-action .tent-pole.right { right: 20%; }
.scn-xenophon-urges-action .brazier {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #d47a30 0%, #b05020 50%, #4a2010 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(212,122,48,0.6), 0 0 80px 40px rgba(212,122,48,0.3);
  animation: xua-flame 1.5s ease-in-out infinite alternate;
}
.scn-xenophon-urges-action .figure-xenophon {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xua-gesture 3s ease-in-out infinite;
}
.scn-xenophon-urges-action .figure-officer {
  position: absolute; bottom: 18%; left: 55%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a1a14 0%, #120c0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xua-listen 3s ease-in-out infinite alternate;
}
.scn-xenophon-urges-action .shadow-blade {
  position: absolute; bottom: 16%; left: 42%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #aaaaaa 0%, #444444 100%);
  border-radius: 0 0 60% 60%;
  animation: xua-gleam 4s ease-in-out infinite;
}
.scn-xenophon-urges-action .ember {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #faba40 0%, #c07020 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #faba40;
}
.scn-xenophon-urges-action .ember-1 { bottom: 30%; left: 46%; animation: xua-ember 2.1s ease-out infinite; }
.scn-xenophon-urges-action .ember-2 { bottom: 28%; left: 54%; animation: xua-ember 2.8s ease-out infinite 0.7s; }
@keyframes xua-pulse { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xua-flame { 0% { transform: translateX(-50%) scaleY(0.9); } 50% { transform: translateX(-50%) scaleY(1.15) scaleX(1.02); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes xua-gesture { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(4deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes xua-listen { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes xua-gleam { 0% { opacity: 0.3; } 30% { opacity: 0.9; } 60% { opacity: 0.2; } 100% { opacity: 0.4; } }
@keyframes xua-ember { 0% { transform: translate(0, 0) scale(1); opacity: 0.9; } 50% { transform: translate(6px, -18px) scale(0.7); opacity: 0.5; } 100% { transform: translate(12px, -40px) scale(0.1); opacity: 0; } }

/* election-of-generals */
.scn-election-of-generals {
  background:
    radial-gradient(ellipse at 50% 30%, #3a2828 0%, #1a1010 100%),
    linear-gradient(180deg, #1c1414 0%, #0e0a0a 100%);
}
.scn-election-of-generals .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e1e 0%, #1a1212 60%, #0e0808 100%);
  animation: eog-flicker 12s ease-in-out infinite alternate;
}
.scn-election-of-generals .dais {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 12px;
  background: linear-gradient(180deg, #5a4230 0%, #2e2018 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-election-of-generals .torch {
  position: absolute; bottom: 24%; width: 6px; height: 36px;
  background: linear-gradient(180deg, #7a5020 0%, #3a2010 100%);
  border-radius: 2px;
}
.scn-election-of-generals .torch-l { left: 20%; }
.scn-election-of-generals .torch-r { right: 20%; }
.scn-election-of-generals .torch::after {
  content: ''; position: absolute; top: -8px; left: -4px;
  width: 14px; height: 14px;
  background: radial-gradient(circle, #f48c30 0%, #b05018 60%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #f48c30;
  animation: eog-fire 1.8s ease-in-out infinite alternate;
}
.scn-election-of-generals .figure-speaker {
  position: absolute; bottom: 25%; left: 44%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eog-speak 3.5s ease-in-out infinite;
}
.scn-election-of-generals .crowd {
  position: absolute; bottom: 18%; width: 100%; height: 30%;
  background: repeating-linear-gradient(90deg,
    transparent 0px, #1a1410 4px, transparent 6px);
  animation: eog-shift 8s linear infinite;
}
.scn-election-of-generals .crowd-far { bottom: 22%; opacity: 0.6; }
.scn-election-of-generals .crowd-near { bottom: 16%; opacity: 0.9; }
.scn-election-of-generals .voting-hand {
  position: absolute; bottom: 32%; left: 55%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom left;
  animation: eog-vote 2s ease-in-out infinite;
}
@keyframes eog-flicker { 0% { opacity: 0.8; } 30% { opacity: 1; } 50% { opacity: 0.7; } 80% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes eog-fire { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes eog-speak { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(6deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(4deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes eog-shift { 0% { transform: translateX(0); } 50% { transform: translateX(-20px); } 100% { transform: translateX(0); } }
@keyframes eog-vote { 0% { transform: translateY(0) rotate(-10deg); } 25% { transform: translateY(-6px) rotate(30deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-4px) rotate(20deg); } 100% { transform: translateY(0) rotate(-5deg); } }

/* xenophon-formation-plan */
.scn-xenophon-formation-plan {
  background:
    radial-gradient(ellipse at 30% 20%, #e0c880 0%, #c8a860 60%, #908040 100%),
    linear-gradient(180deg, #b0a87e 0%, #7a6a40 100%);
}
.scn-xenophon-formation-plan .sky-sun {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #f0d890 0%, #d0b870 80%, #b09850 100%);
  animation: xfp-sky 20s ease-in-out infinite alternate;
}
.scn-xenophon-formation-plan .mountain-far {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: xfp-mtn 30s linear infinite;
}
.scn-xenophon-formation-plan .plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a6a3a 0%, #4a4a2a 100%);
  border-radius: 0 0 40% 60% / 0 0 20% 30%;
}
.scn-xenophon-formation-plan .burning-wagon {
  position: absolute; bottom: 12%; left: 25%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #d07030 0%, #8a4020 100%);
  border-radius: 10%;
  box-shadow: 0 0 30px 10px #d07030, 0 0 60px 20px rgba(208,112,48,0.4);
  animation: xfp-burn 3s ease-in-out infinite alternate;
}
.scn-xenophon-formation-plan .soldier-col {
  position: absolute; bottom: 10%; left: 40%; width: 80px; height: 20px;
  background: repeating-linear-gradient(90deg,
    transparent 0px, #1a1a2a 6px, transparent 8px);
  animation: xfp-march 6s linear infinite;
}
.scn-xenophon-formation-plan .soldier-rank {
  position: absolute; bottom: 16%; left: 45%; width: 60px; height: 16px;
  background: repeating-linear-gradient(90deg,
    transparent 0px, #2a2a3a 5px, transparent 7px);
  animation: xfp-march 8s linear infinite reverse;
}
.scn-xenophon-formation-plan .spear-row {
  position: absolute; bottom: 14%; left: 42%; width: 90px; height: 30px;
  background: repeating-linear-gradient(90deg,
    transparent 0px, #6a5a3a 2px, transparent 4px);
  border-radius: 0 0 50% 50%;
  animation: xfp-spear 2.5s ease-in-out infinite;
}
.scn-xenophon-formation-plan .sunburst {
  position: absolute; top: 10%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d080 40%, transparent 70%);
  border-radius: 50%;
  animation: xfp-sun 15s ease-in-out infinite alternate;
}
@keyframes xfp-sky { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes xfp-mtn { 0% { transform: translateX(0); } 50% { transform: translateX(-20px); } 100% { transform: translateX(0); } }
@keyframes xfp-burn { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.2) scaleX(1.05); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.8; } }
@keyframes xfp-march { 0% { transform: translateX(0); } 50% { transform: translateX(-30px); } 100% { transform: translateX(0); } }
@keyframes xfp-spear { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes xfp-sun { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }

/* cheirisophus-blames-xenophon */
.scn-cheirisophus-blames-xenophon {
  background:
    radial-gradient(ellipse at 50% 60%, #d4883a 0%, #a06028 50%, #4a2010 100%),
    linear-gradient(180deg, #c87838 0%, #6a3018 100%);
}
.scn-cheirisophus-blames-xenophon .sunset-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #f0b060 0%, #c08040 60%, #8a5020 100%);
  animation: cbx-sky 10s ease-in-out infinite alternate;
}
.scn-cheirisophus-blames-xenophon .bluff {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a422a 0%, #2e2018 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-cheirisophus-blames-xenophon .figure-cheir {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbx-accuse 2.5s ease-in-out infinite;
}
.scn-cheirisophus-blames-xenophon .figure-xen {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a1a14 0%, #120c0a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbx-defend 2.5s ease-in-out infinite alternate;
}
.scn-cheirisophus-blames-xenophon .horse {
  position: absolute; bottom: 16%; left: 20%; width: 30px; height: 24px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: cbx-stamp 4s ease-in-out infinite;
}
.scn-cheirisophus-blames-xenophon .dust {
  position: absolute; bottom: 14%; left: 18%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(120,100,60,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: cbx-dust 3s ease-in-out infinite alternate;
}
.scn-cheirisophus-blames-xenophon .spear-ground {
  position: absolute; bottom: 12%; left: 52%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #5a4a30 0%, #2a2010 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  animation: cbx-spear 3s ease-in-out infinite;
}
@keyframes cbx-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes cbx-accuse { 0% { transform: translateY(0) rotate(-4deg); } 25% { transform: translateY(-3px) rotate(8deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(6deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes cbx-defend { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cbx-stamp { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes cbx-dust { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(-10px) scale(1.5); opacity: 0.2; } 100% { transform: translateX(5px) scale(0.8); opacity: 0.4; } }
@keyframes cbx-spear { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(8deg); } 100% { transform: translateY(0) rotate(-3deg); } }

.scn-cyrus-helps-in-the-mire { background: linear-gradient(180deg, #f0c070 0%, #d4a050 30%, #b08030 60%, #7a5a20 100%), radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 60%); }
.scn-cyrus-helps-in-the-mire .sky-mire { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffdd88 0%, #eebb55 40%, #cca040 70%, #a07830 100%); animation: mire-sky 20s ease-in-out infinite alternate; }
.scn-cyrus-helps-in-the-mire .sun-mire { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #fff4c0 0%, #ffcc44 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,200,60,0.4); animation: mire-sun 30s linear infinite; }
.scn-cyrus-helps-in-the-mire .hills-mire { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a9a50 0%, #5a7a30 50%, #3a5a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.3); animation: mire-hills 15s ease-in-out infinite alternate; }
.scn-cyrus-helps-in-the-mire .mud-mire { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a5a30 0%, #5a3a1a 40%, #3a2a0a 100%); box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5); animation: mire-mud 12s ease-in-out infinite; }
.scn-cyrus-helps-in-the-mire .wagon-mire { position:absolute; bottom:28%; left:15%; width:70px; height:40px; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 50%, #6a4a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); transform: rotate(-8deg); animation: mire-wagon 6s ease-in-out infinite; }
.scn-cyrus-helps-in-the-mire .cyrus-mire { position:absolute; bottom:24%; left:40%; width:24px; height:48px; background: linear-gradient(180deg, #d4a050 0%, #a07030 50%, #704020 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: mire-cyrus 8s ease-in-out infinite; }
.scn-cyrus-helps-in-the-mire .cloak-mire { position:absolute; bottom:26%; left:38%; width:30px; height:20px; background: linear-gradient(180deg, #8a6040 0%, #5a4020 100%); border-radius: 0 80% 60% 40%; transform-origin: left bottom; animation: mire-cloak 4s ease-in-out infinite alternate; }
.scn-cyrus-helps-in-the-mire .dust-mire { position:absolute; bottom:30%; left:20%; width:100px; height:20px; background: rgba(200,170,100,0.15); filter: blur(8px); border-radius: 50%; animation: mire-dust 10s ease-in-out infinite; }
@keyframes mire-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes mire-sun { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes mire-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes mire-mud { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mire-wagon { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes mire-cyrus { 0% { transform: rotate(0) translateX(0) scale(1); } 25% { transform: rotate(-2deg) translateX(5px) scale(1.02); } 50% { transform: rotate(2deg) translateX(-2px) scale(0.98); } 75% { transform: rotate(-1deg) translateX(3px) scale(1.01); } 100% { transform: rotate(0) translateX(0) scale(1); } }
@keyframes mire-cloak { 0% { transform: rotate(0); } 100% { transform: rotate(15deg); } }
@keyframes mire-dust { 0% { transform: translateX(0) scale(1); opacity:0; } 50% { transform: translateX(30px) scale(2); opacity:0.4; } 100% { transform: translateX(60px) scale(1); opacity:0; } }

.scn-into-babylonia { background: linear-gradient(180deg, #f0d080 0%, #c8a050 40%, #a08030 70%, #6a5020 100%), radial-gradient(ellipse at 50% 0%, #fff0b0 0%, transparent 60%); }
.scn-into-babylonia .sky-bably { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e8c868 0%, #c8a048 40%, #a88028 70%, #806020 100%); animation: bably-sky 25s ease-in-out infinite alternate; }
.scn-into-babylonia .plains-bably { position:absolute; bottom:28%; left:0; right:0; height:22%; background: linear-gradient(180deg, #9a7a3a 0%, #7a5a1a 50%, #5a3a0a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; animation: bably-plains 18s ease-in-out infinite; }
.scn-into-babylonia .city-bably { position:absolute; bottom:30%; left:35%; width:100px; height:70px; background: linear-gradient(180deg, #b09050 0%, #806030 50%, #503010 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: bably-city 20s ease-in-out infinite alternate; }
.scn-into-babylonia .troops-bably { position:absolute; bottom:24%; left:10%; width:120px; height:12px; background: repeating-linear-gradient(90deg, #6a4a2a 0px, #6a4a2a 6px, transparent 6px, transparent 10px); filter: blur(2px); animation: bably-troops 30s linear infinite; }
.scn-into-babylonia .cyrus-bably { position:absolute; bottom:22%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #c8a050 0%, #a07030 50%, #704020 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: bably-cyrus 10s ease-in-out infinite; }
.scn-into-babylonia .reward-bably { position:absolute; bottom:30%; left:62%; width:8px; height:8px; background: radial-gradient(circle, #ffd060 0%, #c08830 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,200,60,0.6); animation: bably-reward 4s ease-in-out infinite alternate; }
.scn-into-babylonia .cloud-bably { position:absolute; top:12%; left:20%; width:80px; height:20px; background: rgba(255,255,200,0.3); filter: blur(6px); border-radius: 50%; animation: bably-cloud 40s linear infinite; }
@keyframes bably-sky { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes bably-plains { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes bably-city { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes bably-troops { 0% { background-position: 0 0; } 100% { background-position: -120px 0; } }
@keyframes bably-cyrus { 0%,100% { transform: translateX(-2px) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(0deg); } 75% { transform: translateX(3px) rotate(2deg); } }
@keyframes bably-reward { 0% { opacity:0.6; box-shadow: 0 0 16px 4px rgba(255,200,60,0.4); } 50% { opacity:1; box-shadow: 0 0 28px 10px rgba(255,200,60,0.8); } 100% { opacity:0.7; box-shadow: 0 0 20px 6px rgba(255,200,60,0.5); } }
@keyframes bably-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

.scn-chaos-before-battle { background: linear-gradient(180deg, #d4a040 0%, #b08030 30%, #906020 60%, #604010 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%); }
.scn-chaos-before-battle .sky-chaos { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d8b060 0%, #b89040 40%, #987030 70%, #785020 100%); animation: chaos-sky 10s ease-in-out infinite alternate; }
.scn-chaos-before-battle .dust-chaos { position:absolute; bottom:30%; left:0; right:0; height:25%; background: rgba(180,140,80,0.2); filter: blur(6px); border-radius: 50%; animation: chaos-dust 12s ease-in-out infinite; }
.scn-chaos-before-battle .euphrates-chaos { position:absolute; top:0; right:0; width:12%; height:100%; background: linear-gradient(90deg, rgba(100,150,200,0.3) 0%, rgba(80,130,180,0.5) 50%, rgba(60,100,160,0.7) 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: chaos-river 20s ease-in-out infinite alternate; }
.scn-chaos-before-battle .ranks-chaos { position:absolute; bottom:20%; left:5%; width:60%; height:30%; background: repeating-linear-gradient(90deg, #7a5a2a 0px, #7a5a2a 4px, transparent 4px, transparent 8px); filter: blur(1px); animation: chaos-ranks 30s linear infinite; }
.scn-chaos-before-battle .cyrus-chaos { position:absolute; bottom:25%; left:40%; width:28px; height:50px; background: linear-gradient(180deg, #c09040 0%, #a07030 50%, #704020 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: chaos-cyrus 3s ease-in-out infinite; }
.scn-chaos-before-battle .cavalry-chaos { position:absolute; bottom:22%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #a08040 0%, #806030 50%, #604020 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: chaos-cav 5s ease-in-out infinite; }
.scn-chaos-before-battle .bronze-chaos { position:absolute; bottom:25%; left:18%; width:10px; height:10px; background: radial-gradient(circle, #ffe080 0%, #c08020 70%); border-radius: 50%; box-shadow: 0 0 24px 8px rgba(255,200,60,0.5); animation: chaos-bronze 2s ease-in-out infinite alternate; }
@keyframes chaos-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.65; } }
@keyframes chaos-dust { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.2; transform: scale(0.9); } }
@keyframes chaos-river { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes chaos-ranks { 0% { background-position: 0 0; } 100% { background-position: -60px 0; } }
@keyframes chaos-cyrus { 0%,100% { transform: rotate(0) translateX(0); } 25% { transform: rotate(8deg) translateX(5px); } 50% { transform: rotate(-6deg) translateX(-3px); } 75% { transform: rotate(4deg) translateX(2px); } }
@keyframes chaos-cav { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes chaos-bronze { 0% { opacity:0.6; box-shadow: 0 0 16px 4px rgba(255,200,60,0.4); } 100% { opacity:1; box-shadow: 0 0 32px 12px rgba(255,200,60,0.8); } }

.scn-hellenic-charge { background: linear-gradient(180deg, #e0b050 0%, #c09030 30%, #a07020 60%, #705010 100%), radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%); }
.scn-hellenic-charge .sky-helch { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8a848 0%, #b88828 40%, #986818 70%, #785008 100%); animation: helch-sky 15s ease-in-out infinite alternate; }
.scn-hellenic-charge .ground-helch { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a6a2a 0%, #6a4a0a 50%, #4a2a00 100%); clip-path: polygon(0 30%, 20% 20%, 40% 35%, 60% 15%, 80% 30%, 100% 10%, 100% 100%, 0 100%); animation: helch-ground 12s ease-in-out infinite; }
.scn-hellenic-charge .helen-charge-helch { position:absolute; bottom:18%; left:30%; width:100px; height:30px; background: repeating-linear-gradient(90deg, #c8a040 0px, #c8a040 6px, #a08020 6px, #a08020 12px); border-radius: 20% 40% 10% 30%; transform: rotate(15deg); animation: helch-charge 4s ease-in-out infinite; }
.scn-hellenic-charge .fallen-helch { position:absolute; bottom:15%; left:10%; width:40px; height:20px; background: linear-gradient(180deg, #8a6040 0%, #604020 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-20deg); animation: helch-fallen 8s ease-in-out infinite alternate; }
.scn-hellenic-charge .paean-helch { position:absolute; bottom:25%; left:35%; width:20px; height:20px; background: radial-gradient(circle, #ffe080 0%, #e0a020 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,200,60,0.5); animation: helch-paean 2s ease-in-out infinite alternate; }
.scn-hellenic-charge .dust-helch { position:absolute; bottom:25%; left:0; right:0; height:20%; background: rgba(200,160,80,0.15); filter: blur(10px); border-radius: 50%; animation: helch-dust 10s ease-in-out infinite; }
.scn-hellenic-charge .barbarian-helch { position:absolute; bottom:20%; left:60%; width:30px; height:35px; background: linear-gradient(180deg, #a08050 0%, #806030 50%, #604020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-30deg); animation: helch-barbarian 6s ease-in-out infinite; }
@keyframes helch-sky { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes helch-ground { 0% { clip-path: polygon(0 30%, 20% 20%, 40% 35%, 60% 15%, 80% 30%, 100% 10%, 100% 100%, 0 100%); } 50% { clip-path: polygon(0 25%, 20% 30%, 40% 15%, 60% 35%, 80% 20%, 100% 25%, 100% 100%, 0 100%); } 100% { clip-path: polygon(0 30%, 20% 20%, 40% 35%, 60% 15%, 80% 30%, 100% 10%, 100% 100%, 0 100%); } }
@keyframes helch-charge { 0% { transform: translateX(-10px) rotate(15deg) scaleX(1); } 50% { transform: translateX(10px) rotate(20deg) scaleX(1.1); } 100% { transform: translateX(-5px) rotate(15deg) scaleX(1); } }
@keyframes helch-fallen { 0% { transform: rotate(-20deg) translateY(0); } 100% { transform: rotate(-15deg) translateY(-4px); } }
@keyframes helch-paean { 0% { opacity:0.4; box-shadow: 0 0 20px 6px rgba(255,200,60,0.3); } 100% { opacity:1; box-shadow: 0 0 40px 16px rgba(255,200,60,0.7); } }
@keyframes helch-dust { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.2); } 100% { opacity:0.15; transform: scale(0.8); } }
@keyframes helch-barbarian { 0%,100% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(8px); } }

/* scene 1: snow-and-tiribazus-trap (tense + overcast) */
.scn-snow-and-tiribazus-trap {
  background: linear-gradient(180deg, #5b6b7a 0%, #7a8a99 40%, #9aabba 100%), radial-gradient(ellipse at 50% 30%, rgba(255,255,255,0.1) 0%, transparent 70%);
}
.scn-snow-and-tiribazus-trap .sky-overcast {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #4d5d6d 0%, #6b7b8a 100%);
  animation: sn-sky 8s ease-in-out infinite alternate;
}
.scn-snow-and-tiribazus-trap .mountains {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: sn-mountains 12s ease-in-out infinite alternate;
}
.scn-snow-and-tiribazus-trap .snow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d0d8e0 0%, #b0c0d0 100%);
  border-radius: 10% 90% 0 0 / 20% 80% 0 0;
  box-shadow: inset 0 5px 15px rgba(255,255,255,0.2);
}
.scn-snow-and-tiribazus-trap .river {
  position: absolute; bottom: 38%; left: 20%; right: 30%; height: 6%;
  background: linear-gradient(90deg, #4a6a7a 0%, #6a8a9a 50%, #4a6a7a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sn-river 5s ease-in-out infinite alternate;
}
.scn-snow-and-tiribazus-trap .soldiers-column {
  position: absolute; bottom: 30%; left: 30%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 2px;
  box-shadow: 10px 0 0 #2a3a3a, 20px 0 0 #2a3a3a, 30px 0 0 #2a3a3a;
  animation: sn-column 4s ease-in-out infinite;
}
.scn-snow-and-tiribazus-trap .snow-fall.heavy {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background-image: radial-gradient(circle at 10% 20%, white 1px, transparent 1px), radial-gradient(circle at 30% 50%, white 1.5px, transparent 1.5px), radial-gradient(circle at 70% 10%, white 1px, transparent 1px), radial-gradient(circle at 90% 80%, white 1.2px, transparent 1.2px);
  background-size: 100px 100px, 150px 150px, 120px 120px, 180px 180px;
  animation: sn-snowfall-heavy 3s linear infinite;
}
.scn-snow-and-tiribazus-trap .snow-fall.light {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background-image: radial-gradient(circle at 20% 70%, rgba(255,255,255,0.8) 0.8px, transparent 0.8px), radial-gradient(circle at 60% 30%, rgba(255,255,255,0.6) 1px, transparent 1px), radial-gradient(circle at 80% 60%, rgba(255,255,255,0.7) 0.9px, transparent 0.9px);
  background-size: 200px 200px, 250px 250px, 300px 300px;
  animation: sn-snowfall-light 6s linear infinite;
  animation-delay: -2s;
}
.scn-snow-and-tiribazus-trap .scout-figure {
  position: absolute; bottom: 35%; left: 15%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn-scout 4s ease-in-out infinite;
}
@keyframes sn-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes sn-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sn-river { 0% { transform: skewX(-2deg) } 50% { transform: skewX(0deg) } 100% { transform: skewX(2deg) } }
@keyframes sn-column { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sn-snowfall-heavy { 0% { background-position: 0 0, 0 0, 0 0, 0 0 } 100% { background-position: 30px 100px, 20px 150px, 50px 120px, -20px 180px } }
@keyframes sn-snowfall-light { 0% { background-position: 0 0, 0 0, 0 0 } 100% { background-position: -40px 200px, 60px 250px, 30px 300px } }
@keyframes sn-scout { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 60% { transform: translateX(16px) translateY(0) rotate(-1deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }

/* scene 2: taochian-fortress (dark + sunlit) */
.scn-taochian-fortress {
  background: linear-gradient(180deg, #7a8a9a 0%, #9aacba 40%, #c0d0d8 100%), radial-gradient(ellipse at 50% 0, #f0e8d0 0%, transparent 60%);
}
.scn-taochian-fortress .sky-sun {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c4d4 0%, #e0e8f0 100%);
  animation: tf-sky 10s ease-in-out infinite alternate;
}
.scn-taochian-fortress .cliff {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-taochian-fortress .fortress-wall {
  position: absolute; bottom: 35%; left: 35%; width: 120px; height: 70px;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 100%);
  border-radius: 4% 4% 2% 2% / 6% 6% 3% 3%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,255,255,0.2);
}
.scn-taochian-fortress .fortress-tower {
  position: absolute; bottom: 50%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-taochian-fortress .woman-jumping {
  position: absolute; bottom: 55%; left: 50%; width: 14px; height: 26px;
  background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-jump 3s ease-in-out infinite;
}
.scn-taochian-fortress .infant-shadow {
  position: absolute; bottom: 60%; left: 48%; width: 6px; height: 8px;
  background: #3a2a1a;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: tf-infant 3s ease-in-out infinite;
}
.scn-taochian-fortress .sunburst {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,210,0.8) 0%, rgba(255,240,210,0.1) 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: tf-sunburst 8s ease-in-out infinite alternate;
}
@keyframes tf-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tf-jump { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-20px) rotate(-10deg) } 60% { transform: translateY(-15px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tf-infant { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-2px, -8px) scale(0.8) } 100% { transform: translate(0,0) scale(1) } }
@keyframes tf-sunburst { 0% { opacity:0.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.7; transform: translateX(-50%) scale(0.9) } }

/* scene 3: the-sea-the-sea (warm + sunlit) */
.scn-the-sea-the-sea {
  background: linear-gradient(180deg, #f0d8a0 0%, #f0e8c0 30%, #d0e0f0 70%), radial-gradient(ellipse at 50% 100%, #f0c880 0%, transparent 70%);
}
.scn-the-sea-the-sea .sky-clear {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d0e8ff 0%, #f0f8ff 100%);
  animation: ss-sky 10s ease-in-out infinite alternate;
}
.scn-the-sea-the-sea .sea-horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #5a8ab0 0%, #7ab0d0 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.1);
  animation: ss-sea 6s ease-in-out infinite alternate;
}
.scn-the-sea-the-sea .hill-summit {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: ss-hill 12s ease-in-out infinite alternate;
}
.scn-the-sea-the-sea .greek-figures {
  position: absolute; bottom: 35%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 15px 0 0 #4a3a2a, 30px 0 0 #5a4a3a;
  animation: ss-figures 4s ease-in-out infinite;
}
.scn-the-sea-the-sea .cairn {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 15px;
  background: linear-gradient(135deg, #6a5a4a 0%, #8a7a5a 50%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ss-cairn 8s ease-in-out infinite alternate;
}
.scn-the-sea-the-sea .sun-glow {
  position: absolute; top: 5%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d880 40%, transparent 70%);
  border-radius: 50%;
  animation: ss-sunglow 6s ease-in-out infinite alternate;
}
.scn-the-sea-the-sea .spear-planted {
  position: absolute; bottom: 35%; left: 22%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 0 2px rgba(0,0,0,0.5);
}
@keyframes ss-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ss-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ss-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ss-figures { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ss-cairn { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes ss-sunglow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:0.7; transform: scale(0.95) } }

/* scene 4: macrones-parley (calm + sunlit) */
.scn-macrones-parley {
  background: linear-gradient(180deg, #e0d8c0 0%, #c0d0e0 50%, #a0b8d0 100%), radial-gradient(ellipse at 50% 0, #f0e8d0 0%, transparent 50%);
}
.scn-macrones-parley .sky-warm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0dce8 100%);
  animation: mp-sky 12s ease-in-out infinite alternate;
}
.scn-macrones-parley .colchian-mountains {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: mp-mountains 14s ease-in-out infinite alternate;
}
.scn-macrones-parley .road-path {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(90deg, #a09070 0%, #c0b090 50%, #a09070 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: mp-road 5s ease-in-out infinite alternate;
}
.scn-macrones-parley .greek-group {
  position: absolute; bottom: 20%; left: 25%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 12px 0 0 #4a3a2a, 24px 0 0 #5a4a3a;
  transform-origin: bottom center;
  animation: mp-greeks 4s ease-in-out infinite;
}
.scn-macrones-parley .macrone-group {
  position: absolute; bottom: 20%; right: 25%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -10px 0 0 #5a4a3a, -20px 0 0 #6a5a4a;
  transform-origin: bottom center;
  animation: mp-macrones 4s ease-in-out infinite reverse;
}
.scn-macrones-parley .pledge-lance {
  position: absolute; bottom: 28%; left: 48%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 12px 0 0 #6a5a3a, -12px 0 0 #5a4a2a;
  animation: mp-lance 6s ease-in-out infinite alternate;
}
.scn-macrones-parley .guide-figure {
  position: absolute; bottom: 18%; left: 42%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-guide 3s ease-in-out infinite;
}
@keyframes mp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mp-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mp-road { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mp-greeks { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-1deg) } 60% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mp-macrones { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mp-lance { 0% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(8deg) } }
@keyframes mp-guide { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* Scene: xenophon-confronts-cheirisophus */
.scn-xenophon-confronts-cheirisophus {
  background: linear-gradient(180deg, #6b7a8d 0%, #4e5d70 40%, #2c3945 100%),
              radial-gradient(ellipse at 50% 30%, #8fa3b0 0%, transparent 70%);
}
.scn-xenophon-confronts-cheirisophus .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7c8b9a 0%, transparent 100%);
  animation: xcc-sky 15s ease-in-out infinite alternate;
}
.scn-xenophon-confronts-cheirisophus .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3c4a55 0%, #1f2a34 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-xenophon-confronts-cheirisophus .figure-left {
  position: absolute; bottom: 30%; left: 28%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1f2a35 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: xcc-fig-left 6s ease-in-out infinite;
}
.scn-xenophon-confronts-cheirisophus .figure-right {
  position: absolute; bottom: 30%; right: 28%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #4d5b6b 0%, #2c3849 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: xcc-fig-right 6s ease-in-out infinite alternate;
}
.scn-xenophon-confronts-cheirisophus .spear-left {
  position: absolute; bottom: 50%; left: 28%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #7a6b5a 0%, #4a3b2a 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(-15deg);
  animation: xcc-spear 4s ease-in-out infinite;
}
.scn-xenophon-confronts-cheirisophus .spear-right {
  position: absolute; bottom: 50%; right: 28%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #7a6b5a 0%, #4a3b2a 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(15deg);
  animation: xcc-spear 4s ease-in-out infinite alternate;
}
.scn-xenophon-confronts-cheirisophus .shadow-left {
  position: absolute; bottom: 25%; left: 24%; width: 45px; height: 8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: xcc-shadow 6s ease-in-out infinite;
}
.scn-xenophon-confronts-cheirisophus .shadow-right {
  position: absolute; bottom: 25%; right: 24%; width: 45px; height: 8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: xcc-shadow 6s ease-in-out infinite alternate;
}
.scn-xenophon-confronts-cheirisophus .dust {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 10px;
  background: linear-gradient(90deg, transparent, rgba(180,160,140,0.2) 50%, transparent);
  filter: blur(4px);
  animation: xcc-dust 10s linear infinite;
}
@keyframes xcc-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes xcc-fig-left { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(2deg); } }
@keyframes xcc-fig-right { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes xcc-spear { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg) translateY(-3px); } }
@keyframes xcc-shadow { 0%,100% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.1); } }
@keyframes xcc-dust { 0% { transform: translateX(-20%); } 100% { transform: translateX(120%); } }

/* Scene: guide-and-mountain-pass */
.scn-guide-and-mountain-pass {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #d2b48c 100%),
              radial-gradient(ellipse at 60% 60%, #f5deb3 0%, transparent 70%);
}
.scn-guide-and-mountain-pass .mountains-bg {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #9a8c6a 0%, #6b5b3a 100%);
  border-radius: 60% 40% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: gmp-mtn-bg 20s ease-in-out infinite alternate;
}
.scn-guide-and-mountain-pass .mountains-mid {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 45%;
  background: linear-gradient(180deg, #8b7355 0%, #4d3e2e 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: gmp-mtn-mid 25s ease-in-out infinite alternate;
}
.scn-guide-and-mountain-pass .guide-figure {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #544a3a 0%, #2e2518 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: gmp-guide 5s ease-in-out infinite;
}
.scn-guide-and-mountain-pass .enemy-fire {
  position: absolute; bottom: 18%; right: 28%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffa500 0%, #ff6347 50%, #8b0000 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,165,0,0.6);
  animation: gmp-fire 3s ease-in-out infinite alternate;
}
.scn-guide-and-mountain-pass .boulder-falling {
  position: absolute; top: 10%; left: 20%; width: 25px; height: 25px;
  background: radial-gradient(circle at 40% 40%, #888, #444);
  border-radius: 50%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  animation: gmp-boulder-fall 8s ease-in-out infinite;
}
.scn-guide-and-mountain-pass .boulder-stuck {
  position: absolute; top: 25%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #999, #555);
  border-radius: 40% 60% 50% 50% / 50% 50% 60% 40%;
  box-shadow: 3px 3px 10px rgba(0,0,0,0.5);
  animation: gmp-boulder-stuck 12s ease-in-out infinite alternate;
}
.scn-guide-and-mountain-pass .mist-layer {
  position: absolute; top: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2) 50%, transparent);
  filter: blur(8px);
  animation: gmp-mist 30s ease-in-out infinite;
}
@keyframes gmp-mtn-bg { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes gmp-mtn-mid { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes gmp-guide { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(8px) translateY(-2px) rotate(3deg); } }
@keyframes gmp-fire { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2) rotate(10deg); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }
@keyframes gmp-boulder-fall { 0% { transform: translateY(-30px) rotate(0deg); opacity: 0; } 10% { opacity: 1; } 50% { transform: translateY(80px) rotate(180deg); } 100% { transform: translateY(200px) rotate(360deg); opacity: 0; } }
@keyframes gmp-boulder-stuck { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gmp-mist { 0% { transform: translateX(-10%); opacity: 0.3; } 50% { transform: translateX(10%); opacity: 0.6; } 100% { transform: translateX(-10%); opacity: 0.3; } }

/* Scene: crossing-the-centrites */
.scn-crossing-the-centrites {
  background: linear-gradient(180deg, #ffb347 0%, #ff8c00 30%, #d2691e 70%, #8b4513 100%),
              radial-gradient(ellipse at 50% 20%, #ffd700 0%, transparent 70%);
}
.scn-crossing-the-centrites .river-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4682b4 0%, #1e90ff 30%, #00008b 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: ccr-water 10s ease-in-out infinite alternate;
}
.scn-crossing-the-centrites .riverbank-fore {
  position: absolute; bottom: 0; left: 0; right: 20%; height: 15%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 0 50% 0 0;
  animation: ccr-bank-fore 8s ease-in-out infinite alternate;
}
.scn-crossing-the-centrites .riverbank-back {
  position: absolute; bottom: 5%; left: 60%; right: 0; height: 10%;
  background: linear-gradient(180deg, #c4a265 0%, #8b7355 100%);
  border-radius: 50% 0 0 0;
  animation: ccr-bank-back 10s ease-in-out infinite alternate;
}
.scn-crossing-the-centrites .hoplite-wading {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #b22222 0%, #800000 100%); /* burgundy, not crimson */
  border-radius: 30% 30% 20% 20% / 45% 45% 20% 20%;
  transform-origin: bottom center;
  animation: ccr-hoplite 4s ease-in-out infinite;
}
.scn-crossing-the-centrites .arrow {
  position: absolute; top: 30%; right: 25%; width: 30px; height: 4px;
  background: linear-gradient(90deg, transparent, #8b4513 50%, transparent);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: ccr-arrow 3s linear infinite;
}
.scn-crossing-the-centrites .sunrise-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #ff7f50 0%, #ffa07a 30%, #ffd700 60%, transparent 100%);
  animation: ccr-sunrise 15s ease-in-out infinite alternate;
}
.scn-crossing-the-centrites .sun-disc {
  position: absolute; top: 10%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff5e6 0%, #ffd700 50%, #ff8c00 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.5);
  animation: ccr-sun 20s ease-in-out infinite alternate;
}
.scn-crossing-the-centrites .shadow-shimmer {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 5%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.1), transparent);
  filter: blur(4px);
  animation: ccr-shimmer 6s ease-in-out infinite;
}
@keyframes ccr-water { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes ccr-bank-fore { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ccr-bank-back { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ccr-hoplite { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(0deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(-2deg); } }
@keyframes ccr-arrow { 0% { transform: translateX(-10px) rotate(30deg); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateX(200px) rotate(30deg); opacity: 0; } }
@keyframes ccr-sunrise { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ccr-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(15px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }
@keyframes ccr-shimmer { 0%,100% { opacity: 0.3; } 50% { opacity: 0.7; } }

/* Scene: xenophon-dream-fetters */
.scn-xenophon-dream-fetters {
  background: linear-gradient(180deg, #191970 0%, #483d8b 40%, #6a5acd 70%, #9370db 100%),
              radial-gradient(ellipse at 50% 30%, #7b68ee 0%, transparent 70%);
}
.scn-xenophon-dream-fetters .dawn-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #483d8b 0%, #6a5acd 40%, #94a0d0 70%, transparent 100%);
  animation: xdf-dawn 20s ease-in-out infinite alternate;
}
.scn-xenophon-dream-fetters .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2b1a30 0%, #0f0a12 100%);
  border-radius: 20% 20% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.7);
}
.scn-xenophon-dream-fetters .xenophon-figure {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: xdf-xenophon 8s ease-in-out infinite alternate;
}
.scn-xenophon-dream-fetters .fetters {
  position: absolute; bottom: 30%; left: 40%; width: 15px; height: 5px;
  background: linear-gradient(90deg, #b8860b 0%, #daa520 50%, #b8860b 100%);
  border-radius: 3px;
  box-shadow: 0 0 5px 1px rgba(218,165,32,0.3);
  animation: xdf-fetters 8s ease-in-out infinite alternate;
}
.scn-xenophon-dream-fetters .dream-light {
  position: absolute; top: 20%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,255,200,0.1) 0%, transparent 70%);
  filter: blur(10px);
  animation: xdf-light 12s ease-in-out infinite alternate;
}
.scn-xenophon-dream-fetters .sacrificial-fire {
  position: absolute; bottom: 5%; right: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ff6347 0%, #8b0000 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,99,71,0.4);
  animation: xdf-fire 4s ease-in-out infinite alternate;
}
.scn-xenophon-dream-fetters .shadow-long {
  position: absolute; bottom: 5%; left: 35%; width: 50px; height: 8px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: xdf-shadow 8s ease-in-out infinite alternate;
}
@keyframes xdf-dawn { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes xdf-xenophon { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } }
@keyframes xdf-fetters { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.8; } 50% { transform: translateX(5px) translateY(-5px) rotate(10deg); opacity: 1; } 100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.8; } }
@keyframes xdf-light { 0% { transform: scale(0.8); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.6; } 100% { transform: scale(0.9); opacity: 0.4; } }
@keyframes xdf-fire { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes xdf-shadow { 0%,100% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } }

/* --- cyrus-death-and-aftermath (cd) --- */
.scn-cyrus-death-and-aftermath {
  background:
    linear-gradient(180deg, #b8a88a 0%, #8a7a5a 30%, #5a4a2a 100%),
    radial-gradient(ellipse at 50% 40%, rgba(220,200,160,0.25) 0%, transparent 60%);
}
.scn-cyrus-death-and-aftermath .sky-battle {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #c8b898 0%, #b8a888 40%, #a89878 100%);
  animation: cd-sky 14s ease-in-out infinite alternate;
}
.scn-cyrus-death-and-aftermath .sun-haze {
  position:absolute; top:6%; left:32%; width:90px; height:90px;
  background: radial-gradient(circle, rgba(240,220,180,0.35) 0%, transparent 70%);
  filter: blur(18px);
  animation: cd-haze 9s ease-in-out infinite alternate;
}
.scn-cyrus-death-and-aftermath .plain {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 40%, #3a2a0a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-cyrus-death-and-aftermath .tent-shadow {
  position:absolute; bottom:45%; right:12%; width:80px; height:50px;
  background: linear-gradient(135deg, #4a3a1a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 20% 80% 10% 90% / 60% 50% 50% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  transform: skewX(-8deg);
  animation: cd-tent 20s ease-in-out infinite alternate;
}
.scn-cyrus-death-and-aftermath .body-cyrus {
  position:absolute; bottom:22%; left:45%; width:50px; height:40px;
  background: radial-gradient(ellipse at 50% 30%, #5a3a1a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cd-body 5s ease-in-out infinite;
}
.scn-cyrus-death-and-aftermath .spear-broken {
  position:absolute; bottom:30%; left:38%; width:4px; height:60px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a0a 100%);
  border-radius: 2px;
  transform: rotate(40deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: cd-spear 12s ease-in-out infinite alternate;
}
.scn-cyrus-death-and-aftermath .fleeing-figure {
  position:absolute; bottom:20%; right:20%; width:16px; height:36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-flee 3s ease-in-out infinite;
}
.scn-cyrus-death-and-aftermath .dust-drift {
  position:absolute; bottom:15%; left:10%; width:120px; height:30px;
  background: rgba(180,160,120,0.12);
  filter: blur(12px);
  border-radius: 50%;
  animation: cd-dust 25s linear infinite;
}
.scn-cyrus-death-and-aftermath .dust-drift-2 {
  position:absolute; bottom:20%; right:5%; width:90px; height:20px;
  background: rgba(180,160,120,0.08);
  filter: blur(10px);
  border-radius: 50%;
  animation: cd-dust-2 35s linear infinite reverse;
}
@keyframes cd-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cd-haze { 0% { transform:scale(1) translate(0,0); opacity:0.5 } 50% { transform:scale(1.2) translate(4px,-2px); opacity:0.8 } 100% { transform:scale(0.95) translate(-2px,1px); opacity:0.6 } }
@keyframes cd-tent { 0% { transform:skewX(-8deg) translateY(0) } 50% { transform:skewX(-6deg) translateY(-2px) } 100% { transform:skewX(-10deg) translateY(0) } }
@keyframes cd-body { 0%,100% { transform:rotate(20deg) translateY(0) } 50% { transform:rotate(22deg) translateY(-1px) } }
@keyframes cd-spear { 0% { transform:rotate(40deg) } 50% { transform:rotate(36deg) } 100% { transform:rotate(42deg) } }
@keyframes cd-flee { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(8px) rotate(-4deg) } 50% { transform:translateX(16px) rotate(2deg) } 75% { transform:translateX(24px) rotate(-2deg) } 100% { transform:translateX(32px) rotate(0deg) } }
@keyframes cd-dust { 0% { transform:translateX(-40px) scale(1); opacity:0 } 20% { opacity:0.6 } 80% { opacity:0.4 } 100% { transform:translateX(140vw) scale(1.5); opacity:0 } }
@keyframes cd-dust-2 { 0% { transform:translateX(0) scale(1); opacity:0 } 15% { opacity:0.4 } 85% { opacity:0.3 } 100% { transform:translateX(-120vw) scale(1.3); opacity:0 } }

/* --- clearchus-defiant-truce (cdt) --- */
.scn-clearchus-defiant-truce {
  background:
    linear-gradient(180deg, #d8d0c0 0%, #c0b8a8 40%, #a09888 100%),
    radial-gradient(ellipse at 50% 100%, rgba(200,180,150,0.3) 0%, transparent 70%);
}
.scn-clearchus-defiant-truce .sky-bright {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 50%, #b8b0a0 100%);
  animation: cdt-sky 16s ease-in-out infinite alternate;
}
.scn-clearchus-defiant-truce .horizon-line {
  position:absolute; bottom:50%; left:0; right:0; height:4px;
  background: linear-gradient(90deg, transparent 0%, #8a7a5a 20%, #8a7a5a 80%, transparent 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-clearchus-defiant-truce .hoplite-shield {
  position:absolute; bottom:30%; left:15%; width:90px; height:100px;
  background: radial-gradient(ellipse at 50% 50%, #b87858 0%, #a06848 40%, #7a4a30 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 10px 14px 20px rgba(0,0,0,0.35), inset -4px -4px 12px rgba(0,0,0,0.4);
  transform: rotate(-6deg);
  animation: cdt-shield 4s ease-in-out infinite;
}
.scn-clearchus-defiant-truce .hophite-spear {
  position:absolute; bottom:28%; left:22%; width:4px; height:110px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(12deg);
  transform-origin: bottom center;
  box-shadow: 2px 0 4px rgba(0,0,0,0.2);
  animation: cdt-spear 5s ease-in-out infinite alternate;
}
.scn-clearchus-defiant-truce .clearchus-figure {
  position:absolute; bottom:22%; left:12%; width:28px; height:52px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: cdt-stand 6s ease-in-out infinite;
}
.scn-clearchus-defiant-truce .envoy-figure {
  position:absolute; bottom:22%; right:20%; width:22px; height:48px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: cdt-envoy 6s ease-in-out infinite;
}
.scn-clearchus-defiant-truce .ground-dust {
  position:absolute; bottom:18%; left:0; right:0; height:40px;
  background: linear-gradient(180deg, rgba(160,140,110,0.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: cdt-ground 8s ease-in-out infinite alternate;
}
.scn-clearchus-defiant-truce .heat-shimmer {
  position:absolute; bottom:45%; left:10%; width:80px; height:40px;
  background: linear-gradient(180deg, rgba(200,190,170,0.12) 0%, transparent 100%);
  filter: blur(10px);
  transform: skewX(-10deg);
  animation: cdt-shimmer 4s ease-in-out infinite alternate;
}
@keyframes cdt-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cdt-shield { 0%,100% { transform:rotate(-6deg) translateY(0) } 50% { transform:rotate(-4deg) translateY(-2px) } }
@keyframes cdt-spear { 0% { transform:rotate(12deg) } 50% { transform:rotate(14deg) } 100% { transform:rotate(10deg) } }
@keyframes cdt-stand { 0%,100% { transform:translateX(0) } 50% { transform:translateX(2px) } }
@keyframes cdt-envoy { 0%,100% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(-2px) rotate(2deg) } }
@keyframes cdt-ground { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes cdt-shimmer { 0% { opacity:0; transform:skewX(-10deg) translateX(-10px) } 50% { opacity:0.6; transform:skewX(-8deg) translateX(10px) } 100% { opacity:0; transform:skewX(-12deg) translateX(20px) } }

/* --- night-march-to-ariaeus (nm) --- */
.scn-night-march-to-ariaeus {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #12122a 30%, #1a1a3a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 20%, rgba(60,60,120,0.3) 0%, transparent 60%);
}
.scn-night-march-to-ariaeus .night-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0e0e22 0%, #141432 40%, #1a1a3a 100%);
  animation: nm-sky 20s ease-in-out infinite alternate;
}
.scn-night-march-to-ariaeus .moon-disk {
  position:absolute; top:12%; right:25%; width:30px; height:30px;
  background: radial-gradient(circle, #c8c8e0 0%, #9898b8 80%, #6868a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(150,150,200,0.3);
  animation: nm-moon 12s ease-in-out infinite alternate;
}
.scn-night-march-to-ariaeus .moon-glow {
  position:absolute; top:8%; right:20%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(150,150,220,0.15) 0%, transparent 70%);
  filter: blur(16px);
  animation: nm-glow 12s ease-in-out infinite alternate;
}
.scn-night-march-to-ariaeus .ridge-back {
  position:absolute; bottom:35%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
  animation: nm-ridge 18s ease-in-out infinite alternate;
}
.scn-night-march-to-ariaeus .ridge-front {
  position:absolute; bottom:20%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #12122a 0%, #080818 100%);
  border-radius: 30% 50% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: nm-ridge-front 14s ease-in-out infinite alternate;
}
.scn-night-march-to-ariaeus .march-column {
  position:absolute; bottom:18%; left:30%; width:40px; height:60px;
  background: linear-gradient(180deg, rgba(20,20,40,0.8) 0%, rgba(10,10,20,0.9) 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: nm-march 8s ease-in-out infinite;
}
.scn-night-march-to-ariaeus .march-column-2 {
  position:absolute; bottom:18%; left:38%; width:36px; height:56px;
  background: linear-gradient(180deg, rgba(20,20,40,0.7) 0%, rgba(10,10,20,0.85) 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: nm-march-2 8s ease-in-out infinite 2s;
}
.scn-night-march-to-ariaeus .lantern-dot {
  position:absolute; bottom:25%; left:33%; width:4px; height:4px;
  background: #c8a060;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,96,0.6);
  animation: nm-lantern 3s ease-in-out infinite alternate;
}
.scn-night-march-to-ariaeus .shadow-veil {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  animation: nm-veil 10s ease-in-out infinite alternate;
}
@keyframes nm-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nm-moon { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(-3px) scale(1.04) } 100% { transform:translateX(2px) scale(0.98) } }
@keyframes nm-glow { 0% { opacity:0.5; transform:scale(1) } 50% { opacity:0.8; transform:scale(1.1) } 100% { opacity:0.6; transform:scale(0.95) } }
@keyframes nm-ridge { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(1px) } }
@keyframes nm-ridge-front { 0% { transform:translateY(0) } 50% { transform:translateY(1px) } 100% { transform:translateY(-1px) } }
@keyframes nm-march { 0%,100% { transform:translateX(0) } 50% { transform:translateX(4px) } }
@keyframes nm-march-2 { 0%,100% { transform:translateX(0) } 50% { transform:translateX(-3px) } }
@keyframes nm-lantern { 0% { opacity:0.5; transform:scale(0.9) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:0.7; transform:scale(1) } }
@keyframes nm-veil { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

/* --- trench-crossing-and-truce (tc) --- */
.scn-trench-crossing-and-truce {
  background:
    linear-gradient(180deg, #d8d0b0 0%, #c8b890 40%, #a89868 100%),
    radial-gradient(ellipse at 50% 30%, rgba(220,200,160,0.3) 0%, transparent 60%);
}
.scn-trench-crossing-and-truce .pale-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #e0d8c0 0%, #c8c0a8 50%, #b0a890 100%);
  animation: tc-sky 18s ease-in-out infinite alternate;
}
.scn-trench-crossing-and-truce .warm-sun {
  position:absolute; top:8%; left:20%; width:50px; height:50px;
  background: radial-gradient(circle, #f0e0b0 0%, #e0c890 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(220,190,120,0.3);
  animation: tc-sun 14s ease-in-out infinite alternate;
}
.scn-trench-crossing-and-truce .sand-floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #b0a070 0%, #907850 50%, #786040 100%);
  border-radius: 20% 30% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 16px 32px rgba(0,0,0,0.2);
}
.scn-trench-crossing-and-truce .trench-water {
  position:absolute; bottom:28%; left:5%; width:40%; height:18px;
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.2);
  animation: tc-water 6s ease-in-out infinite alternate;
}
.scn-trench-crossing-and-truce .trench-water-2 {
  position:absolute; bottom:22%; right:5%; width:35%; height:14px;
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.15);
  animation: tc-water-2 7s ease-in-out infinite alternate 1s;
}
.scn-trench-crossing-and-truce .palm-trunk {
  position:absolute; bottom:30%; right:18%; width:12px; height:70px;
  background: linear-gradient(90deg, #7a5a3a 0%, #8a6a4a 30%, #7a5a3a 100%);
  border-radius: 4px 4px 2px 2px;
  transform: rotate(-6deg);
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
  animation: tc-trunk 10s ease-in-out infinite alternate;
}
.scn-trench-crossing-and-truce .palm-fronds {
  position:absolute; bottom:73%; right:12%; width:60px; height:30px;
  background: radial-gradient(ellipse at 50% 100%, #5a7a4a 0%, #3a5a2a 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-10deg) scaleX(0.8);
  box-shadow: -4px -4px 8px rgba(0,0,0,0.1);
  animation: tc-fronds 8s ease-in-out infinite alternate;
}
.scn-trench-crossing-and-truce .worker-figure {
  position:absolute; bottom:15%; left:25%; width:16px; height:38px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-work 5s ease-in-out infinite;
}
.scn-trench-crossing-and-truce .worker-figure-2 {
  position:absolute; bottom:15%; left:35%; width:16px; height:36px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-work-2 5s ease-in-out infinite 2s;
}
@keyframes tc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tc-sun { 0% { transform:translateX(0) scale(1); opacity:0.8 } 50% { transform:translateX(4px) scale(1.04); opacity:1 } 100% { transform:translateX(-2px) scale(0.97); opacity:0.85 } }
@keyframes tc-water { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.04) } 100% { transform:scaleX(0.98) } }
@keyframes tc-water-2 { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.06) } 100% { transform:scaleX(0.97) } }
@keyframes tc-trunk { 0% { transform:rotate(-6deg) } 50% { transform:rotate(-4deg) } 100% { transform:rotate(-7deg) } }
@keyframes tc-fronds { 0% { transform:rotate(-10deg) scaleX(0.8) } 50% { transform:rotate(-6deg) scaleX(0.85) } 100% { transform:rotate(-12deg) scaleX(0.78) } }
@keyframes tc-work { 0%,100% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(8px) translateY(0) rotate(0deg) } 75% { transform:translateX(12px) translateY(-1px) rotate(-2deg) } }
@keyframes tc-work-2 { 0%,100% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(-4px) translateY(-1px) rotate(-2deg) } 50% { transform:translateX(-8px) translateY(0) rotate(0deg) } 75% { transform:translateX(-12px) translateY(-1px) rotate(2deg) } }

.scn-byzantium-revolt {
  background: linear-gradient(180deg, #f7e8c8 0%, #d4a86a 40%, #a67c4a 70%), radial-gradient(ellipse at 70% 20%, #f0e0b0 10%, transparent 60%);
}
.scn-byzantium-revolt .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #f0e8c0 80%);
  animation: bz-dust 12s ease-in-out infinite alternate;
}
.scn-byzantium-revolt .sun-blaze {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff3c0 0%, #ffd966 60%, transparent 80%);
  box-shadow: 0 0 120px 40px rgba(255, 215, 100, 0.4);
  animation: bz-rotate 20s linear infinite;
}
.scn-byzantium-revolt .city-wall {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #b29060 0%, #806040 60%, #604030 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
  animation: bz-shake 4s ease-in-out infinite;
}
.scn-byzantium-revolt .city-gate {
  position: absolute; bottom: 25%; left: 40%; right: 40%; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px #000, 0 10px 20px rgba(0,0,0,0.6);
  animation: bz-gate 6s ease-in-out infinite alternate;
}
.scn-byzantium-revolt .soldier-mob {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
  filter: blur(2px);
  animation: bz-mob-shift 8s ease-in-out infinite;
}
.scn-byzantium-revolt .spear-forest {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 35%;
  background: repeating-linear-gradient(90deg, #5a4040 0px 2px, transparent 2px 18px);
  clip-path: polygon(0% 100%, 10% 0%, 20% 100%, 30% 0%, 40% 100%, 50% 0%, 60% 100%, 70% 0%, 80% 100%, 90% 0%, 100% 100%);
  animation: bz-spear 3s ease-in-out infinite alternate;
}
.scn-byzantium-revolt .xenophon-figure {
  position: absolute; bottom: 18%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 60%, #0a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bz-xenophon 5s ease-in-out infinite;
}
.scn-byzantium-revolt .dust {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 100%, rgba(200,160,100,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: bz-dust-puff 10s ease-in-out infinite alternate;
}
@keyframes bz-dust { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(0.95); } }
@keyframes bz-rotate { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(0.9); } }
@keyframes bz-shake { 0% { transform: translateY(0); } 25% { transform: translateY(-3px); } 50% { transform: translateY(2px); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes bz-gate { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(4px) scaleX(0.95); } 100% { transform: translateX(-4px) scaleX(1.02); } }
@keyframes bz-mob-shift { 0% { transform: translateX(0); opacity: 0.6; } 50% { transform: translateX(15px); opacity: 1; } 100% { transform: translateX(-10px); opacity: 0.7; } }
@keyframes bz-spear { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes bz-xenophon { 0% { transform: translateY(0) rotate(-3deg); } 30% { transform: translateY(-2px) rotate(0deg); } 60% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes bz-dust-puff { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.6; } 100% { transform: scale(0.8); opacity: 0.2; } }

.scn-anarchus-new-orders {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 40%, #0a0502 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
.scn-anarchus-new-orders .tent-roof {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 80%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: an-roof 15s ease-in-out infinite;
}
.scn-anarchus-new-orders .tent-back {
  position: absolute; inset: 10% 5% 30% 5%;
  background: radial-gradient(ellipse at 50% 60%, #1a0e05 0%, #0a0502 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 40px #000;
  animation: an-pulse 12s ease-in-out infinite alternate;
}
.scn-anarchus-new-orders .table {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
  animation: an-table 20s ease-in-out infinite;
}
.scn-anarchus-new-orders .lamp-glow {
  position: absolute; bottom: 55%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffa040 0%, #e08030 40%, transparent 70%);
  box-shadow: 0 0 60px 20px rgba(255,160,64,0.5);
  animation: an-lamp 4s ease-in-out infinite;
}
.scn-anarchus-new-orders .coeratadas-shadow {
  position: absolute; bottom: 25%; left: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #0a0502 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: an-leave 8s ease-in-out infinite;
}
.scn-anarchus-new-orders .anaxibius-seat {
  position: absolute; bottom: 28%; right: 15%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: an-sit 10s ease-in-out infinite;
}
.scn-anarchus-new-orders .split-generals {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 15%;
  background: repeating-linear-gradient(90deg, #0a0502 0px 12px, transparent 12px 24px, #0a0502 24px 36px, transparent 36px 48px);
  filter: blur(2px);
  animation: an-split 6s ease-in-out infinite alternate;
}
.scn-anarchus-new-orders .candle-flame {
  position: absolute; bottom: 52%; left: 60%; width: 8px; height: 15px;
  background: radial-gradient(ellipse at 50% 0%, #ffe080 0%, #ffa040 60%, transparent 100%);
  box-shadow: 0 0 20px 5px rgba(255,160,64,0.6);
  animation: an-flame 2s ease-in-out infinite alternate;
}
@keyframes an-roof { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(1deg); } 100% { transform: scaleY(0.98) rotate(-1deg); } }
@keyframes an-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes an-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes an-lamp { 0% { box-shadow: 0 0 50px 15px rgba(255,160,64,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 80px 25px rgba(255,160,64,0.7); opacity: 1; } 100% { box-shadow: 0 0 60px 20px rgba(255,160,64,0.5); opacity: 0.8; } }
@keyframes an-leave { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(10px) translateY(-3px) rotate(5deg); } 60% { transform: translateX(20px) translateY(0) rotate(-5deg); } 100% { transform: translateX(40px) translateY(-4px) rotate(0deg); } }
@keyframes an-sit { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9) translateY(-2px); } 100% { transform: scaleY(1.05); } }
@keyframes an-split { 0% { transform: translateX(0); opacity: 0.5; } 50% { transform: translateX(8px); opacity: 1; } 100% { transform: translateX(-8px); opacity: 0.3; } }
@keyframes an-flame { 0% { transform: scaleY(1) rotate(-5deg); } 50% { transform: scaleY(1.3) rotate(5deg) translateX(1px); } 100% { transform: scaleY(0.9) rotate(-3deg); } }

.scn-xenophon-rides-to-seuthes {
  background: linear-gradient(180deg, #0a1220 0%, #1a2a3a 30%, #2a3a4a 60%), radial-gradient(ellipse at 80% 10%, #406090 0%, transparent 70%);
}
.scn-xenophon-rides-to-seuthes .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1220 0%, #1a2a3a 70%);
  animation: xe-sky 25s ease-in-out infinite alternate;
}
.scn-xenophon-rides-to-seuthes .moon {
  position: absolute; top: 8%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #c0c8d0 60%, transparent 80%);
  box-shadow: 0 0 80px 30px rgba(192,200,208,0.4);
  animation: xe-moon 30s linear infinite;
}
.scn-xenophon-rides-to-seuthes .sea {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a1a2a 0%, #152a3a 100%);
  clip-path: polygon(0% 0%, 20% 20%, 40% 5%, 60% 25%, 80% 10%, 100% 15%, 100% 100%, 0% 100%);
  animation: xe-waves 8s ease-in-out infinite alternate;
}
.scn-xenophon-rides-to-seuthes .ship-blockade {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: repeating-linear-gradient(90deg, #2a1a1a 0px 20px, transparent 20px 40px);
  clip-path: polygon(0% 100%, 10% 20%, 30% 100%, 50% 15%, 70% 100%, 90% 25%, 100% 100%);
  animation: xe-ships 12s ease-in-out infinite;
}
.scn-xenophon-rides-to-seuthes .horse-rider {
  position: absolute; bottom: 15%; left: 35%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: xe-horse 4s ease-in-out infinite;
}
.scn-xenophon-rides-to-seuthes .path-dust {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(60,50,40,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: xe-dust 6s ease-in-out infinite alternate;
}
.scn-xenophon-rides-to-seuthes .banner {
  position: absolute; bottom: 25%; left: 50%; width: 6px; height: 25px;
  background: #4a2a1a;
  animation: xe-banner 5s ease-in-out infinite;
}
@keyframes xe-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes xe-moon { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(-10px) scale(0.95); } }
@keyframes xe-waves { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(2px) rotate(-2deg); } }
@keyframes xe-ships { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(15px) scaleY(0.95); } 100% { transform: translateX(-15px) scaleY(1.02); } }
@keyframes xe-horse { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(8px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(-3deg); } }
@keyframes xe-dust { 0% { transform: scale(1) translateX(0); opacity: 0.3; } 50% { transform: scale(1.2) translateX(10px); opacity: 0.7; } 100% { transform: scale(0.8) translateX(-5px); opacity: 0.2; } }
@keyframes xe-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }

.scn-pact-with-seuthes {
  background: radial-gradient(ellipse at 30% 60%, #4a2a1a 0%, #1a0e05 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.9);
}
.scn-pact-with-seuthes .tent-interior {
  position: absolute; inset: 5% 10% 10% 10%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 80%);
  border-radius: 20% 20% 5% 5% / 10% 10% 5% 5%;
  animation: pa-tent 15s ease-in-out infinite alternate;
}
.scn-pact-with-seuthes .conference-table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: pa-table 20s ease-in-out infinite;
}
.scn-pact-with-seuthes .candle {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 25px;
  margin-left: -10px;
  background: linear-gradient(180deg, #ffd080 0%, #e0a050 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 40px 10px rgba(255,200,100,0.5);
  animation: pa-candle 4s ease-in-out infinite;
}
.scn-pact-with-seuthes .xenophon-profile {
  position: absolute; bottom: 18%; left: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 40% 30% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pa-xen 6s ease-in-out infinite;
}
.scn-pact-with-seuthes .seuthes-profile {
  position: absolute; bottom: 18%; right: 15%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 50% 40% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pa-seuthes 7s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-pact-with-seuthes .guard-silhouette {
  position: absolute; bottom: 20%; left: 5%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #0a0502 0%, #000 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  animation: pa-guard 12s ease-in-out infinite;
}
.scn-pact-with-seuthes .map-scroll {
  position: absolute; bottom: 22%; left: 35%; right: 35%; height: 4%;
  background: linear-gradient(90deg, #c8a870 0%, #e0c090 50%, #c8a870 100%);
  border-radius: 10px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: pa-map 8s ease-in-out infinite alternate;
}
.scn-pact-with-seuthes .reward-pouch {
  position: absolute; bottom: 15%; right: 25%; width: 18px; height: 18px;
  background: radial-gradient(circle, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.4);
  animation: pa-pouch 5s ease-in-out infinite;
}
@keyframes pa-tent { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.01) rotate(0.5deg); } 100% { transform: scaleY(0.99) rotate(-0.5deg); } }
@keyframes pa-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes pa-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; } 50% { transform: scaleY(1.1) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.9) rotate(-1deg); opacity: 0.8; } }
@keyframes pa-xen { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(2deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes pa-seuthes { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(0) translateY(0) rotate(-2deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes pa-guard { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes pa-map { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes pa-pouch { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px,-2px) scale(1.1); } 100% { transform: translate(-1px,1px) scale(0.9); } }

.scn-darius-sons-and-cyrus-ambition {
  background: linear-gradient(135deg, #2b1e16 0%, #4a3528 50%, #1f1510 100%),
              radial-gradient(ellipse at 50% 30%, #8a6b4e 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-darius-sons-and-cyrus-ambition .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 25%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1510 100%);
  border-right: 2px solid #4a3528;
  animation: ds1-pillar 8s ease-in-out infinite alternate;
}
.scn-darius-sons-and-cyrus-ambition .wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 25%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1510 100%);
  border-left: 2px solid #4a3528;
  animation: ds1-pillar 8s ease-in-out infinite alternate-reverse;
}
.scn-darius-sons-and-cyrus-ambition .throne {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(135deg, #6b4f3a 0%, #4a3528 50%, #2b1e16 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: ds1-throne 12s ease-in-out infinite;
}
.scn-darius-sons-and-cyrus-ambition .figure-left {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds1-fig-left 5s ease-in-out infinite;
}
.scn-darius-sons-and-cyrus-ambition .figure-right {
  position: absolute; bottom: 22%; right: 38%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3528 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds1-fig-right 6s ease-in-out infinite;
}
.scn-darius-sons-and-cyrus-ambition .figure-back {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 36px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2b1e16 0%, #1f1510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: ds1-fig-back 7s ease-in-out infinite;
}
.scn-darius-sons-and-cyrus-ambition .lamp {
  position: absolute; top: 30%; left: 50%; width: 10px; height: 14px; transform: translateX(-50%);
  background: radial-gradient(circle, #d9a066 0%, #b07844 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.4);
  animation: ds1-lamp 3s ease-in-out infinite alternate;
}
.scn-darius-sons-and-cyrus-ambition .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.6) 100%);
  animation: ds1-shadow 10s ease-in-out infinite alternate;
}
@keyframes ds1-pillar { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ds1-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes ds1-fig-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ds1-fig-right { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ds1-fig-back { 0%,100% { opacity: 0.5; } 50% { opacity: 0.7; } }
@keyframes ds1-lamp { 0% { box-shadow: 0 0 20px 5px #b07844, 0 0 40px 10px rgba(176,120,68,0.3); } 50% { box-shadow: 0 0 40px 15px #d9a066, 0 0 80px 25px rgba(217,160,102,0.5); } 100% { box-shadow: 0 0 25px 8px #b07844, 0 0 50px 15px rgba(176,120,68,0.35); } }
@keyframes ds1-shadow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }

.scn-cyrus-march-from-sardis {
  background: linear-gradient(180deg, #7ab8d4 0%, #e6d5a8 60%, #c4a882 100%),
              radial-gradient(ellipse at 30% 80%, #d4b88c 0%, transparent 50%);
}
.scn-cyrus-march-from-sardis .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a90b8 0%, #7ab8d4 100%); animation: cm-sky 15s ease-in-out infinite alternate; }
.scn-cyrus-march-from-sardis .horizon { position: absolute; bottom: 35%; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #b89a6a 0%, #8c7a5a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.2); animation: cm-horizon 20s ease-in-out infinite alternate; }
.scn-cyrus-march-from-sardis .sun { position: absolute; top: 20%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #ffe680 0%, #ffcc44 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px #ffcc44, 0 0 120px 40px rgba(255,204,68,0.3); animation: cm-sun 6s ease-in-out infinite alternate; }
.scn-cyrus-march-from-sardis .soldier-row-1 { position: absolute; bottom: 33%; left: 10%; width: 80%; height: 30px; background: repeating-linear-gradient(90deg, transparent 0px, transparent 12px, #3a2a1a 12px, #3a2a1a 18px, transparent 18px, transparent 30px); animation: cm-march 8s linear infinite; }
.scn-cyrus-march-from-sardis .soldier-row-2 { position: absolute; bottom: 30%; left: 15%; width: 70%; height: 28px; background: repeating-linear-gradient(90deg, transparent 0px, transparent 14px, #2a1a0a 14px, #2a1a0a 20px, transparent 20px, transparent 32px); animation: cm-march 10s linear infinite reverse; }
.scn-cyrus-march-from-sardis .dust { position: absolute; bottom: 32%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, rgba(200,180,140,0.4) 0%, transparent 100%); filter: blur(8px); animation: cm-dust 12s ease-in-out infinite; }
.scn-cyrus-march-from-sardis .spear { position: absolute; bottom: 36%; left: 45%; width: 4px; height: 50px; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: cm-spear 4s ease-in-out infinite alternate; }
@keyframes cm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cm-horizon { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cm-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes cm-march { 0% { background-position-x: 0; } 100% { background-position-x: 60px; } }
@keyframes cm-dust { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(1); } }
@keyframes cm-spear { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

.scn-clearchus-vows-and-soldiers-mutiny {
  background: linear-gradient(180deg, #d4c4a0 0%, #c4a872 100%),
              radial-gradient(ellipse at 30% 70%, #e6d5a8 0%, transparent 60%);
}
.scn-clearchus-vows-and-soldiers-mutiny .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #b89a6a 0%, #8c7a5a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; animation: cv-ground 10s ease-in-out infinite alternate; }
.scn-clearchus-vows-and-soldiers-mutiny .clearchus { position: absolute; bottom: 20%; left: 40%; width: 30px; height: 50px; background: linear-gradient(180deg, #6b4f3a 0%, #4a3528 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-weep 4s ease-in-out infinite; }
.scn-clearchus-vows-and-soldiers-mutiny .soldier-1 { position: absolute; bottom: 18%; left: 25%; width: 26px; height: 48px; background: linear-gradient(180deg, #5e3a2a 0%, #3a2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-shift 5s ease-in-out infinite; }
.scn-clearchus-vows-and-soldiers-mutiny .soldier-2 { position: absolute; bottom: 16%; left: 55%; width: 26px; height: 46px; background: linear-gradient(180deg, #5e3a2a 0%, #3a2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-shift 6s ease-in-out infinite reversed; }
.scn-clearchus-vows-and-soldiers-mutiny .soldier-3 { position: absolute; bottom: 14%; left: 70%; width: 28px; height: 50px; background: linear-gradient(180deg, #6b4f3a 0%, #4a3528 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-shift 7s ease-in-out infinite; }
.scn-clearchus-vows-and-soldiers-mutiny .weapon { position: absolute; bottom: 24%; left: 38%; width: 4px; height: 40px; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: cv-shake 3s ease-in-out infinite alternate; }
.scn-clearchus-vows-and-soldiers-mutiny .tear { position: absolute; bottom: 30%; left: 42%; width: 6px; height: 6px; background: radial-gradient(circle, #c0d8e8 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 10px 3px #a0c0d0; animation: cv-tear 4s ease-in-out infinite; }
@keyframes cv-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes cv-weep { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cv-shift { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cv-shake { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); } }
@keyframes cv-tear { 0% { opacity: 1; transform: translate(0,0) scale(1); } 50% { opacity: 0.8; transform: translate(2px,5px) scale(0.8); } 100% { opacity: 0; transform: translate(4px,12px) scale(0.2); } }

.scn-crossing-the-euphrates {
  background: linear-gradient(180deg, #a8c8d8 0%, #d4e0d0 40%, #b8c8a0 100%),
              radial-gradient(ellipse at 60% 50%, #d0dcc0 0%, transparent 70%);
}
.scn-crossing-the-euphrates .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #7ab8d4 0%, #a8c8d8 100%); animation: ce-sky 18s ease-in-out infinite alternate; }
.scn-crossing-the-euphrates .sun { position: absolute; top: 15%; left: 65%; width: 50px; height: 50px; background: radial-gradient(circle, #ffe8b0 0%, #ffcc88 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px #ffcc88, 0 0 160px 60px rgba(255,204,136,0.3); animation: ce-sun 10s ease-in-out infinite alternate; }
.scn-crossing-the-euphrates .river { position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.2); animation: ce-river 12s ease-in-out infinite alternate; }
.scn-crossing-the-euphrates .banks { position: absolute; bottom: 28%; left: 0; right: 0; height: 6%; background: linear-gradient(180deg, #9aba7a 0%, #6a8a4a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: ce-banks 14s ease-in-out infinite alternate; }
.scn-crossing-the-euphrates .figure-crossing { position: absolute; bottom: 35%; left: 40%; width: 20px; height: 40px; background: linear-gradient(180deg, #4a3528 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ce-walk 5s ease-in-out infinite; }
.scn-crossing-the-euphrates .horse { position: absolute; bottom: 34%; left: 52%; width: 40px; height: 30px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 40% 50% 30% 30%; transform-origin: bottom center; animation: ce-walk 7s ease-in-out infinite reverse; }
.scn-crossing-the-euphrates .ripple { position: absolute; bottom: 38%; left: 48%; width: 14px; height: 6px; background: radial-gradient(ellipse, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: ce-ripple 3s ease-in-out infinite alternate; }
@keyframes ce-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ce-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.02) translate(2px,-2px); } 100% { transform: scale(0.98) translate(-1px,1px); } }
@keyframes ce-river { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes ce-banks { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ce-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(12px) rotate(-1deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes ce-ripple { 0% { opacity: 0.6; transform: scale(1) translateX(0); } 50% { opacity: 1; transform: scale(1.2) translateX(8px); } 100% { opacity: 0.3; transform: scale(0.8) translateX(16px); } }

.scn-slingers-and-cavalry-enrolled {
  background: linear-gradient(180deg, #6fa8dc 0%, #f0d890 50%, #d4a050 100%),
              radial-gradient(ellipse at 70% 20%, #fce68b 0%, transparent 50%);
}
.scn-slingers-and-cavalry-enrolled .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8fc5e8 0%, transparent 100%);
  animation: sc-sky 8s ease-in-out infinite alternate;
}
.scn-slingers-and-cavalry-enrolled .sun {
  position: absolute; top: 12%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff3c0 0%, #fce68b 60%, transparent 100%);
  border-radius: 50%;
  animation: sc-sun 6s ease-in-out infinite;
  box-shadow: 0 0 40px 20px rgba(252,230,139,0.3);
}
.scn-slingers-and-cavalry-enrolled .ravine {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  animation: sc-ravine 10s ease-in-out infinite alternate;
}
.scn-slingers-and-cavalry-enrolled .city-ruin {
  position: absolute; bottom: 28%; left: 15%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #8b7355 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: sc-ruin 12s ease-in-out infinite;
}
.scn-slingers-and-cavalry-enrolled .cavalry {
  position: absolute; bottom: 22%; left: 38%; width: 90px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: sc-charge 3s linear infinite;
  filter: blur(1px);
}
.scn-slingers-and-cavalry-enrolled .slinger {
  position: absolute; bottom: 18%; left: 60%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #6b4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-sling 1.5s ease-in-out infinite;
}
.scn-slingers-and-cavalry-enrolled .corpse {
  position: absolute; bottom: 16%; left: 72%; width: 30px; height: 14px;
  background: linear-gradient(180deg, #c8553d 0%, #5e1a1d 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: sc-corpse 4s ease-in-out infinite alternate;
}
@keyframes sc-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes sc-sun { 0% { transform: scale(1); opacity: 0.9 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(1); opacity: 0.85 } }
@keyframes sc-ravine { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes sc-ruin { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sc-charge { 0% { transform: translateX(0) } 25% { transform: translateX(15px) } 50% { transform: translateX(30px) } 75% { transform: translateX(15px) } 100% { transform: translateX(0) } }
@keyframes sc-sling { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-5px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes sc-corpse { 0% { opacity: 1; transform: rotate(-20deg) } 50% { opacity: 0.6; transform: rotate(-15deg) } 100% { opacity: 1; transform: rotate(-20deg) } }

.scn-hillock-fighting {
  background: linear-gradient(180deg, #e8c878 0%, #d4a050 40%, #8b6f3a 100%),
              radial-gradient(ellipse at 50% 100%, #b08040 0%, transparent 60%);
}
.scn-hillock-fighting .sky { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #f0e0a0 0%, transparent 100%); animation: hf-sky 10s ease-in-out infinite alternate; }
.scn-hillock-fighting .sun { position: absolute; top: 8%; right: 15%; width: 60px; height: 60px; background: radial-gradient(circle, #fff3c0 0%, #fce68b 60%, transparent 100%); border-radius: 50%; animation: hf-sun 8s ease-in-out infinite; box-shadow: 0 0 60px 30px rgba(252,230,139,0.4); }
.scn-hillock-fighting .hillock { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #8b6f3a 0%, #5a3a1a 100%); border-radius: 30% 70% 0 0 / 100% 50% 0 0; animation: hf-hillock 15s ease-in-out infinite alternate; }
.scn-hillock-fighting .ridge { position: absolute; bottom: 30%; left: 60%; width: 120px; height: 50px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0; animation: hf-ridge 12s ease-in-out infinite; }
.scn-hillock-fighting .soldier-1 { position: absolute; bottom: 28%; left: 20%; width: 18px; height: 42px; background: linear-gradient(180deg, #2a1a0a 0%, #0f0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hf-climb 4s ease-in-out infinite; }
.scn-hillock-fighting .soldier-2 { position: absolute; bottom: 32%; left: 35%; width: 18px; height: 42px; background: linear-gradient(180deg, #2a1a0a 0%, #0f0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hf-climb 4.5s ease-in-out infinite 0.5s; }
.scn-hillock-fighting .arrow { position: absolute; bottom: 48%; left: 25%; width: 24px; height: 2px; background: #a0461a; border-radius: 1px; transform: rotate(-30deg); animation: hf-arrow 1.2s linear infinite; }
.scn-hillock-fighting .shield { position: absolute; bottom: 30%; left: 22%; width: 20px; height: 30px; background: linear-gradient(180deg, #8b6f3a 0%, #5a3a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; border: 1px solid #3a2a1a; animation: hf-shield 2s ease-in-out infinite alternate; }
@keyframes hf-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes hf-sun { 0% { transform: scale(1); opacity: 1 } 50% { transform: scale(0.95); opacity: 0.8 } 100% { transform: scale(1); opacity: 1 } }
@keyframes hf-hillock { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hf-ridge { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes hf-climb { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(-5px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hf-arrow { 0% { transform: rotate(-30deg) translateX(0); opacity: 1 } 50% { transform: rotate(-30deg) translateX(40px); opacity: 0.8 } 100% { transform: rotate(-30deg) translateX(80px); opacity: 0 } }
@keyframes hf-shield { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-race-for-the-summit {
  background: linear-gradient(180deg, #9fc8e8 0%, #f0e0a0 60%, #d4a050 100%),
              radial-gradient(ellipse at 30% 60%, #fce68b 0%, transparent 50%);
}
.scn-race-for-the-summit .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b0d4f0 0%, transparent 100%); animation: rs-sky 12s ease-in-out infinite alternate; }
.scn-race-for-the-summit .mountain { position: absolute; bottom: 20%; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; clip-path: polygon(0% 100%, 20% 40%, 40% 80%, 60% 20%, 80% 60%, 100% 100%); animation: rs-mountain 20s ease-in-out infinite alternate; }
.scn-race-for-the-summit .pass { position: absolute; bottom: 35%; left: 50%; width: 80px; height: 30px; background: linear-gradient(180deg, #d4a050 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; animation: rs-pass 8s ease-in-out infinite; }
.scn-race-for-the-summit .xenophon { position: absolute; bottom: 28%; left: 25%; width: 22px; height: 46px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rs-run 3s ease-in-out infinite; }
.scn-race-for-the-summit .burdened-soldier { position: absolute; bottom: 26%; left: 40%; width: 20px; height: 44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rs-run 3.2s ease-in-out infinite 0.3s; }
.scn-race-for-the-summit .horse { position: absolute; bottom: 24%; left: 55%; width: 60px; height: 36px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 40% 50% 30% 30% / 60% 60% 40% 40%; animation: rs-gallop 1.8s linear infinite; }
.scn-race-for-the-summit .village { position: absolute; bottom: 18%; right: 10%; width: 70px; height: 40px; background: linear-gradient(180deg, #8b7355 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); animation: rs-village 14s ease-in-out infinite; }
.scn-race-for-the-summit .river { position: absolute; bottom: 0; left: 30%; right: 30%; height: 15%; background: linear-gradient(180deg, #6fa8dc 0%, #4a90b0 100%); border-radius: 30% 30% 0 0; animation: rs-river 6s ease-in-out infinite alternate; }
@keyframes rs-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes rs-mountain { 0% { clip-path: polygon(0% 100%, 20% 40%, 40% 80%, 60% 20%, 80% 60%, 100% 100%); } 50% { clip-path: polygon(0% 100%, 20% 45%, 40% 85%, 60% 25%, 80% 65%, 100% 100%); } 100% { clip-path: polygon(0% 100%, 20% 40%, 40% 80%, 60% 20%, 80% 60%, 100% 100%); } }
@keyframes rs-pass { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes rs-run { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(10px) translateY(-3px) rotate(2deg) } 50% { transform: translateX(20px) translateY(0) rotate(-2deg) } 75% { transform: translateX(30px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(40px) translateY(0) rotate(0deg) } }
@keyframes rs-gallop { 0% { transform: translateX(0) scale(1, 1) } 25% { transform: translateX(15px) scale(0.95, 1.05) } 50% { transform: translateX(30px) scale(1, 1) } 75% { transform: translateX(45px) scale(0.95, 1.05) } 100% { transform: translateX(60px) scale(1, 1) } }
@keyframes rs-village { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes rs-river { 0% { background-position: 0% 0%; background-size: 200% 100%; } 100% { background-position: 100% 0%; background-size: 200% 100%; } }

.scn-into-carduchia {
  background: linear-gradient(180deg, #e8a060 0%, #f0c870 40%, #d4a050 100%),
              radial-gradient(ellipse at 80% 30%, #fce68b 0%, transparent 50%);
}
.scn-into-carduchia .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #f0d8b0 0%, transparent 100%); animation: ic-sky 14s ease-in-out infinite alternate; }
.scn-into-carduchia .sun-dawn { position: absolute; top: 5%; left: 20%; width: 70px; height: 70px; background: radial-gradient(circle, #ffe8a0 0%, #f0c870 70%, transparent 100%); border-radius: 50%; animation: ic-sun 10s ease-in-out infinite; box-shadow: 0 0 80px 40px rgba(240,200,112,0.3); }
.scn-into-carduchia .mountain-range { position: absolute; bottom: 20%; left: 5%; right: 5%; height: 40%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; clip-path: polygon(0% 100%, 15% 40%, 30% 70%, 45% 30%, 60% 60%, 80% 25%, 100% 100%); animation: ic-mountains 25s ease-in-out infinite alternate; }
.scn-into-carduchia .column-march { position: absolute; bottom: 18%; left: 10%; width: 60px; height: 30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; animation: ic-march 8s linear infinite; }
.scn-into-carduchia .rearguard { position: absolute; bottom: 18%; left: 70%; width: 50px; height: 28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; animation: ic-rearguard 6s ease-in-out infinite; }
.scn-into-carduchia .carduchian { position: absolute; bottom: 22%; left: 85%; width: 18px; height: 36px; background: linear-gradient(180deg, #6b4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ic-attack 2s ease-in-out infinite; }
.scn-into-carduchia .baggage { position: absolute; bottom: 14%; left: 30%; width: 40px; height: 20px; background: linear-gradient(180deg, #8b7355 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; animation: ic-baggage 12s ease-in-out infinite; }
@keyframes ic-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ic-sun { 0% { transform: scale(0.9); opacity: 0.8 } 50% { transform: scale(1); opacity: 1 } 100% { transform: scale(0.85); opacity: 0.7 } }
@keyframes ic-mountains { 0% { clip-path: polygon(0% 100%, 15% 40%, 30% 70%, 45% 30%, 60% 60%, 80% 25%, 100% 100%); } 50% { clip-path: polygon(0% 100%, 15% 45%, 30% 75%, 45% 35%, 60% 65%, 80% 30%, 100% 100%); } 100% { clip-path: polygon(0% 100%, 15% 40%, 30% 70%, 45% 30%, 60% 60%, 80% 25%, 100% 100%); } }
@keyframes ic-march { 0% { transform: translateX(0) } 25% { transform: translateX(10px) } 50% { transform: translateX(20px) } 75% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes ic-rearguard { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ic-attack { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 50% { transform: translateX(10px) translateY(-5px) rotate(5deg) } 100% { transform: translateX(20px) translateY(0) rotate(-3deg) } }
@keyframes ic-baggage { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-colchian-mountain-attack {
  background:
    linear-gradient(180deg, #6b8b9e 0%, #b0c4d0 30%, #d4b88a 60%, #a08050 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255,230,180,0.4) 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-colchian-mountain-attack .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a7a8a 0%, #8aacbc 40%, #b8d0d8 100%);
  animation: cmt-sky 14s ease-in-out infinite alternate;
}
.scn-colchian-mountain-attack .sun {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe8b0 0%, #f0c870 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,200,112,0.5), 0 0 120px 40px rgba(240,200,112,0.2);
  animation: cmt-sun 6s ease-in-out infinite alternate;
}
.scn-colchian-mountain-attack .mountain-back {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 60%, #2a3a2a 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
  clip-path: polygon(0 100%, 5% 30%, 15% 45%, 25% 15%, 35% 35%, 45% 10%, 55% 28%, 65% 5%, 75% 25%, 85% 12%, 92% 30%, 100% 20%, 100% 100%);
  animation: cmt-mtn 20s ease-in-out infinite alternate;
}
.scn-colchian-mountain-attack .mountain-mid {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 50%, #1a2a1a 100%);
  clip-path: polygon(0 100%, 10% 50%, 22% 60%, 30% 35%, 40% 55%, 50% 20%, 58% 45%, 68% 30%, 78% 50%, 88% 25%, 95% 45%, 100% 35%, 100% 100%);
  animation: cmt-mtn 25s ease-in-out infinite alternate-reverse;
}
.scn-colchian-mountain-attack .fortress {
  position: absolute; bottom: 28%; left: 35%; width: 90px; height: 55px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0;
  transform: skewX(-2deg);
  box-shadow: 6px 4px 12px rgba(0,0,0,0.5);
  animation: cmt-fort 8s ease-in-out infinite;
}
.scn-colchian-mountain-attack .fortress-tower {
  position: absolute; bottom: 28%; left: 52%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 60%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  transform: skewX(1deg);
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: cmt-tower 3s ease-in-out infinite;
}
.scn-colchian-mountain-attack .soldier-1 {
  position: absolute; bottom: 25%; left: 40%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: cmt-climb 3s ease-in-out infinite;
}
.scn-colchian-mountain-attack .soldier-2 {
  position: absolute; bottom: 25%; left: 46%; width: 11px; height: 26px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: cmt-climb 3.6s ease-in-out infinite 0.4s;
}
.scn-colchian-mountain-attack .soldier-3 {
  position: absolute; bottom: 25%; left: 52%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #3a3a1a 0%, #1a2a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: cmt-climb 4s ease-in-out infinite 0.8s;
}
.scn-colchian-mountain-attack .dust {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(180,160,120,0.5) 0%, transparent 80%);
  filter: blur(4px);
  animation: cmt-dust 5s ease-in-out infinite;
}
@keyframes cmt-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cmt-sun { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 60px 20px rgba(240,200,112,0.5); } 50% { transform: scale(1.05) translate(3px, -2px); box-shadow: 0 0 80px 30px rgba(255,220,140,0.6); } 100% { transform: scale(0.98) translate(-2px, 1px); box-shadow: 0 0 50px 15px rgba(240,200,112,0.4); } }
@keyframes cmt-mtn { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(0.99); } }
@keyframes cmt-fort { 0%, 100% { transform: skewX(-2deg) translateY(0); } 50% { transform: skewX(-2deg) translateY(-2px); } }
@keyframes cmt-tower { 0%, 100% { transform: skewX(1deg) scaleY(1); } 50% { transform: skewX(1deg) scaleY(1.02) translateY(-1px); } }
@keyframes cmt-climb { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes cmt-dust { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(10px) scale(1.3); opacity: 0.2; } 100% { transform: translateX(20px) scale(1); opacity: 0.5; } }

.scn-trapezus-and-cerasus {
  background:
    linear-gradient(180deg, #7a9ab0 0%, #9ab8cc 30%, #c8dae4 60%, #b8a078 80%, #8a6a4a 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255,240,200,0.3) 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-trapezus-and-cerasus .sea {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #5a8aaa 0%, #7aa0b8 40%, #9ab8cc 70%, #b8c8d4 100%);
  animation: tcs-sea 12s ease-in-out infinite alternate;
}
.scn-trapezus-and-cerasus .shore {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c8a870 0%, #a88858 40%, #8a7048 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
  animation: tcs-shore 16s ease-in-out infinite alternate;
}
.scn-trapezus-and-cerasus .ship-1 {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 0 30% 40% 0 / 0 60% 50% 0;
  transform: rotate(-2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: tcs-ship 8s ease-in-out infinite;
}
.scn-trapezus-and-cerasus .ship-2 {
  position: absolute; bottom: 28%; right: 15%; width: 60px; height: 22px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 0 30% 40% 0 / 0 60% 50% 0;
  transform: rotate(1deg);
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  animation: tcs-ship 9s ease-in-out infinite 1s;
}
.scn-trapezus-and-cerasus .sail {
  position: absolute; bottom: 36%; left: 22%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 60%, #a8a080 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  transform: rotate(-4deg);
  animation: tcs-sail 5s ease-in-out infinite alternate;
}
.scn-trapezus-and-cerasus .figures {
  position: absolute; bottom: 16%; left: 40%; width: 30px; height: 18px;
  background: radial-gradient(ellipse at 50% 100%, rgba(60,40,20,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: tcs-figs 7s ease-in-out infinite;
}
.scn-trapezus-and-cerasus .harbor-wall {
  position: absolute; bottom: 22%; right: 8%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 60%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tcs-wall 10s ease-in-out infinite alternate;
}
.scn-trapezus-and-cerasus .cloud-a {
  position: absolute; top: 10%; left: 20%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(200,220,240,0.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: tcs-drift-a 40s linear infinite;
}
.scn-trapezus-and-cerasus .cloud-b {
  position: absolute; top: 6%; right: 10%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(200,220,240,0.15) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: tcs-drift-b 55s linear infinite reverse;
}
@keyframes tcs-sea { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tcs-shore { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(0.99); } }
@keyframes tcs-ship { 0%, 100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px) translateX(2px); } }
@keyframes tcs-sail { 0% { transform: rotate(-4deg) scaleX(1); } 50% { transform: rotate(-2deg) scaleX(1.05); } 100% { transform: rotate(-6deg) scaleX(0.95); } }
@keyframes tcs-figs { 0% { transform: translateX(0) scale(1); } 33% { transform: translateX(4px) scale(1.05); } 66% { transform: translateX(8px) scale(0.98); } 100% { transform: translateX(12px) scale(1); } }
@keyframes tcs-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes tcs-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes tcs-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-mossynoecian-fortress-stormed {
  background:
    linear-gradient(180deg, #5a7a6a 0%, #8a9a7a 25%, #c8a878 50%, #a07040 75%, #6a4a2a 100%),
    radial-gradient(ellipse at 50% 15%, rgba(255,200,120,0.3) 0%, transparent 40%);
  position: relative;
  overflow: hidden;
}
.scn-mossynoecian-fortress-stormed .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a6a5a 0%, #7a8a7a 40%, #a8b898 100%);
  animation: mfs-sky 10s ease-in-out infinite alternate;
}
.scn-mossynoecian-fortress-stormed .mountain-ridge {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 60%, #1a2a1a 100%);
  clip-path: polygon(0 100%, 8% 40%, 18% 55%, 25% 30%, 35% 50%, 42% 15%, 52% 35%, 60% 20%, 70% 40%, 78% 10%, 88% 30%, 95% 25%, 100% 35%, 100% 100%);
  animation: mfs-ridge 18s ease-in-out infinite alternate;
}
.scn-mossynoecian-fortress-stormed .citadel-wall {
  position: absolute; bottom: 22%; left: 30%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: mfs-wall 7s ease-in-out infinite;
}
.scn-mossynoecian-fortress-stormed .citadel-tower {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 60%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  transform: rotate(1deg);
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
  animation: mfs-tower 2.5s ease-in-out infinite;
}
.scn-mossynoecian-fortress-stormed .flames-1 {
  position: absolute; bottom: 28%; left: 37%; width: 18px; height: 24px;
  background: radial-gradient(ellipse at 50% 100%, #e87040 0%, #c84828 40%, #a03010 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mfs-flame 0.8s ease-in-out infinite alternate;
}
.scn-mossynoecian-fortress-stormed .flames-2 {
  position: absolute; bottom: 30%; left: 42%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #f0a050 0%, #d08030 40%, #b06020 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mfs-flame 1s ease-in-out infinite alternate 0.3s;
}
.scn-mossynoecian-fortress-stormed .smoke {
  position: absolute; bottom: 40%; left: 38%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(60,40,30,0.6) 0%, rgba(40,30,20,0.3) 50%, transparent 100%);
  filter: blur(6px);
  animation: mfs-smoke 4s ease-in-out infinite;
}
.scn-mossynoecian-fortress-stormed .warrior-1 {
  position: absolute; bottom: 18%; left: 34%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: mfs-storm 3.2s ease-in-out infinite;
}
.scn-mossynoecian-fortress-stormed .warrior-2 {
  position: absolute; bottom: 18%; left: 40%; width: 13px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: mfs-storm 3.6s ease-in-out infinite 0.6s;
}
.scn-mossynoecian-fortress-stormed .spear {
  position: absolute; bottom: 20%; left: 35%; width: 3px; height: 22px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: mfs-spear 2s ease-in-out infinite;
}
@keyframes mfs-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.85; } }
@keyframes mfs-ridge { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(0.99); } }
@keyframes mfs-wall { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes mfs-tower { 0%, 100% { transform: rotate(1deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.03) translateY(-1px); } }
@keyframes mfs-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.3) translateY(-3px); opacity: 1; } 100% { transform: scaleY(1.1) translateY(-1px); opacity: 0.9; } }
@keyframes mfs-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-10px) scale(1.4); opacity: 0.3; } 100% { transform: translateY(0) scale(1); opacity: 0.5; } }
@keyframes mfs-storm { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes mfs-spear { 0%, 100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } }

.scn-chalybes-and-tibarenians {
  background:
    linear-gradient(180deg, #6a8a7a 0%, #8aa89a 30%, #a8b8a8 60%, #b8a878 80%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(220,230,200,0.3) 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-chalybes-and-tibarenians .bg-mountains {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a7a6a 0%, #7a9a8a 40%, #9ab8a8 100%);
  animation: ctb-bg 15s ease-in-out infinite alternate;
}
.scn-chalybes-and-tibarenians .ground {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a070 0%, #a08858 40%, #887048 80%, #685030 100%);
  border-radius: 30% 40% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
  animation: ctb-ground 20s ease-in-out infinite alternate;
}
.scn-chalybes-and-tibarenians .path {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, rgba(160,140,100,0.4) 0%, rgba(120,100,70,0.3) 100%);
  clip-path: polygon(0 50%, 10% 40%, 20% 55%, 30% 45%, 40% 60%, 50% 50%, 60% 55%, 70% 42%, 80% 52%, 90% 47%, 100% 50%);
  animation: ctb-path 25s ease-in-out infinite;
}
.scn-chalybes-and-tibarenians .march-col {
  position: absolute; bottom: 28%; left: 10%; width: 18px; height: 30px;
  background: linear-gradient(180deg, rgba(60,50,30,0.7) 0%, rgba(40,30,20,0.5) 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: scale(0.9);
  animation: ctb-march 12s linear infinite;
}
.scn-chalybes-and-tibarenians .march-fig {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: ctb-walk 4s ease-in-out infinite;
}
.scn-chalybes-and-tibarenians .mound-mine {
  position: absolute; bottom: 26%; right: 18%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 60%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: ctb-mound 8s ease-in-out infinite alternate;
}
.scn-chalybes-and-tibarenians .mound-shaft {
  position: absolute; bottom: 30%; right: 28%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: ctb-shaft 5s ease-in-out infinite;
}
.scn-chalybes-and-tibarenians .cloud-a {
  position: absolute; top: 12%; left: 15%; width: 80px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, rgba(200,220,200,0.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: ctb-drift-a 45s linear infinite;
}
.scn-chalybes-and-tibarenians .cloud-b {
  position: absolute; top: 8%; right: 8%; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, rgba(200,220,200,0.15) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ctb-drift-b 60s linear infinite reverse;
}
@keyframes ctb-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ctb-ground { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(0.99); } }
@keyframes ctb-path { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.05); } 100% { transform: translateX(-5px) scaleY(0.95); } }
@keyframes ctb-march { 0% { transform: translateX(0) scale(0.9); opacity: 0.7; } 50% { transform: translateX(40px) scale(0.95); opacity: 0.5; } 100% { transform: translateX(80px) scale(0.9); opacity: 0.3; } }
@keyframes ctb-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes ctb-mound { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.98); } }
@keyframes ctb-shaft { 0%, 100% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.05); opacity: 1; } }
@keyframes ctb-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes ctb-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-thynian-villages-burned {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 60%);
}
.scn-thynian-villages-burned .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%);
  animation: tvb-sky 18s ease-in-out infinite alternate;
}
.scn-thynian-villages-burned .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: tvb-ground 22s ease-in-out infinite;
}
.scn-thynian-villages-burned .ruins-back {
  position: absolute; bottom: 30%; left: 10%; right: 60%; height: 18%;
  background: linear-gradient(90deg, #2a2a2a 0%, #1a1a1a 50%, #2a2a2a 100%);
  clip-path: polygon(0% 100%, 10% 20%, 20% 40%, 30% 10%, 40% 30%, 50% 0%, 60% 20%, 70% 10%, 80% 30%, 90% 15%, 100% 100%);
  animation: tvb-ruins 30s ease-in-out infinite alternate;
}
.scn-thynian-villages-burned .ruins-front {
  position: absolute; bottom: 25%; left: 40%; right: 10%; height: 22%;
  background: linear-gradient(90deg, #1a1a1a 0%, #0a0a0a 50%, #1a1a1a 100%);
  clip-path: polygon(0% 100%, 15% 30%, 25% 50%, 35% 15%, 45% 40%, 55% 5%, 65% 25%, 75% 10%, 85% 35%, 100% 100%);
  animation: tvb-ruins 40s ease-in-out infinite alternate-reverse;
}
.scn-thynian-villages-burned .smoke {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 60px;
  background: radial-gradient(ellipse, rgba(80,80,90,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: tvb-smoke 20s linear infinite;
}
.scn-thynian-villages-burned .ember-glow {
  position: absolute; bottom: 28%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, transparent 70%);
  box-shadow: 0 0 20px 6px #c8553d, 0 0 40px 12px #a0461a;
  border-radius: 50%;
  animation: tvb-ember 3s ease-in-out infinite alternate;
}
.scn-thynian-villages-burned .figure {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tvb-figure 5s ease-in-out infinite;
}
@keyframes tvb-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes tvb-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tvb-ruins { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(0.5deg) } 100% { transform: scale(0.98) rotate(-0.3deg) } }
@keyframes tvb-smoke { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(40px) translateY(-20px) scale(1.3) } 100% { transform: translateX(80px) translateY(-10px) scale(1) } }
@keyframes tvb-ember { 0% { box-shadow: 0 0 15px 4px #c8553d, 0 0 30px 8px #a0461a; opacity: 0.6 } 50% { box-shadow: 0 0 30px 10px #d9754b, 0 0 50px 16px #b85a2e; opacity: 1 } 100% { box-shadow: 0 0 18px 5px #b85a2e, 0 0 35px 10px #8a3a1a; opacity: 0.7 } }
@keyframes tvb-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-thynian-night-counterattack {
  background:
    linear-gradient(180deg, #0a0a2a 0%, #141440 40%, #1a1a4a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a4a 0%, transparent 60%);
}
.scn-thynian-night-counterattack .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #141440 0%, #0a0a2a 100%);
  animation: tnc-sky 15s ease-in-out infinite alternate;
}
.scn-thynian-night-counterattack .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8f0 0%, #c0c8d0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #c0c8d0, 0 0 80px 30px rgba(192,200,208,0.3);
  animation: tnc-moon 8s ease-in-out infinite alternate;
}
.scn-thynian-night-counterattack .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(180,190,200,0.4) 0%, rgba(180,190,200,0.1) 100%);
  filter: blur(8px);
  border-radius: 30%;
  animation: tnc-drift-a 40s linear infinite;
}
.scn-thynian-night-counterattack .cloud-b {
  position: absolute; top: 18%; right: 5%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(180,190,200,0.3) 0%, rgba(180,190,200,0.05) 100%);
  filter: blur(6px);
  border-radius: 30%;
  animation: tnc-drift-b 50s linear infinite reverse;
}
.scn-thynian-night-counterattack .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-thynian-night-counterattack .soldier-a {
  position: absolute; bottom: 22%; left: 20%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: tnc-charge-a 4s ease-in-out infinite;
}
.scn-thynian-night-counterattack .soldier-b {
  position: absolute; bottom: 24%; left: 30%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: tnc-charge-b 4.5s ease-in-out infinite;
}
.scn-thynian-night-counterattack .flash {
  position: absolute; bottom: 28%; left: 24%; width: 4px; height: 4px;
  background: radial-gradient(circle, #d0d8e0 0%, transparent 80%);
  box-shadow: 0 0 15px 5px #d0d8e0;
  border-radius: 50%;
  animation: tnc-flash 1.2s ease-in-out infinite;
}
@keyframes tnc-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes tnc-moon { 0% { box-shadow: 0 0 30px 10px #c0c8d0, 0 0 60px 20px rgba(192,200,208,0.2); } 50% { box-shadow: 0 0 50px 20px #e0e8f0, 0 0 80px 30px rgba(224,232,240,0.4); } 100% { box-shadow: 0 0 35px 12px #c0c8d0, 0 0 65px 22px rgba(192,200,208,0.3); } }
@keyframes tnc-drift-a { 0% { transform: translateX(-30px) } 50% { transform: translateX(30px) scale(1.1) } 100% { transform: translateX(90vw) } }
@keyframes tnc-drift-b { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) } 100% { transform: translateX(-70vw) } }
@keyframes tnc-charge-a { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(6px) rotate(2deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(3deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes tnc-charge-b { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(-8px) translateY(-2px) rotate(1deg) } 60% { transform: translateX(-16px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-24px) translateY(0) rotate(0deg) } }
@keyframes tnc-flash { 0% { box-shadow: 0 0 10px 3px #d0d8e0; opacity: 0 } 50% { box-shadow: 0 0 25px 8px #e0e8f0; opacity: 1 } 100% { box-shadow: 0 0 10px 3px #d0d8e0; opacity: 0 } }

.scn-heracliedes-intrigue {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a1a 0%, transparent 70%);
}
.scn-heracliedes-intrigue .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a1a 0%, #1a1a1a 50%, #3a3a2a 100%);
  clip-path: polygon(0% 0%, 15% 15%, 85% 15%, 100% 0%, 100% 100%, 0% 100%);
  animation: hi-tent 20s ease-in-out infinite alternate;
}
.scn-heracliedes-intrigue .table {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: hi-table 15s ease-in-out infinite;
}
.scn-heracliedes-intrigue .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 16px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a07030 0%, #705020 100%);
  border-radius: 20% 20% 10% 10%;
  animation: hi-lamp 3s ease-in-out infinite alternate;
}
.scn-heracliedes-intrigue .glow {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 30px;
  transform: translate(-50%, -10px);
  background: radial-gradient(circle, #d09050 0%, #b07040 40%, transparent 70%);
  box-shadow: 0 0 30px 10px #b07040, 0 0 60px 20px rgba(176,112,64,0.3);
  border-radius: 50%;
  animation: hi-glow 2.5s ease-in-out infinite alternate;
}
.scn-heracliedes-intrigue .figure-a {
  position: absolute; bottom: 16%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: hi-fig-a 6s ease-in-out infinite;
}
.scn-heracliedes-intrigue .figure-b {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: hi-fig-b 6.5s ease-in-out infinite;
}
.scn-heracliedes-intrigue .shadow {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  filter: blur(8px);
  animation: hi-shadow 10s ease-in-out infinite alternate;
}
@keyframes hi-tent { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hi-table { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes hi-lamp { 0% { transform: translateX(-50%) rotate(0deg) scale(1) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.05) } 100% { transform: translateX(-50%) rotate(-1deg) scale(0.95) } }
@keyframes hi-glow { 0% { box-shadow: 0 0 20px 6px #b07040, 0 0 40px 12px rgba(176,112,64,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 40px 14px #d09050, 0 0 70px 22px rgba(208,144,80,0.4); opacity: 1 } 100% { box-shadow: 0 0 25px 8px #b07040, 0 0 50px 15px rgba(176,112,64,0.25); opacity: 0.85 } }
@keyframes hi-fig-a { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(4px) rotate(2deg) } 60% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hi-fig-b { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 30% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } 60% { transform: translateX(-6px) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes hi-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.4 } }

.scn-seuthes-snubs-xenophon {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 50%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a1a 0%, transparent 60%);
}
.scn-seuthes-snubs-xenophon .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a1a 0%, #1a1a1a 60%, #3a3a2a 100%);
  clip-path: polygon(0% 0%, 10% 10%, 90% 10%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-seuthes-snubs-xenophon .table {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ssx-table 20s ease-in-out infinite;
}
.scn-seuthes-snubs-xenophon .candle-a {
  position: absolute; bottom: 25%; left: 45%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d0b070 0%, #a08040 100%);
  border-radius: 10% 10% 20% 20%;
  animation: ssx-candle-a 3s ease-in-out infinite alternate;
}
.scn-seuthes-snubs-xenophon .candle-b {
  position: absolute; bottom: 25%; left: 53%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #d0b070 0%, #a08040 100%);
  border-radius: 10% 10% 20% 20%;
  animation: ssx-candle-b 3.5s ease-in-out infinite alternate;
}
.scn-seuthes-snubs-xenophon .glow {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, -5px);
  background: radial-gradient(circle, #d09050 0%, #b07040 30%, transparent 70%);
  box-shadow: 0 0 30px 10px #b07040, 0 0 60px 20px rgba(176,112,64,0.3);
  border-radius: 50%;
  animation: ssx-glow 2.5s ease-in-out infinite alternate;
}
.scn-seuthes-snubs-xenophon .seuthes {
  position: absolute; bottom: 12%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ssx-seuthes 6s ease-in-out infinite;
}
.scn-seuthes-snubs-xenophon .xenophon {
  position: absolute; bottom: 16%; left: 55%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ssx-xenophon 5.5s ease-in-out infinite;
}
@keyframes ssx-table { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ssx-candle-a { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(3deg) scale(1.05) } 100% { transform: rotate(-1deg) scale(0.95) } }
@keyframes ssx-candle-b { 0% { transform: rotate(1deg) scale(0.95) } 50% { transform: rotate(-2deg) scale(1.05) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes ssx-glow { 0% { box-shadow: 0 0 20px 6px #b07040, 0 0 40px 12px rgba(176,112,64,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 40px 14px #d09050, 0 0 70px 22px rgba(208,144,80,0.4); opacity: 1 } 100% { box-shadow: 0 0 25px 8px #b07040, 0 0 50px 15px rgba(176,112,64,0.25); opacity: 0.85 } }
@keyframes ssx-seuthes { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(-5px) rotate(2deg) } 60% { transform: translateX(-10px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ssx-xenophon { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 30% { transform: translateX(4px) translateY(-1px) rotate(-1deg) } 60% { transform: translateX(8px) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }

/* --- Scene: medosades-demands (Tense, Sunlit) --- */
.scn-medosades-demands { background: linear-gradient(180deg, #f4e4c1 0%, #d4a373 70%, #b87a4a 100%), radial-gradient(ellipse at 50% 0%, #fff4d4, transparent 60%); }
.scn-medosades-demands .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffe8c8, #f4d8a8); animation: med-sky 6s ease-in-out infinite alternate; }
.scn-medosades-demands .sun    { position:absolute; top:15%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #fff4d4, #e8b060 60%, transparent 80%); border-radius:50%; animation: med-sun 8s ease-in-out infinite; }
.scn-medosades-demands .hills  { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #c49a6c, #8a6040); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: med-hills 10s ease-in-out infinite alternate; }
.scn-medosades-demands .camp-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b87a4a, #8a5a3a); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-medosades-demands .figure-xeno { position:absolute; bottom:20%; left:30%; width:20px; height:50px; background: #3a2a1a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: med-xeno 2s ease-in-out infinite alternate; }
.scn-medosades-demands .figure-medos{ position:absolute; bottom:20%; left:55%; width:22px; height:48px; background: #b87a4a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 0 8px rgba(0,0,0,.4); animation: med-medos 3s ease-in-out infinite alternate; }
.scn-medosades-demands .prince-horse{ position:absolute; bottom:22%; left:75%; width:40px; height:30px; background: #5a3a2a; border-radius: 50% 20% 50% 20%; animation: med-horse 1.5s ease-in-out infinite; }
.scn-medosades-demands .spear  { position:absolute; bottom:25%; left:35%; width:3px; height:60px; background: #2a1a0a; border-radius: 1px; transform: rotate(-5deg); animation: med-spear 4s ease-in-out infinite; }
.scn-medosades-demands .shadow-stripe { position:absolute; inset:0; background: linear-gradient(90deg, transparent 30%, rgba(0,0,0,.25) 35%, transparent 40%); animation: med-shadow 5s linear infinite; }

@keyframes med-sky    { 0% { opacity: .75; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes med-sun    { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(.98); } }
@keyframes med-hills  { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes med-xeno   { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-3deg); } }
@keyframes med-medos  { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes med-horse  { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-8deg); } }
@keyframes med-spear   { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes med-shadow { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }

/* --- Scene: final-settlement (Calm, Sunlit) --- */
.scn-final-settlement { background: linear-gradient(180deg, #fdfbf7 0%, #f2eadc 40%, #dcc9b0 100%), radial-gradient(ellipse at 50% 0%, #fff8f0, transparent 70%); }
.scn-final-settlement .bg-sky      { position:absolute; inset:0 0 30% 0; background: radial-gradient(ellipse at 50% 20%, #fff8f0, transparent 80%); animation: set-sky 15s ease-in-out infinite alternate; }
.scn-final-settlement .sun-halo    { position:absolute; top:10%; left:50%; width:200px; height:200px; transform:translateX(-50%); background: radial-gradient(circle, #fff4e0, #e8d5b5 40%, transparent 70%); border-radius:50%; animation: set-halo 20s ease-in-out infinite alternate; }
.scn-final-settlement .horizon     { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #dcc9b0, #c8b49a); animation: set-horizon 12s ease-in-out infinite alternate; }
.scn-final-settlement .camp-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a080, #907050); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-final-settlement .goods-pile  { position:absolute; bottom:15%; left:45%; width:60px; height:30px; background: #6a4a3a; border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: set-goods 8s ease-in-out infinite; }
.scn-final-settlement .figure-xeno { position:absolute; bottom:20%; left:35%; width:18px; height:45px; background: #4a3a2a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: set-xeno 6s ease-in-out infinite; }
.scn-final-settlement .figure-soldier { position:absolute; bottom:20%; left:55%; width:18px; height:42px; background: #a08060; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: set-soldier 7s ease-in-out infinite; }
.scn-final-settlement .staff-of-hermes { position:absolute; bottom:25%; left:25%; width:4px; height:50px; background: #8a7a6a; border-radius: 2px; transform: rotate(15deg); animation: set-staff 10s ease-in-out infinite; }

@keyframes set-sky    { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes set-halo   { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes set-horizon{ 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes set-goods  { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes set-xeno   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes set-soldier{ 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes set-staff  { 0% { transform: rotate(15deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(15deg); } }

/* --- Scene: march-to-pergamus (Calm, Sunlit, Travel) --- */
.scn-march-to-pergamus { background: linear-gradient(180deg, #f4e8d8 0%, #e8c8a0 50%, #c8a880 100%), radial-gradient(ellipse at 50% 0%, #fff8f0, transparent 60%); }
.scn-march-to-pergamus .bg-sky        { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fff8f0, #f4e8d8); animation: march-sky 20s linear infinite alternate; }
.scn-march-to-pergamus .sun           { position:absolute; top:20%; left:80%; width:60px; height:60px; background: radial-gradient(circle, #fff4d4, #e8b060 50%, transparent 70%); border-radius:50%; animation: march-sun 30s linear infinite; }
.scn-march-to-pergamus .mountains-rear{ position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a080, #8a7050); border-radius: 40% 60% 0 0 / 60% 40% 0 0; animation: march-mtn-rear 25s linear infinite; }
.scn-march-to-pergamus .mountains-fore{ position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7050, #6a5030); border-radius: 60% 40% 0 0 / 40% 60% 0 0; animation: march-mtn-fore 15s linear infinite; }
.scn-march-to-pergamus .road          { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c8a880, #a08060); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-march-to-pergamus .figure-xeno   { position:absolute; bottom:5%; left:20%; width:16px; height:40px; background: #4a3a2a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: march-walk-xeno 1s ease-in-out infinite; }
.scn-march-to-pergamus .figure-soldiers{ position:absolute; bottom:5%; left:35%; width:14px; height:38px; background: #7a5a3a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: march-walk-sold 1.1s ease-in-out infinite; }
.scn-march-to-pergamus .spear         { position:absolute; bottom:10%; left:22%; width:3px; height:50px; background: #3a2a1a; border-radius: 1px; transform: rotate(10deg); animation: march-spear 1s ease-in-out infinite; }
.scn-march-to-pergamus .dust-puff     { position:absolute; bottom:2%; left:15%; width:20px; height:10px; background: rgba(200,168,128,.6); border-radius: 50%; filter: blur(4px); animation: march-dust 2s ease-out infinite; animation-delay: -1s; }

@keyframes march-sky      { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes march-sun      { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }
@keyframes march-mtn-rear { 0% { transform: translateX(0); } 50% { transform: translateX(-30px); } 100% { transform: translateX(0); } }
@keyframes march-mtn-fore { 0% { transform: translateX(0); } 50% { transform: translateX(-60px); } 100% { transform: translateX(0); } }
@keyframes march-walk-xeno{ 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes march-walk-sold{ 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes march-spear    { 0% { transform: rotate(10deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(10deg); } }
@keyframes march-dust     { 0% { transform: translateX(0) scale(1); opacity: .6; } 50% { transform: translateX(15px) scale(1.5); opacity: .3; } 100% { transform: translateX(30px) scale(2); opacity: 0; } }

/* --- Scene: assault-on-asidates-tower (Tense, Moonlit) --- */
.scn-assault-on-asidates-tower { background: linear-gradient(180deg, #0a1128 0%, #1c2541 50%, #2a3560 100%), radial-gradient(ellipse at 50% 0%, #2a3560, #0a1128 70%); }
.scn-assault-on-asidates-tower .night-sky    { position:absolute; inset:0 0 40% 0; background: radial-gradient(ellipse at 50% 20%, #2a3560, #0a1128 80%); animation: assault-sky 10s ease-in-out infinite alternate; }
.scn-assault-on-asidates-tower .moon         { position:absolute; top:10%; left:60%; width:100px; height:100px; background: radial-gradient(circle, #f0f4f8, #c8d4e0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,212,224,.3); animation: assault-moon 15s ease-in-out infinite alternate; }
.scn-assault-on-asidates-tower .tower       { position:absolute; bottom:10%; left:50%; width:80px; height:200px; transform:translateX(-50%); background: linear-gradient(180deg, #3a4a6a, #1a2a4a); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: assault-tower 6s ease-in-out infinite; }
.scn-assault-on-asidates-tower .soldiers-scaling { position:absolute; bottom:15%; left:45%; width:20px; height:30px; background: #2a3a5a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: assault-soldier 1.5s ease-in-out infinite alternate; }
.scn-assault-on-asidates-tower .ladder     { position:absolute; bottom:10%; left:42%; width:5px; height:120px; background: #5a4a3a; transform: rotate(15deg); transform-origin: bottom left; border-radius: 2px; animation: assault-ladder 2s ease-in-out infinite; }
.scn-assault-on-asidates-tower .torch      { position:absolute; bottom:25%; left:48%; width:8px; height:15px; background: radial-gradient(circle, #ffd480, #e8a040); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(232,160,64,.6); animation: assault-torch 0.5s ease-in-out infinite alternate; }
.scn-assault-on-asidates-tower .arrow-shot { position:absolute; bottom:30%; left:20%; width:30px; height:2px; background: #c8d4e0; transform: rotate(-20deg); animation: assault-arrow 1s ease-in-out infinite; }
.scn-assault-on-asidates-tower .defender-shadow { position:absolute; bottom:50%; left:55%; width:18px; height:25px; background: #0a1128; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: assault-defender 2s ease-in-out infinite; }

@keyframes assault-sky      { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes assault-moon     { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(.98); } }
@keyframes assault-tower    { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes assault-soldier  { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(15px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes assault-ladder   { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(15deg); } }
@keyframes assault-torch    { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(.95); opacity: .9; } }
@keyframes assault-arrow    { 0% { transform: translateX(0) rotate(-20deg); opacity: 1; } 50% { transform: translateX(25px) rotate(-20deg); opacity: 1; } 100% { transform: translateX(50px) rotate(-20deg); opacity: 0; } }
@keyframes assault-defender { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }

/* Scene 1: suspicion-at-the-zapatas (tense+sunlit) */
.scn-suspicion-at-the-zapatas {
  background: linear-gradient(180deg, #4d7fa0 0%, #8db8d8 45%, #c4dce8 70%) 0 0 / 100% 60% no-repeat,
              linear-gradient(180deg, #6b4e2e 0%, #4a3520 100%) 0 60% / 100% 40% no-repeat;
  position: relative;
  overflow: hidden;
}
.scn-suspicion-at-the-zapatas .sky {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(ellipse at 70% 30%, #ffe68f 0%, transparent 60%);
  animation: sz-sky 10s ease-in-out infinite alternate;
}
.scn-suspicion-at-the-zapatas .mountains {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5e3a 0%, #2a3a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: sz-mountains 15s ease-in-out infinite alternate;
}
.scn-suspicion-at-the-zapatas .river {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 18%;
  background: linear-gradient(90deg, #4a7a8a 0%, #6b9baa 50%, #4a7a8a 100%);
  background-size: 200% 100%;
  animation: sz-river 6s ease-in-out infinite;
}
.scn-suspicion-at-the-zapatas .near-bank {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
}
.scn-suspicion-at-the-zapatas .figure-left {
  position: absolute; bottom: 14%; left: 28%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #1e1e1e 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sz-fig1 4s ease-in-out infinite;
}
.scn-suspicion-at-the-zapatas .figure-right {
  position: absolute; bottom: 14%; right: 28%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #1e1e1e 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sz-fig2 4s ease-in-out infinite 2s;
}
.scn-suspicion-at-the-zapatas .tree {
  position: absolute; bottom: 18%; left: 12%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: sz-tree 8s ease-in-out infinite;
}
.scn-suspicion-at-the-zapatas .sun {
  position: absolute; top: 5%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe68f 0%, #ffcc66 40%, transparent 70%);
  border-radius: 50%;
  animation: sz-sun 12s linear infinite;
}
.scn-suspicion-at-the-zapatas .shadow {
  position: absolute; bottom: 14%; left: 28%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: sz-shadow 4s ease-in-out infinite;
}
@keyframes sz-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sz-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sz-river { 0% { background-position: 0% 0; } 50% { background-position: 100% 0; } 100% { background-position: 0% 0; } }
@keyframes sz-fig1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sz-fig2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(-6px) rotate(0deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sz-tree { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes sz-sun { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.8; } }
@keyframes sz-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(0.8); } 100% { opacity: 0.3; transform: scale(1); } }

/* Scene 2: tissaphernes-reply-and-dinner (tense+sunlit interior) */
.scn-tissaphernes-reply-and-dinner {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #6b4a3a 60%, #4a3a2a 100%) 0 0 / 100% 100% no-repeat,
              radial-gradient(ellipse at 50% 60%, #7a5a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-tissaphernes-reply-and-dinner .tent-back {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1a0a 80%);
}
.scn-tissaphernes-reply-and-dinner .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 80px; height: 10px;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: trd-table 10s ease-in-out infinite alternate;
}
.scn-tissaphernes-reply-and-dinner .plate-left {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 4px;
  background: #a0461a; /* terracotta */
  border-radius: 50%;
  animation: trd-plate 6s ease-in-out infinite;
}
.scn-tissaphernes-reply-and-dinner .plate-right {
  position: absolute; bottom: 30%; right: 45%; width: 12px; height: 4px;
  background: #a0461a;
  border-radius: 50%;
  animation: trd-plate 6s ease-in-out infinite 3s;
}
.scn-tissaphernes-reply-and-dinner .figure-left {
  position: absolute; bottom: 15%; left: 30%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trd-sit1 5s ease-in-out infinite;
}
.scn-tissaphernes-reply-and-dinner .figure-right {
  position: absolute; bottom: 15%; right: 30%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trd-sit2 5s ease-in-out infinite 2.5s;
}
.scn-tissaphernes-reply-and-dinner .lantern {
  position: absolute; top: 30%; left: 50%; transform: translateX(-50%); width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 50%, #ffcc66 0%, #e6a030 50%, transparent 80%);
  border-radius: 20%;
  box-shadow: 0 0 30px 6px #e6a030;
  animation: trd-lantern 3s ease-in-out infinite alternate;
}
.scn-tissaphernes-reply-and-dinner .tent-opening {
  position: absolute; top: 0; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #ffe68f 0%, #c8a060 100%);
  opacity: 0.4;
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: trd-open 8s ease-in-out infinite alternate;
}
.scn-tissaphernes-reply-and-dinner .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: trd-shadow 10s ease-in-out infinite alternate;
}
@keyframes trd-table { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes trd-plate { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes trd-sit1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes trd-sit2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes trd-lantern { 0% { box-shadow: 0 0 20px 4px #e6a030; opacity: 0.8; } 50% { box-shadow: 0 0 40px 10px #ffcc66; opacity: 1; } 100% { box-shadow: 0 0 20px 4px #e6a030; opacity: 0.8; } }
@keyframes trd-open { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes trd-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* Scene 3: despair-after-seizure (dark+dim-interior) */
.scn-despair-after-seizure {
  background: linear-gradient(180deg, #0a0a12 0%, #151520 30%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, #050508 100%);
  position: relative;
  overflow: hidden;
}
.scn-despair-after-seizure .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #101018 0%, #050508 100%);
}
.scn-despair-after-seizure .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
}
.scn-despair-after-seizure .figure-1 {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%); width: 16px; height: 36px;
  background: linear-gradient(180deg, #1e1e28 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: das-fig1 8s ease-in-out infinite;
}
.scn-despair-after-seizure .figure-2 {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #1a1a24 0%, #12121c 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  transform-origin: center center;
  animation: das-fig2 10s ease-in-out infinite 1s;
}
.scn-despair-after-seizure .figure-3 {
  position: absolute; bottom: 12%; right: 25%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1e1e28 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: das-fig3 12s ease-in-out infinite 3s;
}
.scn-despair-after-seizure .spear {
  position: absolute; bottom: 10%; left: 35%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: das-spear 20s linear infinite;
}
.scn-despair-after-seizure .faint-light {
  position: absolute; top: 15%; right: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #4a6a8a 0%, transparent 80%);
  border-radius: 50%;
  animation: das-light 4s ease-in-out infinite alternate;
}
.scn-despair-after-seizure .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: das-shadow 15s ease-in-out infinite alternate;
}
@keyframes das-fig1 { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes das-fig2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes das-fig3 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes das-spear { 0% { transform: rotate(30deg); } 50% { transform: rotate(28deg); } 100% { transform: rotate(30deg); } }
@keyframes das-light { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes das-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* Scene 4: xenophon-dream (dark+moonlit) */
.scn-xenophon-dream {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 20%, #3a4a6a 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-xenophon-dream .sky {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 30%, rgba(200,210,230,0.15) 0%, transparent 60%),
              linear-gradient(180deg, transparent, rgba(0,0,50,0.3));
}
.scn-xenophon-dream .moon {
  position: absolute; top: 8%; left: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c8d8e8 0%, #a8b8d8 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(168,184,216,0.3);
  animation: xd-moon 20s ease-in-out infinite alternate;
}
.scn-xenophon-dream .house {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 60px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  clip-path: polygon(10% 100%, 10% 40%, 50% 10%, 90% 40%, 90% 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: xd-house 10s ease-in-out infinite;
}
.scn-xenophon-dream .lightning {
  position: absolute; top: 5%; left: 45%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #ffe8a0 0%, #ffcc66 40%, transparent 100%);
  filter: blur(1px);
  transform: translateX(-50%) skewX(-10deg);
  animation: xd-lightning 3s ease-in-out infinite;
}
.scn-xenophon-dream .fire {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #ff7a3a 0%, #ff5a2a 30%, transparent 70%);
  border-radius: 50%;
  animation: xd-fire 2s ease-in-out infinite alternate;
}
.scn-xenophon-dream .figure {
  position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%); width: 18px; 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: xd-sleep 15s ease-in-out infinite;
}
.scn-xenophon-dream .dream-cloud {
  position: absolute; top: 20%; right: 10%; width: 60px; height: 20px;
  background: linear-gradient(90deg, rgba(200,210,230,0.2) 0%, rgba(200,210,230,0.4) 50%, rgba(200,210,230,0.2) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: xd-cloud 25s linear infinite;
}
.scn-xenophon-dream .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0a12 0%, #050508 100%);
}
@keyframes xd-moon { 0% { transform: translate(0, 0); } 50% { transform: translate(5px, -5px); } 100% { transform: translate(0, 0); } }
@keyframes xd-house { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes xd-lightning { 0% { opacity: 0; transform: translateX(-50%) skewX(-10deg) scaleY(1); } 10% { opacity: 1; } 20% { opacity: 0; } 30% { opacity: 0.6; } 40% { opacity: 0; } 100% { opacity: 0; } }
@keyframes xd-fire { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.7; transform: translateX(-50%) scale(0.9); } }
@keyframes xd-sleep { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes xd-cloud { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-20px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-cotyora-halt {
  background: linear-gradient(180deg, #87CEEB 0%, #FFDAB9 60%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 70%);
}
.scn-cotyora-halt .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87CEEB 0%, transparent 100%);
  animation: ch1-sky 12s ease-in-out infinite alternate;
}
.scn-cotyora-halt .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4c7a4c 0%, #2d5a2d 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: ch1-hills 18s ease-in-out infinite alternate;
}
.scn-cotyora-halt .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8B7355 0%, #5C4033 100%);
}
.scn-cotyora-halt .tent-a {
  position: absolute; bottom: 32%; left: 25%; width: 50px; height: 40px;
  background: #f5f5dc;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ch1-tent 6s ease-in-out infinite alternate;
}
.scn-cotyora-halt .tent-b {
  position: absolute; bottom: 35%; right: 30%; width: 40px; height: 30px;
  background: #f0f0d0;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: ch1-tent 6s ease-in-out infinite alternate 3s;
}
.scn-cotyora-halt .fire {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: radial-gradient(circle, #FFD700 0%, #FF8C00 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 24px 8px #FF8C00, 0 0 48px 16px rgba(255,140,0,.4);
  animation: ch1-fire 2s ease-in-out infinite alternate;
}
.scn-cotyora-halt .figure {
  position: absolute; bottom: 10%; left: 20%;
  width: 14px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch1-figure 8s ease-in-out infinite;
}
.scn-cotyora-halt .cloud {
  position: absolute; top: 15%; left: 0;
  width: 60px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ch1-cloud 30s linear infinite;
}
@keyframes ch1-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes ch1-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ch1-tent {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ch1-fire {
  0% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: .7; }
}
@keyframes ch1-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ch1-cloud {
  0% { transform: translateX(-60px); }
  100% { transform: translateX(calc(100vw + 60px)); }
}

.scn-xenophons-colony-dream {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%), radial-gradient(ellipse at 30% 40%, #8B4513 0%, transparent 70%);
}
.scn-xenophons-colony-dream .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 10% 10%;
  opacity: .8;
}
.scn-xenophons-colony-dream .floor {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-xenophons-colony-dream .lamp {
  position: absolute; bottom: 50%; left: 30%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #FFD700 0%, #FF8C00 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #FF8C00, 0 0 60px 20px rgba(255,140,0,.4);
  animation: xcd-lamp 1s ease-in-out infinite alternate;
}
.scn-xenophons-colony-dream .xenophon {
  position: absolute; bottom: 20%; left: 45%;
  width: 18px; height: 25px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: xcd-figure 4s ease-in-out infinite;
}
.scn-xenophons-colony-dream .soothsayer {
  position: absolute; bottom: 15%; left: 30%;
  width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: xcd-soothsayer 6s ease-in-out infinite;
}
.scn-xenophons-colony-dream .table {
  position: absolute; bottom: 28%; left: 40%; transform: translateX(-50%);
  width: 60px; height: 10px;
  background: linear-gradient(180deg, #5C4033 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-xenophons-colony-dream .scroll {
  position: absolute; bottom: 32%; left: 42%;
  width: 20px; height: 8px;
  background: #d4c9b8;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: xcd-scroll 10s ease-in-out infinite alternate;
}
.scn-xenophons-colony-dream .shadow {
  position: absolute; bottom: 20%; left: 25%; right: 50%; height: 15%;
  background: rgba(0,0,0,.6);
  filter: blur(4px);
  animation: xcd-shadow 3s ease-in-out infinite alternate;
}
@keyframes xcd-lamp {
  0% { transform: scale(1); opacity: .9; box-shadow: 0 0 30px 10px #FF8C00; }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px #FF8C00; }
  100% { transform: scale(0.95); opacity: .8; box-shadow: 0 0 25px 8px #FF8C00; }
}
@keyframes xcd-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xcd-soothsayer {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes xcd-scroll {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.2); }
  100% { transform: scaleX(0.9); }
}
@keyframes xcd-shadow {
  0% { opacity: .5; transform: skewX(0deg); }
  50% { opacity: .7; transform: skewX(2deg); }
  100% { opacity: .4; transform: skewX(-2deg); }
}

.scn-timasion-bribe-and-plot {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #4a4a5e 0%, transparent 70%);
}
.scn-timasion-bribe-and-plot .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a3a4e 0%, #1a1a2e 100%);
}
.scn-timasion-bribe-and-plot .table {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 12px;
  background: linear-gradient(180deg, #5C4033 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-timasion-bribe-and-plot .coins {
  position: absolute; bottom: 40%; left: 48%; transform: translateX(-50%);
  width: 30px; height: 10px;
  background: repeating-radial-gradient(circle at 5px 5px, #FFD700, #FFD700 2px, transparent 2px, transparent 4px);
  animation: tbp-coins 2s ease-in-out infinite alternate;
}
.scn-timasion-bribe-and-plot .figure-left {
  position: absolute; bottom: 20%; left: 20%;
  width: 18px; height: 26px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tbp-figure 3s ease-in-out infinite;
}
.scn-timasion-bribe-and-plot .figure-right {
  position: absolute; bottom: 20%; right: 20%;
  width: 18px; height: 26px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tbp-figure 3.5s ease-in-out infinite reverse;
}
.scn-timasion-bribe-and-plot .bag {
  position: absolute; bottom: 32%; right: 25%;
  width: 20px; height: 14px;
  background: #5C4033;
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: tbp-bag 4s ease-in-out infinite alternate;
}
.scn-timasion-bribe-and-plot .shadow {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 10%;
  background: rgba(0,0,0,.5);
  filter: blur(6px);
  animation: tbp-shadow 2s ease-in-out infinite alternate;
}
@keyframes tbp-coins {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(5deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-5deg) scale(0.95); }
}
@keyframes tbp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tbp-bag {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes tbp-shadow {
  0% { opacity: .6; transform: scaleX(1); }
  50% { opacity: .8; transform: scaleX(1.1); }
  100% { opacity: .5; transform: scaleX(0.9); }
}

.scn-panic-and-punishment {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a0a0a 100%), radial-gradient(ellipse at 20% 30%, #8B2500 0%, transparent 70%);
}
.scn-panic-and-punishment .bg-scene {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a0d0d 0%, #0d0d1a 100%);
}
.scn-panic-and-punishment .crowd {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: repeating-radial-gradient(circle at 10px 10px, #1a1a1a, #1a1a1a 3px, transparent 3px, transparent 8px);
  filter: blur(1px);
  animation: pap-crowd 4s ease-in-out infinite alternate;
}
.scn-panic-and-punishment .victim {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 24px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pap-victim 1s ease-in-out infinite alternate;
}
.scn-panic-and-punishment .stones {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(circle at 20% 50%, #333, #333 2px, transparent 2px),
              radial-gradient(circle at 50% 30%, #444, #444 1.5px, transparent 1.5px),
              radial-gradient(circle at 80% 60%, #222, #222 2px, transparent 2px);
  animation: pap-stones 0.8s ease-in-out infinite alternate;
}
.scn-panic-and-punishment .torch {
  position: absolute; bottom: 45%; left: 20%;
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #FF4500 0%, #8B2500 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px #FF4500, 0 0 60px 20px rgba(255,69,0,.3);
  animation: pap-torch 1.5s ease-in-out infinite alternate;
}
.scn-panic-and-punishment .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: pap-water 3s ease-in-out infinite alternate;
}
@keyframes pap-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes pap-victim {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  50% { transform: translateX(-50%) rotate(5deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-5deg) scale(0.95); }
}
@keyframes pap-stones {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pap-torch {
  0% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: .7; }
}
@keyframes pap-water {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.2); }
  100% { transform: scaleY(1); }
}
/* end per-scene blocks */
