/* 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-greek-army-hears-news {
  background:
    linear-gradient(180deg, #1a1028 0%, #3a1a1a 30%, #5a2a1a 60%, #7a3a2a 100%),
    radial-gradient(ellipse at 40% 100%, #b05030 0%, transparent 60%),
    linear-gradient(0deg, #0a0810 0%, transparent 40%);
}
.scn-greek-army-hears-news .sky-dusk {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a1a3a 0%, #5a2a1a 40%, transparent 100%);
  animation: grk-skyglow 8s ease-in-out infinite alternate;
}
.scn-greek-army-hears-news .horizon {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 80% 20% 0 0 / 90% 15% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: grk-horizon 12s ease-in-out infinite alternate;
}
.scn-greek-army-hears-news .tent {
  position: absolute; bottom: 25%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a2818 0%, #1a0e06 100%);
  border-radius: 30% 30% 5% 5% / 60% 60% 5% 5%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-greek-army-hears-news .tent-left { left: 15%; }
.scn-greek-army-hears-news .tent-right { right: 20%; }
.scn-greek-army-hears-news .soldiers {
  position: absolute; bottom: 24%; left: 35%; right: 35%;
  height: 50px;
  display: flex; justify-content: space-around;
}
.scn-greek-army-hears-news .soldiers::before,
.scn-greek-army-hears-news .soldiers::after {
  content: ''; display: block; width: 12px; height: 40px;
  background: #0a0806;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-greek-army-hears-news .soldiers::before {
  animation: grk-soldierA 2.5s ease-in-out infinite;
}
.scn-greek-army-hears-news .soldiers::after {
  animation: grk-soldierB 3s ease-in-out infinite 1s;
}
.scn-greek-army-hears-news .campfire {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 16px;
  background: radial-gradient(circle, #ffa040 0%, #c06020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #c06020, 0 0 80px 40px rgba(192,96,32,0.4);
  animation: grk-fire 2s ease-in-out infinite alternate;
}
.scn-greek-army-hears-news .smoke {
  position: absolute; bottom: 38%; left: 48%;
  width: 30px; height: 24px;
  background: rgba(80,60,40,0.25);
  border-radius: 50%;
  filter: blur(12px);
}
.scn-greek-army-hears-news .smoke-a {
  animation: grk-smokeA 6s linear infinite;
}
.scn-greek-army-hears-news .smoke-b {
  animation: grk-smokeB 8s linear infinite 3s;
}
.scn-greek-army-hears-news .flag {
  position: absolute; top: 20%; right: 10%;
  width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a3a2a 0%, #5a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  transform-origin: left center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: grk-flag 3s ease-in-out infinite;
}
@keyframes grk-skyglow {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes grk-horizon {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes grk-soldierA {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(6px) rotate(0deg); }
  75% { transform: translateX(3px) rotate(2deg); }
}
@keyframes grk-soldierB {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(2deg); }
  50% { transform: translateX(-6px) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
}
@keyframes grk-fire {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 30px 10px #c06020; }
  50% { transform: scale(1.1) translateY(-4px); opacity: 1; box-shadow: 0 0 50px 20px #c06020; }
  100% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 35px 12px #c06020; }
}
@keyframes grk-smokeA {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-20px) scale(1.5) translateX(10px); opacity: 0.3; }
  100% { transform: translateY(-40px) scale(2) translateX(20px); opacity: 0; }
}
@keyframes grk-smokeB {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-30px) scale(1.3) translateX(-15px); opacity: 0.2; }
  100% { transform: translateY(-50px) scale(2.2) translateX(-30px); opacity: 0; }
}
@keyframes grk-flag {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}

/* cressida-ordered-away */
.scn-cressida-ordered-away { background: linear-gradient(180deg, #1a0a0a 0%, #2a1410 40%, #3a1a10 100%), radial-gradient(ellipse at 50% 70%, #4a2010 0%, transparent 60%); }
.scn-cressida-ordered-away .bg-chamber { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0a0a 0%, #2a1410 100%); animation: coa-fade 12s ease-in-out infinite alternate; }
.scn-cressida-ordered-away .fire { position:absolute; bottom:25%; left:45%; width:40px; height:60px; background: radial-gradient(ellipse 60% 100% at 50% 100%, #e07030 0%, #c05020 40%, transparent 70%); border-radius:50%; filter: blur(8px); animation: coa-fire 2s ease-in-out infinite alternate; }
.scn-cressida-ordered-away .figure { position:absolute; bottom:32%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: coa-walk 5s ease-in-out infinite; }
.scn-cressida-ordered-away .column { position:absolute; bottom:20%; left:30%; width:12px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:10%; box-shadow: 0 0 20px rgba(0,0,0,.6); animation: coa-sway 8s ease-in-out infinite alternate; }
.scn-cressida-ordered-away .shadow { position:absolute; bottom:20%; left:35%; width:50px; height:20px; background: radial-gradient(ellipse 100% 100% at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%); animation: coa-pulse 4s ease-in-out infinite; }
.scn-cressida-ordered-away .glow { position:absolute; bottom:30%; left:40%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,80,30,.4) 0%, transparent 70%); animation: coa-glow 3s ease-in-out infinite alternate; }
@keyframes coa-fade  { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes coa-fire  { 0% { transform: scaleY(.8) rotate(-2deg); opacity:.9 } 50% { transform: scaleY(1.2) rotate(2deg); opacity:1 } 100% { transform: scaleY(.9) rotate(-1deg); opacity:.95 } }
@keyframes coa-walk  { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-8px) rotate(1deg) } 50% { transform: translateX(-15px) rotate(-1deg) } 75% { transform: translateX(-8px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes coa-sway  { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.01) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes coa-pulse { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(1) } }
@keyframes coa-glow  { 0% { opacity:.5; transform: scale(.9) } 50% { opacity:.9; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }

/* cressida-learns-fate */
.scn-cressida-learns-fate { background: linear-gradient(180deg, #1a0505 0%, #2a0e0a 50%, #3a1410 100%), radial-gradient(ellipse at 50% 60%, #3a1410 0%, transparent 70%); }
.scn-cressida-learns-fate .bg-room { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0505 0%, transparent 100%); animation: clf-dim 15s ease-in-out infinite alternate; }
.scn-cressida-learns-fate .table { position:absolute; bottom:35%; left:35%; width:60px; height:8px; background: linear-gradient(180deg, #2a1a0a 0%, #1a100a 100%); border-radius:10%; box-shadow: inset 0 2px 4px rgba(0,0,0,.5); }
.scn-cressida-learns-fate .fireplace { position:absolute; bottom:25%; left:20%; width:50px; height:70px; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%); border-radius:20% 20% 10% 10%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.7); }
.scn-cressida-learns-fate .figure-kneeling { position:absolute; bottom:30%; left:45%; width:18px; height:35px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: clf-kneel 6s ease-in-out infinite; }
.scn-cressida-learns-fate .figure-standing { position:absolute; bottom:30%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: clf-stand 8s ease-in-out infinite alternate; }
.scn-cressida-learns-fate .window { position:absolute; bottom:30%; left:60%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: clf-window 5s ease-in-out infinite alternate; }
.scn-cressida-learns-fate .candle { position:absolute; bottom:40%; left:50%; width:4px; height:10px; background: radial-gradient(ellipse 100% 100% at 50% 0%, #e08030 0%, #c05020 60%, transparent 100%); border-radius:50%; animation: clf-candle 2s ease-in-out infinite alternate; }
@keyframes clf-dim   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes clf-kneel { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-3deg) } 50% { transform: translateY(1px) rotate(2deg) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes clf-stand { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes clf-window { 0% { opacity:.6; transform: scaleX(1) } 50% { opacity:.9; transform: scaleX(1.05) } 100% { opacity:.7; transform: scaleX(1) } }
@keyframes clf-candle { 0% { transform: scaleY(.8) } 50% { transform: scaleY(1.3) } 100% { transform: scaleY(.9) } }

/* cressida-vows-fidelity */
.scn-cressida-vows-fidelity { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-cressida-vows-fidelity .bg-warm { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%); animation: cvf-warm 14s ease-in-out infinite alternate; }
.scn-cressida-vows-fidelity .doorway { position:absolute; bottom:30%; left:30%; width:70px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-cressida-vows-fidelity .hearth { position:absolute; bottom:25%; left:35%; width:40px; height:20px; background: radial-gradient(ellipse 100% 100% at 50% 100%, #c06030 0%, #804020 50%, transparent 100%); border-radius:50%; filter: blur(4px); }
.scn-cressida-vows-fidelity .figure-profile { position:absolute; bottom:30%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; clip-path: inset(0 0 0 30%); transform: rotate(15deg); animation: cvf-turn 8s ease-in-out infinite; }
.scn-cressida-vows-fidelity .figure-hand { position:absolute; bottom:35%; left:38%; width:6px; height:8px; background: #2a1a0a; border-radius:40% 40% 20% 20%; transform: rotate(20deg); animation: cvf-hand 4s ease-in-out infinite alternate; }
.scn-cressida-vows-fidelity .glow-warm { position:absolute; bottom:30%; left:30%; width:100px; height:100px; background: radial-gradient(circle, rgba(200,120,40,.3) 0%, transparent 70%); animation: cvf-glow 3s ease-in-out infinite alternate; }
@keyframes cvf-warm { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cvf-turn { 0% { transform: rotate(10deg) scaleY(1) } 50% { transform: rotate(20deg) scaleY(1.02) } 100% { transform: rotate(10deg) scaleY(1) } }
@keyframes cvf-hand { 0% { transform: rotate(15deg) translate(0,0) } 50% { transform: rotate(25deg) translate(2px,-2px) } 100% { transform: rotate(15deg) translate(0,0) } }
@keyframes cvf-glow { 0% { opacity:.4; transform: scale(.9) } 50% { opacity:.8; transform: scale(1.15) } 100% { opacity:.5; transform: scale(1) } }

/* street-before-pandarus */
.scn-street-before-pandarus { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 30%, #4a3a5a 60%, #6a5a4a 100%), radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, transparent 60%); }
.scn-street-before-pandarus .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4a 0%, #4a3a5a 40%, #6a5a4a 100%); animation: sbp-sky 20s ease-in-out infinite alternate; }
.scn-street-before-pandarus .sun { position:absolute; top:5%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #d0b060 0%, #c09040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(200,160,80,.3); animation: sbp-sunrise 40s linear infinite; }
.scn-street-before-pandarus .street { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; }
.scn-street-before-pandarus .house { position:absolute; bottom:35%; left:20%; width:100px; height:90px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-street-before-pandarus .door { position:absolute; bottom:35%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius:10% 10% 0 0; animation: sbp-door 6s ease-in-out infinite; }
.scn-street-before-pandarus .figure-pandarus { position:absolute; bottom:32%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sbp-pan 4s ease-in-out infinite alternate; }
.scn-street-before-pandarus .figure-cressida { position:absolute; bottom:32%; left:55%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sbp-cress 5s ease-in-out infinite alternate; }
.scn-street-before-pandarus .shadow-long { position:absolute; bottom:30%; left:40%; width:80px; height:10px; background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, transparent 100%); transform-origin: left center; animation: sbp-shadow 8s ease-in-out infinite alternate; }
@keyframes sbp-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sbp-sunrise { 0% { transform: translate(-20px, 10px) scale(.9); opacity:.6 } 50% { transform: translate(0,0) scale(1); opacity:1 } 100% { transform: translate(20px, 5px) scale(.95); opacity:.8 } }
@keyframes sbp-door   { 0% { transform: scaleX(1) } 50% { transform: scaleX(.3) } 100% { transform: scaleX(1) } }
@keyframes sbp-pan    { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sbp-cress  { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sbp-shadow { 0% { transform: scaleX(1); opacity:.4 } 50% { transform: scaleX(1.3); opacity:.7 } 100% { transform: scaleX(1); opacity:.5 } }

/* Scene: pandarus-departs (warm, sunlit) */
.scn-pandarus-departs {
  background: linear-gradient(180deg, #4a7a9a 0%, #8ab0c8 30%, #d8c080 60%, #c09050 100%), radial-gradient(ellipse at 50% 60%, #f0d080 0%, transparent 60%);
}
.scn-pandarus-departs .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #6a8caa 0%, #b0c8d8 40%, transparent 100%); animation: pd-sky 10s ease-in-out infinite alternate; }
.scn-pandarus-departs .city-wall { position: absolute; bottom: 30%; left: 5%; right: 20%; height: 35%; background: linear-gradient(180deg, #a08050 0%, #806030 50%, #604020 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); }
.scn-pandarus-departs .figure-left { position: absolute; bottom: 22%; left: 20%; width: 20px; height: 50px; background: linear-gradient(180deg, #604030 0%, #302010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-figure-left 6s ease-in-out infinite; }
.scn-pandarus-departs .figure-right { position: absolute; bottom: 22%; right: 25%; width: 22px; height: 52px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-figure-right 7s ease-in-out infinite; }
.scn-pandarus-departs .token { position: absolute; bottom: 30%; left: 30%; width: 8px; height: 8px; background: radial-gradient(circle, #d0a050 0%, #b07030 70%); border-radius: 50%; box-shadow: 0 0 10px 3px #c08040; animation: pd-token 4s ease-in-out infinite; }
.scn-pandarus-departs .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(180deg, #a07040 0%, #705020 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.3); }
.scn-pandarus-departs .sunlight { position: absolute; top: 5%; left: 30%; width: 120px; height: 100px; background: radial-gradient(ellipse, rgba(255,230,150,0.3) 0%, transparent 70%); filter: blur(10px); animation: pd-sun 12s ease-in-out infinite alternate; }
@keyframes pd-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pd-figure-left { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-2px) rotate(1deg); } }
@keyframes pd-figure-right { 0%,100% { 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(-9px) translateY(-1px) rotate(-1deg); } }
@keyframes pd-token { 0%,100% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.2) rotate(10deg); opacity: 1; } }
@keyframes pd-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-5px); } 100% { transform: scale(0.95) translateY(2px); } }

/* Scene: cressid-soliloquy (calm, sunlit) */
.scn-cressid-soliloquy {
  background: linear-gradient(180deg, #c8d8e0 0%, #e0e8f0 30%, #f0e8d0 70%, #d0c090 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 60%);
}
.scn-cressid-soliloquy .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #d8d0b0 0%, #b8a880 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,0.1); }
.scn-cressid-soliloquy .window-frame { position: absolute; top: 15%; left: 35%; width: 120px; height: 140px; border: 8px solid #806040; background: linear-gradient(180deg, #b0c8d0 0%, #d0d8e0 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-cressid-soliloquy .curtain-left { position: absolute; top: 12%; left: 32%; width: 40px; height: 150px; background: linear-gradient(180deg, #d0b890 0%, #b09870 100%); border-radius: 4px 0 0 8px; transform-origin: top left; animation: cs-curtain-l 8s ease-in-out infinite alternate; }
.scn-cressid-soliloquy .curtain-right { position: absolute; top: 12%; right: 30%; width: 40px; height: 150px; background: linear-gradient(180deg, #d0b890 0%, #b09870 100%); border-radius: 0 4px 8px 0; transform-origin: top right; animation: cs-curtain-r 8s ease-in-out infinite alternate; }
.scn-cressid-soliloquy .figure-profile { position: absolute; bottom: 25%; left: 38%; width: 18px; height: 60px; background: linear-gradient(180deg, #c0a880 0%, #907050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); transform-origin: bottom center; animation: cs-figure 6s ease-in-out infinite; box-shadow: -2px 0 6px rgba(0,0,0,0.2); }
.scn-cressid-soliloquy .letter { position: absolute; bottom: 28%; left: 34%; width: 12px; height: 16px; background: #f0e0c0; border: 1px solid #b0a080; border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: cs-letter 5s ease-in-out infinite; }
.scn-cressid-soliloquy .sunbeam { position: absolute; top: 10%; left: 30%; width: 100px; height: 200px; background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%); filter: blur(8px); animation: cs-beam 10s ease-in-out infinite alternate; }
.scn-cressid-soliloquy .dust { position: absolute; top: 20%; left: 40%; width: 4px; height: 4px; background: rgba(240,230,200,0.6); border-radius: 50%; filter: blur(1px); animation: cs-dust 5s linear infinite; }
@keyframes cs-curtain-l { 0% { transform: rotate(0deg) scaleX(1); } 100% { transform: rotate(8deg) scaleX(1.05); } }
@keyframes cs-curtain-r { 0% { transform: rotate(0deg) scaleX(1); } 100% { transform: rotate(-8deg) scaleX(1.05); } }
@keyframes cs-figure { 0%,100% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-3px) rotate(4deg); } }
@keyframes cs-letter { 0%,100% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-2px) rotate(-8deg); } }
@keyframes cs-beam { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.05); } 100% { opacity: 0.4; transform: scaleY(0.95); } }
@keyframes cs-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 20% { opacity: 0.6; } 80% { opacity: 0.4; } 100% { transform: translate(30px, -60px) scale(0.5); opacity: 0; } }

/* Scene: agamemnon-counsel (tense, sunlit) */
.scn-agamemnon-counsel {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #a09070 60%, #c0a880 100%), radial-gradient(ellipse at 40% 40%, #e0c080 0%, transparent 70%);
}
.scn-agamemnon-counsel .tent-bg { position: absolute; inset: 0 0 15% 0; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%); border-radius: 0 0 30% 30%; filter: blur(2px); }
.scn-agamemnon-counsel .table { position: absolute; bottom: 25%; left: 20%; right: 20%; height: 8%; background: linear-gradient(180deg, #604020 0%, #402810 100%); border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-agamemnon-counsel .figure-king { position: absolute; bottom: 25%; left: 45%; width: 28px; height: 70px; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(1.2); transform-origin: bottom center; animation: ac-king 5s ease-in-out infinite; }
.scn-agamemnon-counsel .figure-right { position: absolute; bottom: 25%; right: 22%; width: 22px; height: 60px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); transform-origin: bottom center; animation: ac-figure-r 6s ease-in-out infinite; }
.scn-agamemnon-counsel .figure-left { position: absolute; bottom: 25%; left: 18%; width: 20px; height: 55px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); transform-origin: bottom center; animation: ac-figure-l 7s ease-in-out infinite; }
.scn-agamemnon-counsel .map { position: absolute; bottom: 30%; left: 38%; width: 40px; height: 30px; background: linear-gradient(180deg, #b0a080 0%, #907060 100%); border: 2px solid #604020; border-radius: 4px; transform: rotate(3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ac-map 8s ease-in-out infinite; }
.scn-agamemnon-counsel .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.5) 100%); }
@keyframes ac-king { 0%,100% { transform: translateY(0) scaleX(1.2) rotate(0deg); } 25% { transform: translateY(-2px) scaleX(1.15) rotate(1deg); } 50% { transform: translateY(0) scaleX(1.2) rotate(0deg); } 75% { transform: translateY(-1px) scaleX(1.25) rotate(-1deg); } }
@keyframes ac-figure-r { 0%,100% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(2px) rotate(-8deg); } }
@keyframes ac-figure-l { 0%,100% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(1px) rotate(7deg); } }
@keyframes ac-map { 0%,100% { transform: translateY(0) rotate(3deg); opacity: 0.9; } 50% { transform: translateY(-3px) rotate(5deg); opacity: 1; } }

/* Scene: agamemnon-trial-speech (tense, sunlit) */
.scn-agamemnon-trial-speech {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a2a 30%, #8a7a5a 60%, #b0a080 100%), radial-gradient(ellipse at 50% 40%, #d0b070 0%, transparent 70%);
}
.scn-agamemnon-trial-speech .horizon { position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-agamemnon-trial-speech .war-stand { position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-agamemnon-trial-speech .banner-left { position: absolute; bottom: 32%; left: 15%; width: 40px; height: 60px; background: linear-gradient(180deg, #a06030 0%, #804020 100%); border-radius: 4px; transform: rotate(-15deg); transform-origin: bottom center; animation: at-banner-l 9s ease-in-out infinite alternate; }
.scn-agamemnon-trial-speech .banner-right { position: absolute; bottom: 32%; right: 15%; width: 40px; height: 60px; background: linear-gradient(180deg, #a06030 0%, #804020 100%); border-radius: 4px; transform: rotate(15deg); transform-origin: bottom center; animation: at-banner-r 9s ease-in-out infinite alternate; }
.scn-agamemnon-trial-speech .figure-center { position: absolute; bottom: 18%; left: 44%; width: 30px; height: 80px; background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(1.3); transform-origin: bottom center; animation: at-figure-c 4s ease-in-out infinite; }
.scn-agamemnon-trial-speech .figure-crowd { position: absolute; bottom: 18%; left: 10%; right: 10%; height: 70px; background: repeating-linear-gradient(
    90deg,
    transparent 0px,
    transparent 8px,
    #4a3a1a 8px,
    #4a3a1a 12px,
    transparent 12px,
    transparent 18px,
    #3a2a0a 18px,
    #3a2a0a 22px,
    transparent 22px,
    transparent 28px
  ); mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 80%); -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 80%); animation: at-crowd 3s ease-in-out infinite; }
.scn-agamemnon-trial-speech .light-rays { position: absolute; top: 5%; left: 20%; right: 20%; height: 80px; background: repeating-linear-gradient(
    90deg,
    transparent 0px,
    transparent 10px,
    rgba(255,220,150,0.15) 10px,
    rgba(255,220,150,0.15) 16px,
    transparent 16px,
    transparent 26px
  ); filter: blur(3px); animation: at-rays 8s ease-in-out infinite alternate; }
@keyframes at-banner-l { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.05); } 100% { transform: rotate(-18deg) scaleY(1); } }
@keyframes at-banner-r { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.05); } 100% { transform: rotate(18deg) scaleY(1); } }
@keyframes at-figure-c { 0%,100% { transform: translateY(0) scaleX(1.3) rotate(0deg); } 25% { transform: translateY(-2px) scaleX(1.25) rotate(2deg); } 50% { transform: translateY(0) scaleX(1.3) rotate(0deg); } 75% { transform: translateY(1px) scaleX(1.35) rotate(-2deg); } }
@keyframes at-crowd { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes at-rays { 0% { opacity: 0.3; transform: translateX(-5px) scaleX(1); } 50% { opacity: 0.6; transform: translateX(0) scaleX(1.05); } 100% { opacity: 0.4; transform: translateX(5px) scaleX(0.95); } }

.scn-debate-helen-worth { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a12 50%, #3a180a 100%), radial-gradient(ellipse at 50% 60%, #8a3a1a 0%, transparent 70%); }
.scn-debate-helen-worth .fire-back { position:absolute; bottom:10%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse, #ff8c40 0%, #c05020 40%, transparent 70%); border-radius:50%; filter: blur(8px); animation: dh-fire 3s ease-in-out infinite alternate; }
.scn-debate-helen-worth .brazier { position:absolute; bottom:6%; left:48%; width:60px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #6a3a1a 0%, #2a180a 100%); border-radius:40% 40% 10% 10%; box-shadow: inset 0 -8px 12px #1a0a02; animation: dh-brazier 5s ease-in-out infinite; }
.scn-debate-helen-worth .figure-left { position:absolute; bottom:2%; left:28%; width:40px; height:90px; background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%); border-radius: 50% 30% 40% 40% / 60% 50% 50% 50%; transform-origin: bottom center; animation: dh-figure-l 4s ease-in-out infinite; }
.scn-debate-helen-worth .figure-right { position:absolute; bottom:2%; right:28%; width:40px; height:80px; background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%); border-radius: 30% 50% 40% 40% / 50% 60% 50% 50%; transform-origin: bottom center; animation: dh-figure-r 4s ease-in-out infinite; }
.scn-debate-helen-worth .shadow-floor { position:absolute; bottom:1%; left:10%; right:10%; height:20px; background: linear-gradient(180deg, transparent 0%, #0a0400 100%); border-radius:50%; filter: blur(4px); animation: dh-shadow 6s ease-in-out infinite; }
.scn-debate-helen-worth .ember { position:absolute; bottom:16%; left:52%; width:4px; height:4px; background: #ffa040; border-radius:50%; box-shadow: 0 0 8px 2px #ffa040; animation: dh-ember 2s ease-in-out infinite alternate; }
@keyframes dh-fire { 0% { transform: translateX(-50%) scale(1); opacity:.8 } 50% { transform: translateX(-50%) scale(1.15); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:.85 } }
@keyframes dh-brazier { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes dh-figure-l { 0% { transform: rotate(0) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(0) } }
@keyframes dh-figure-r { 0% { transform: rotate(0) } 25% { transform: rotate(-4deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0) } }
@keyframes dh-shadow { 0%,100% { opacity:.3 } 50% { opacity:.6 } }
@keyframes dh-ember { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-20px) scale(0.5) opacity:0 } }

.scn-pandarus-court-dawn { background: linear-gradient(180deg, #5a3a2a 0%, #8a6a4a 40%, #c09070 100%), radial-gradient(ellipse at 70% 30%, #f0d0a0 0%, transparent 60%); }
.scn-pandarus-court-dawn .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffc080 0%, #ffa060 40%, #906040 100%); animation: pc-sky 12s ease-in-out infinite alternate; }
.scn-pandarus-court-dawn .window-frame { position:absolute; top:5%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a02 100%); border-radius:20% 20% 10% 10%; box-shadow: inset 0 0 20px #1a0a02; }
.scn-pandarus-court-dawn .curtain-left { position:absolute; top:5%; left:35%; width:20%; height:60%; background: linear-gradient(180deg, #7a4a3a 0%, #3a1a12 100%); border-radius:0 40% 40% 0; transform-origin: left; animation: pc-curtain 8s ease-in-out infinite; }
.scn-pandarus-court-dawn .curtain-right { position:absolute; top:5%; right:35%; width:20%; height:60%; background: linear-gradient(180deg, #7a4a3a 0%, #3a1a12 100%); border-radius:40% 0 0 40%; transform-origin: right; animation: pc-curtain 8s ease-in-out infinite reverse; }
.scn-pandarus-court-dawn .bed { position:absolute; bottom:8%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; }
.scn-pandarus-court-dawn .figure-cressida { position:absolute; bottom:12%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a02 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: pc-figure 6s ease-in-out infinite; }
.scn-pandarus-court-dawn .figure-pandarus { position:absolute; bottom:12%; left:55%; width:35px; height:60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1208 100%); border-radius:30% 40% 30% 30% / 50% 60% 40% 40%; animation: pc-figure 6s ease-in-out infinite reverse; }
.scn-pandarus-court-dawn .lark { position:absolute; top:8%; left:30%; width:20px; height:10px; background: #2a1a0a; border-radius:50% 50% 50% 50% / 50% 50% 50% 50%; transform:rotate(-30deg); animation: pc-lark 15s linear infinite; }
@keyframes pc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pc-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }
@keyframes pc-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pc-lark { 0% { transform: translateX(0) rotate(-30deg) } 30% { transform: translateX(30px) rotate(5deg) } 60% { transform: translateX(60px) rotate(-10deg) } 100% { transform: translateX(120px) rotate(-30deg) } }

.scn-pandarus-mocking { background: linear-gradient(180deg, #1a120a 0%, #3a2a1a 100%), radial-gradient(ellipse at 50% 40%, #8a7050 0%, transparent 70%); }
.scn-pandarus-mocking .interior-bg { position:absolute; inset:0; background: linear-gradient(90deg, #1a120a 0%, #2a1a0a 50%, #1a120a 100%); animation: pm-bg 5s ease-in-out infinite alternate; }
.scn-pandarus-mocking .candle { position:absolute; bottom:8%; left:15%; width:10px; height:30px; background: linear-gradient(180deg, #c0a070 0%, #806040 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px 6px #ffc080; animation: pm-candle 3s ease-in-out infinite; }
.scn-pandarus-mocking .table { position:absolute; bottom:5%; left:10%; right:10%; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #2a180a 100%); border-radius:20% 20% 10% 10%; }
.scn-pandarus-mocking .figure-pandarus { position:absolute; bottom:10%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #4a3020 0%, #1a0a02 100%); border-radius: 50% 30% 40% 40% / 60% 50% 50% 50%; transform-origin: bottom center; animation: pm-pandarus 2s ease-in-out infinite; }
.scn-pandarus-mocking .figure-other { position:absolute; bottom:10%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #3a2012 0%, #1a0a02 100%); border-radius: 30% 50% 40% 40% / 50% 60% 50% 50%; animation: pm-other 2.5s ease-in-out infinite; }
.scn-pandarus-mocking .shadow-back { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, #0a0400 100%); animation: pm-shadow 4s ease-in-out infinite; }
.scn-pandarus-mocking .chair { position:absolute; bottom:5%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a1a 0%, #2a180a 100%); border-radius:20% 20% 40% 40%; box-shadow: inset 0 -4px 6px #1a0a02; }
@keyframes pm-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pm-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.9) translateY(2px) } }
@keyframes pm-pandarus { 0% { transform: rotate(-5deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(-8deg) } 75% { transform: rotate(12deg) } 100% { transform: rotate(-5deg) } }
@keyframes pm-other { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pm-shadow { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

.scn-aeneas-arrival { background: linear-gradient(180deg, #1a0a00 0%, #3a1a08 50%, #2a0e02 100%), radial-gradient(ellipse at 50% 70%, #8a3a1a 0%, transparent 60%); }
.scn-aeneas-arrival .tent-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a180a 0%, #1a0a02 100%); border-radius:20% 20% 0 0; }
.scn-aeneas-arrival .brazier { position:absolute; bottom:12%; left:50%; width:70px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse, #ff6a20 0%, #c04010 40%, #2a0e02 70%); border-radius:50%; filter: blur(6px); animation: aa-brazier 4s ease-in-out infinite alternate; }
.scn-aeneas-arrival .figure-aeneas { position:absolute; bottom:2%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%); border-radius: 50% 30% 40% 40% / 60% 50% 50% 50%; transform-origin: bottom center; animation: aa-figure-l 3s ease-in-out infinite; }
.scn-aeneas-arrival .figure-troilus { position:absolute; bottom:2%; right:25%; width:40px; height:85px; background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%); border-radius: 30% 50% 40% 40% / 50% 60% 50% 50%; transform-origin: bottom center; animation: aa-figure-r 3s ease-in-out infinite; }
.scn-aeneas-arrival .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a180a 0%, #1a0a02 100%); border-radius:40% 40% 0 0; }
.scn-aeneas-arrival .spear { position:absolute; bottom:20%; left:30%; width:4px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a12 100%); border-radius:2px; transform:rotate(15deg); animation: aa-spear 6s ease-in-out infinite; }
.scn-aeneas-arrival .shadow-camp { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, #0a0400 100%); animation: aa-shadow 5s ease-in-out infinite; }
@keyframes aa-brazier { 0% { transform: translateX(-50%) scale(1); opacity:.8 } 50% { transform: translateX(-50%) scale(1.2); opacity:1 } 100% { transform: translateX(-50%) scale(0.9); opacity:.7 } }
@keyframes aa-figure-l { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes aa-figure-r { 0% { transform: rotate(0) } 25% { transform: rotate(-3deg) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes aa-spear { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } }
@keyframes aa-shadow { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

.scn-hector-andromache-plea {
  background: linear-gradient(180deg, #2a1a3a 0%, #4a3a5a 40%, #8a6a4a 70%, #c8a86a 100%),
              radial-gradient(ellipse at 30% 80%, #c8a86a 0%, transparent 60%);
}
.scn-hector-andromache-plea .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a4a 0%, #6a4a3a 50%, #b08a5a 100%); animation: hap-sky 20s ease-in-out infinite alternate; }
.scn-hector-andromache-plea .tent-wall { position:absolute; bottom:0; left:20%; right:20%; height:70%; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,.5); transform-origin: bottom center; animation: hap-tent 12s ease-in-out infinite alternate; }
.scn-hector-andromache-plea .tent-open { position:absolute; bottom:30%; left:35%; right:35%; height:45%; background: linear-gradient(180deg, rgba(8,8,16,.8) 0%, rgba(20,10,5,.9) 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-hector-andromache-plea .figure-hector { position:absolute; bottom:22%; left:48%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hap-hector 4s ease-in-out infinite; }
.scn-hector-andromache-plea .figure-andromache { position:absolute; bottom:25%; left:36%; width:20px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: hap-andro 6s ease-in-out infinite; }
.scn-hector-andromache-plea .armor-pile { position:absolute; bottom:18%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: hap-armor 3s ease-in-out infinite alternate; }
.scn-hector-andromache-plea .morning-glow { position:absolute; bottom:40%; left:30%; right:30%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(200,168,106,.4) 0%, transparent 100%); filter: blur(10px); animation: hap-glow 8s ease-in-out infinite alternate; }
@keyframes hap-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hap-tent { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes hap-hector { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes hap-andro { 0% { transform: translateX(0) translateY(0) skewX(0) } 50% { transform: translateX(-4px) translateY(-1px) skewX(2deg) } 100% { transform: translateX(0) translateY(0) skewX(0) } }
@keyframes hap-armor { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-2px) scale(1.03) } }
@keyframes hap-glow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-cassandra-prophecy {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #4a3a3a 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%);
}
.scn-cassandra-prophecy .temple-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a1a 100%); animation: cp-bg 30s ease-in-out infinite alternate; }
.scn-cassandra-prophecy .pillar-left { position:absolute; bottom:0; left:10%; width:12px; height:80%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%); border-radius: 2px; box-shadow: inset -2px 0 6px rgba(0,0,0,.5); animation: cp-pillar 15s ease-in-out infinite alternate; }
.scn-cassandra-prophecy .pillar-right { position:absolute; bottom:0; right:10%; width:12px; height:80%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%); border-radius: 2px; box-shadow: inset 2px 0 6px rgba(0,0,0,.5); animation: cp-pillar 15s ease-in-out infinite alternate-reverse; }
.scn-cassandra-prophecy .figure-cassandra { position:absolute; bottom:20%; left:45%; width:22px; height:65px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-cass 5s ease-in-out infinite; }
.scn-cassandra-prophecy .altar { position:absolute; bottom:15%; left:40%; right:40%; height:18px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: cp-altar 8s ease-in-out infinite alternate; }
.scn-cassandra-prophecy .smoke-a { position:absolute; bottom:40%; left:38%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 100%, rgba(180,160,140,.2) 0%, transparent 100%); filter: blur(6px); animation: cp-smoke-a 12s linear infinite; }
.scn-cassandra-prophecy .smoke-b { position:absolute; bottom:35%; right:38%; width:24px; height:50px; background: radial-gradient(ellipse at 50% 100%, rgba(180,160,140,.15) 0%, transparent 100%); filter: blur(5px); animation: cp-smoke-b 14s linear infinite; }
.scn-cassandra-prophecy .light-ray { position:absolute; top:10%; left:20%; right:20%; height:60%; background: linear-gradient(180deg, rgba(200,180,160,.08) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 80% 100%, 20% 100%); animation: cp-ray 9s ease-in-out infinite alternate; }
@keyframes cp-bg { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes cp-pillar { 0% { transform: scaleY(1) } 100% { transform: scaleY(.97) } }
@keyframes cp-cass { 0% { transform: translateX(0) rotate(0) scaleY(1) } 50% { transform: translateX(2px) rotate(1deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes cp-altar { 0% { transform: translateY(0) } 100% { transform: translateY(2px) } }
@keyframes cp-smoke-a { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-20px) scale(1.4); opacity:.1 } 100% { transform: translateY(0) scale(1); opacity:.3 } }
@keyframes cp-smoke-b { 0% { transform: translateY(0) scale(1); opacity:.25 } 50% { transform: translateY(-15px) scale(1.3); opacity:.05 } 100% { transform: translateY(0) scale(1); opacity:.25 } }
@keyframes cp-ray { 0% { opacity:.1; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(1.05) } 100% { opacity:.15; transform: scaleX(1) } }

.scn-priam-intervention {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #4a3a2a 70%, #6a5a3a 100%),
              radial-gradient(ellipse at 60% 20%, #8a7a5a 0%, transparent 60%);
}
.scn-priam-intervention .palace-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 30%, #3a2a1a 100%); }
.scn-priam-intervention .doorway { position:absolute; bottom:0; left:30%; right:30%; height:80%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 40% 40% 0 0 / 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-priam-intervention .figure-priam { position:absolute; bottom:20%; left:35%; width:22px; height:58px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: pi-priam 5s ease-in-out infinite; }
.scn-priam-intervention .figure-hector-p { position:absolute; bottom:22%; left:55%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pi-hector 6s ease-in-out infinite; }
.scn-priam-intervention .torch-light-a { position:absolute; bottom:30%; left:18%; width:10px; height:20px; background: radial-gradient(circle, #c8a060 0%, #8a6030 60%, transparent 100%); filter: blur(3px); animation: pi-torch-a 3s ease-in-out infinite alternate; }
.scn-priam-intervention .torch-light-b { position:absolute; bottom:28%; right:18%; width:10px; height:20px; background: radial-gradient(circle, #c8a060 0%, #8a6030 60%, transparent 100%); filter: blur(3px); animation: pi-torch-b 3.5s ease-in-out infinite alternate-reverse; }
.scn-priam-intervention .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
@keyframes pi-priam { 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 pi-hector { 0% { transform: translateX(0) translateY(0) scaleY(1) } 50% { transform: translateX(3px) translateY(-1px) scaleY(1.02) } 100% { transform: translateX(0) translateY(0) scaleY(1) } }
@keyframes pi-torch-a { 0% { opacity:.5; transform: scale(1) } 100% { opacity:1; transform: scale(1.2) } }
@keyframes pi-torch-b { 0% { opacity:.4; transform: scale(1) } 100% { opacity:.9; transform: scale(1.15) } }

.scn-troilus-reproaches {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 20%, #4a3a2a 60%, #7a6a4a 100%),
              radial-gradient(ellipse at 50% 30%, #7a6a4a 0%, transparent 70%);
}
.scn-troilus-reproaches .camp-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1a2a 0%, #4a3a3a 40%, #8a7a5a 100%); animation: tr-sky 25s ease-in-out infinite alternate; }
.scn-troilus-reproaches .camp-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 30% 0 0 0 / 10% 0 0 0; }
.scn-troilus-reproaches .tent-back { position:absolute; bottom:35%; left:10%; right:10%; height:30%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); }
.scn-troilus-reproaches .figure-troilus { position:absolute; bottom:18%; left:38%; width:22px; height:57px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-troilus 4s ease-in-out infinite; }
.scn-troilus-reproaches .figure-hector-t { position:absolute; bottom:20%; right:38%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-hector 5s ease-in-out infinite; }
.scn-troilus-reproaches .spear { position:absolute; bottom:25%; left:32%; width:3px; height:70px; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a1a 100%); transform: rotate(-15deg); transform-origin: bottom center; animation: tr-spear 6s ease-in-out infinite alternate; }
.scn-troilus-reproaches .dawn-haze { position:absolute; bottom:30%; left:20%; right:20%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,140,.15) 0%, transparent 100%); filter: blur(12px); animation: tr-haze 18s ease-in-out infinite alternate; }
@keyframes tr-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tr-troilus { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes tr-hector { 0% { transform: translateX(0) translateY(0) scaleY(1) } 50% { transform: translateX(-4px) translateY(-1px) scaleY(1.02) } 100% { transform: translateX(0) translateY(0) scaleY(1) } }
@keyframes tr-spear { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes tr-haze { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* scene: greek-camp-ajax-nestor (tag: gca) */
.scn-greek-camp-ajax-nestor {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 70%, #deb887 100%),
    radial-gradient(ellipse at 20% 30%, #f5deb3 0%, transparent 60%);
}
.scn-greek-camp-ajax-nestor .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: gca-sky 20s ease-in-out infinite alternate;
}
.scn-greek-camp-ajax-nestor .sun {
  position: absolute; top: 12%; left: 65%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffa500, 0 0 80px 40px rgba(255,165,0,0.4);
  animation: gca-sun 10s ease-in-out infinite alternate;
}
.scn-greek-camp-ajax-nestor .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
  animation: gca-hills 15s ease-in-out infinite alternate;
}
.scn-greek-camp-ajax-nestor .tent {
  position: absolute; bottom: 20%; left: 38%;
  width: 120px; height: 80px;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: gca-tent 8s ease-in-out infinite alternate;
}
.scn-greek-camp-ajax-nestor .figure-ajax {
  position: absolute; bottom: 18%; left: 42%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); /* terracotta */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gca-fig-ajax 6s ease-in-out infinite alternate;
}
.scn-greek-camp-ajax-nestor .figure-nestor {
  position: absolute; bottom: 18%; left: 54%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #b0a090 0%, #6b4e3a 100%); /* dusty grey-brown */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gca-fig-nestor 6s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-greek-camp-ajax-nestor .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
.scn-greek-camp-ajax-nestor .dust {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 10px;
  background: rgba(210,180,140,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: gca-dust 12s ease-in-out infinite alternate;
}

@keyframes gca-sky { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(1); } }
@keyframes gca-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(8px) scale(1.03); } 100% { transform: translateX(-5px) scale(0.98); } }
@keyframes gca-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes gca-tent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) rotate(0.5deg); } 100% { transform: scaleY(1); } }
@keyframes gca-fig-ajax { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gca-fig-nestor { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes gca-dust { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-6px) scale(1.2); opacity:0.6; } 100% { transform: translateY(0) scale(1); opacity:0.3; } }

/* scene: night-meeting-torches (tag: nmt) */
.scn-night-meeting-torches {
  background:
    linear-gradient(180deg, #0b0c1a 0%, #1a1a3e 40%, #2a2040 70%, #1a1020 100%),
    radial-gradient(ellipse at 50% 70%, #2a2040 0%, transparent 70%);
}
.scn-night-meeting-torches .bg-night {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #1a1a3e 0%, #0b0c1a 100%);
  animation: nmt-night 12s ease-in-out infinite alternate;
}
.scn-night-meeting-torches .arch {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  clip-path: inset(0 5% 0 5% round 20% 20% 0 0);
}
.scn-night-meeting-torches .torch-left {
  position: absolute; bottom: 22%; left: 22%;
  width: 8px; height: 40px;
  background: linear-gradient(180deg, #a0522d 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: nmt-torch-sway 4s ease-in-out infinite alternate;
}
.scn-night-meeting-torches .torch-right {
  position: absolute; bottom: 22%; right: 22%;
  width: 8px; height: 40px;
  background: linear-gradient(180deg, #a0522d 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: nmt-torch-sway 4s ease-in-out infinite alternate-reverse;
  animation-delay: -1s;
}
.scn-night-meeting-torches .figure-aeneas {
  position: absolute; bottom: 18%; left: 38%;
  width: 24px; height: 56px;
  background: linear-gradient(180deg, #702243 0%, #2a0e14 100%); /* mulberry, no red */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nmt-figure 8s ease-in-out infinite alternate;
}
.scn-night-meeting-torches .figure-paris {
  position: absolute; bottom: 18%; right: 38%;
  width: 22px; height: 54px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nmt-figure 8s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-night-meeting-torches .glow-left {
  position: absolute; bottom: 30%; left: 18%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,160,50,0.6) 0%, rgba(255,100,20,0.2) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: nmt-glow 3s ease-in-out infinite alternate;
}
.scn-night-meeting-torches .glow-right {
  position: absolute; bottom: 30%; right: 18%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,160,50,0.6) 0%, rgba(255,100,20,0.2) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: nmt-glow 3s ease-in-out infinite alternate-reverse;
  animation-delay: -1.5s;
}
@keyframes nmt-night { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes nmt-torch-sway { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-4deg); } }
@keyframes nmt-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes nmt-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.8; transform: scale(0.9); } }

/* scene: meeting-inquiry (tag: min) */
.scn-meeting-inquiry {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1410 30%, #4a2218 60%, #2a1410 100%),
    radial-gradient(ellipse at 50% 70%, #8b3a1a 0%, transparent 60%);
}
.scn-meeting-inquiry .bg-tent {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1410 0%, #1a0a0a 50%, #2a1410 100%);
  animation: min-bg 15s ease-in-out infinite alternate;
}
.scn-meeting-inquiry .tent-pole {
  position: absolute; bottom: 10%; width: 6px; height: 80%;
  background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%);
  border-radius: 3px;
}
.scn-meeting-inquiry .tent-pole.left {
  left: 20%; transform: rotate(-8deg);
  animation: min-pole 10s ease-in-out infinite alternate;
}
.scn-meeting-inquiry .tent-pole.right {
  right: 20%; transform: rotate(8deg);
  animation: min-pole 10s ease-in-out infinite alternate-reverse;
}
.scn-meeting-inquiry .figure-face {
  position: absolute; bottom: 30%; left: 38%;
  width: 18px; height: 22px;
  background: linear-gradient(180deg, #c8553d 0%, #8b3a1a 100%); /* terracotta */
  border-radius: 50% 50% 40% 40%;
  transform-origin: center bottom;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: min-face 6s ease-in-out infinite alternate;
}
.scn-meeting-inquiry .figure-shoulder {
  position: absolute; bottom: 18%; left: 34%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #702243 0%, #2a0e14 100%); /* mulberry */
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: min-shoulder 6s ease-in-out infinite alternate;
}
.scn-meeting-inquiry .fire-base {
  position: absolute; bottom: 8%; left: 42%;
  width: 40px; height: 16px;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1408 100%);
  border-radius: 30% 30% 0 0;
}
.scn-meeting-inquiry .fire-flame {
  position: absolute; bottom: 12%; left: 44%;
  width: 24px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, #ff8c00 0%, #ff4500 40%, #8b3a1a 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  box-shadow: 0 0 30px 15px rgba(255,100,20,0.5);
  animation: min-flame 2s ease-in-out infinite alternate;
}
.scn-meeting-inquiry .shadow-strip {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
@keyframes min-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes min-pole { 0% { transform: rotate(-8deg) scaleY(1); } 50% { transform: rotate(-6deg) scaleY(1.02); } 100% { transform: rotate(-8deg) scaleY(1); } }
@keyframes min-face { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes min-shoulder { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes min-flame { 0% { transform: scaleY(0.8) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.2) translateY(-4px); opacity:1; } 100% { transform: scaleY(0.8) translateY(0); opacity:0.8; } }

/* scene: troilus-lodging-news (tag: tln) */
.scn-troilus-lodging-news {
  background:
    linear-gradient(180deg, #0a0508 0%, #1a0a0a 40%, #2a1410 70%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 40%, #4a2218 0%, transparent 50%);
}
.scn-troilus-lodging-news .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-troilus-lodging-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-troilus-lodging-news .fireplace {
  position: absolute; bottom: 18%; left: 38%; right: 38%; height: 40%;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1408 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-troilus-lodging-news .fire-glow {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,140,60,0.7) 0%, transparent 100%);
  border-radius: 0 0 50% 50%;
  animation: tln-glow 3s ease-in-out infinite alternate;
}
.scn-troilus-lodging-news .figure-troilus {
  position: absolute; bottom: 15%; left: 25%;
  width: 22px; height: 54px;
  background: linear-gradient(180deg, #702243 0%, #2a0e14 100%); /* mulberry */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tln-fig 8s ease-in-out infinite alternate;
}
.scn-troilus-lodging-news .figure-messenger {
  position: absolute; bottom: 15%; right: 28%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #a0461a 0%, #5a2a0e 100%); /* rust */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tln-fig 8s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-troilus-lodging-news .table {
  position: absolute; bottom: 12%; left: 40%; right: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2010 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-troilus-lodging-news .candle {
  position: absolute; bottom: 22%; left: 48%;
  width: 4px; height: 14px;
  background: linear-gradient(180deg, #f5deb3 0%, #c0a070 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 6px rgba(255,200,100,0.4);
  animation: tln-candle 4s ease-in-out infinite alternate;
}
@keyframes tln-glow { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.7; transform: scaleY(0.95); } }
@keyframes tln-fig { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes tln-candle { 0% { transform: translateY(0) scaleY(1); opacity:0.9; } 50% { transform: translateY(-2px) scaleY(1.05); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:0.85; } }

/* nestor-boast – warm sunlit boast */
.scn-nestor-boast {
  background:
    linear-gradient(180deg, #f7d8a0 0%, #e8b570 40%, #a06a3a 100%),
    radial-gradient(ellipse at 50% 20%, #fff4d0 0%, transparent 80%);
}
.scn-nestor-boast .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9ac8e8 0%, #f7e0a0 100%);
  animation: nsb-sky 12s ease-in-out infinite alternate;
}
.scn-nestor-boast .sun {
  position: absolute; top: 8%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8d0 0%, #f0c060 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,192,96,.5);
  animation: nsb-sun 14s ease-in-out infinite alternate;
}
.scn-nestor-boast .hills {
  position: absolute; bottom: 30%; left:0; right:0; height: 30%;
  background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  animation: nsb-hills 18s ease-in-out infinite alternate;
}
.scn-nestor-boast .figure {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nsb-figure 5s ease-in-out infinite;
}
.scn-nestor-boast .arm {
  position: absolute; bottom: 52%; left: 35%; width: 12px; height: 50px;
  background: #4a3a2a;
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom left;
  animation: nsb-arm 6s ease-in-out infinite;
}
.scn-nestor-boast .cape {
  position: absolute; bottom: 30%; left: 26%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #b83a2a 0%, #6a1a0a 100%);
  border-radius: 0 60% 40% 40%;
  animation: nsb-cape 8s ease-in-out infinite alternate;
}
.scn-nestor-boast .token {
  position: absolute; bottom: 55%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0c0a0 0%, #d08050 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(208,128,80,.5);
  animation: nsb-token 4s ease-in-out infinite alternate;
}
.scn-nestor-boast .dust {
  position: absolute; top: 20%; left: 10%; width: 8px; height: 8px;
  background: rgba(255,240,180,.3); border-radius: 50%;
  filter: blur(4px);
  animation: nsb-dust 10s linear infinite;
}
@keyframes nsb-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nsb-sun { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.95); opacity:.85 } }
@keyframes nsb-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes nsb-figure { 0%,100% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(2px,-1px) rotate(2deg) } 50% { transform: translate(4px,0) rotate(-1deg) } 75% { transform: translate(2px,-2px) rotate(1deg) } }
@keyframes nsb-arm { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(30deg) } }
@keyframes nsb-cape { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(-3px,1px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes nsb-token { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(.9) } }
@keyframes nsb-dust { 0% { transform: translate(0,0) scale(1); opacity:0 } 25% { opacity:.5 } 100% { transform: translate(120px,-30px) scale(0); opacity:0 } }

/* ulysses-plot-begins – tense sunlit scheming */
.scn-ulysses-plot-begins {
  background:
    linear-gradient(135deg, #1a2a4a 0%, #3a4a6a 30%, #7a8aaa 100%),
    radial-gradient(ellipse at 30% 60%, #c0d0e8 0%, transparent 70%);
}
.scn-ulysses-plot-begins .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a3a5a 0%, transparent 50%, #1a2a3a 100%);
  animation: upb-bg 15s ease-in-out infinite alternate;
}
.scn-ulysses-plot-begins .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,.5);
}
.scn-ulysses-plot-begins .map {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(135deg, #c8b080 0%, #a08060 30%, #705040 100%);
  border-radius: 2%;
  transform: rotate(-2deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: upb-map 20s ease-in-out infinite alternate;
}
.scn-ulysses-plot-begins .hand {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d0a880 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: upb-hand 6s ease-in-out infinite;
}
.scn-ulysses-plot-begins .candle {
  position: absolute; bottom: 35%; left: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d090 0%, #c8a070 100%);
  border-radius: 20%;
}
.scn-ulysses-plot-begins .candle::after {
  content: ''; position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  width: 14px; height: 18px;
  background: radial-gradient(circle, #fff8d0 0%, #f0c060 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240,192,96,.6);
  animation: upb-flame 3s ease-in-out infinite alternate;
}
.scn-ulysses-plot-begins .coin {
  position: absolute; bottom: 18%; left: 40%; width: 14px; height: 14px;
  background: radial-gradient(circle, #f0d080 0%, #c0a060 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: upb-coin 5s ease-in-out infinite;
}
.scn-ulysses-plot-begins .shadow {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8%;
  background: rgba(0,0,0,.3);
  filter: blur(6px);
  animation: upb-shadow 12s ease-in-out infinite alternate;
}
@keyframes upb-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes upb-map { 0% { transform: rotate(-2deg) translate(0,0) } 50% { transform: rotate(-1deg) translate(2px,-2px) } 100% { transform: rotate(-3deg) translate(0,0) } }
@keyframes upb-hand { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(3px,-2px) rotate(5deg) } 50% { transform: translate(5px,0) rotate(-3deg) } 75% { transform: translate(2px,-1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes upb-flame { 0% { transform: translateX(-50%) scale(1); opacity:.9 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(.95); opacity:.8 } }
@keyframes upb-coin { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } }
@keyframes upb-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* ulysses-interprets-challenge – tense interior window light */
.scn-ulysses-interprets-challenge {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 50%, #6a6a7a 100%),
    radial-gradient(ellipse at 40% 30%, #8a9aaa 0%, transparent 80%);
}
.scn-ulysses-interprets-challenge .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.4);
}
.scn-ulysses-interprets-challenge .window {
  position: absolute; top: 5%; left: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 20px 6px rgba(240,232,208,.6);
  animation: uic-window 8s ease-in-out infinite alternate;
}
.scn-ulysses-interprets-challenge .beam {
  position: absolute; top: 5%; left: 10%; width: 200px; height: 300px;
  background: linear-gradient(135deg, rgba(240,232,208,.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: uic-beam 10s ease-in-out infinite alternate;
}
.scn-ulysses-interprets-challenge .helmet {
  position: absolute; bottom: 15%; left: 15%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(10deg);
  animation: uic-helmet 7s ease-in-out infinite;
}
.scn-ulysses-interprets-challenge .scroll {
  position: absolute; bottom: 25%; left: 60%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-ulysses-interprets-challenge .scroll::after {
  content: ''; position: absolute; top: -8px; left: 0; right: 0; height: 16px;
  background: radial-gradient(ellipse at 50% 0, #c8b080 0%, #a08060 100%);
  border-radius: 50%;
}
.scn-ulysses-interprets-challenge .finger {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px;
  background: #d0a880;
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: uic-finger 5s ease-in-out infinite;
}
@keyframes uic-window { 0% { opacity:.8; box-shadow: 0 0 20px 6px rgba(240,232,208,.6) } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(255,255,240,.8) } 100% { opacity:.7; box-shadow: 0 0 15px 4px rgba(240,232,208,.5) } }
@keyframes uic-beam { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }
@keyframes uic-helmet { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(15deg) scale(1.02) } }
@keyframes uic-finger { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(4px,-2px) rotate(10deg) } 50% { transform: translate(8px,0) rotate(-5deg) } 75% { transform: translate(4px,-1px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }

/* nestor-risks-tested – tense close-up hand with seed */
.scn-nestor-risks-tested {
  background:
    linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 50%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 40%, #b0a090 0%, transparent 80%);
}
.scn-nestor-risks-tested .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 50%, #1a0a0a 100%);
  animation: nrt-bg 20s ease-in-out infinite alternate;
}
.scn-nestor-risks-tested .hand {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 70%;
  background: linear-gradient(180deg, #d0a880 0%, #a08060 40%, #705040 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 -10px 30px rgba(0,0,0,.5);
  animation: nrt-hand 8s ease-in-out infinite;
}
.scn-nestor-risks-tested .palm {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.2);
  animation: nrt-palm 6s ease-in-out infinite alternate;
}
.scn-nestor-risks-tested .seed {
  position: absolute; bottom: 40%; left: 45%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 50% 40%, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: nrt-seed 5s ease-in-out infinite;
}
.scn-nestor-risks-tested .dust {
  position: absolute; bottom: 30%; left: 20%; width: 6px; height: 6px;
  background: rgba(240,230,200,.2); border-radius: 50%;
  filter: blur(4px);
  animation: nrt-dust 12s linear infinite;
}
.scn-nestor-risks-tested .dust:nth-child(5){
  left: 60%; animation-delay: -4s; animation-duration: 14s;
}
.scn-nestor-risks-tested .glow {
  position: absolute; bottom: 40%; left: 44%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,240,200,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: nrt-glow 4s ease-in-out infinite alternate;
}
@keyframes nrt-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nrt-hand { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(0,-5px) scale(1.02) } 100% { transform: translate(0,0) scale(1) } }
@keyframes nrt-palm { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nrt-seed { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(2px,-1px) rotate(10deg) } 50% { transform: translate(4px,0) rotate(-5deg) } 75% { transform: translate(2px,-2px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes nrt-dust { 0% { transform: translate(0,0) scale(1); opacity:0 } 20% { opacity:.6 } 100% { transform: translate(30px,-40px) scale(0); opacity:0 } }
@keyframes nrt-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.2) } 100% { opacity:.3; transform: scale(.9) } }

.scn-cassandra-foretells-doom { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 30%, #2a1a3a 0%, transparent 70%); }
.scn-cassandra-foretells-doom .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1f 0%, #1a1a3a 50%, #2a1a2a 100%); animation: cd-bg 20s ease-in-out infinite; }
.scn-cassandra-foretells-doom .wall-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 100%); border-right: 2px solid #3a3a4a; animation: cd-wall 15s ease-in-out infinite; }
.scn-cassandra-foretells-doom .wall-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(270deg, #1a1a2a 0%, #2a2a3a 100%); border-left: 2px solid #3a3a4a; animation: cd-wall 15s ease-in-out infinite reverse; }
.scn-cassandra-foretells-doom .floor { position:absolute; bottom:0; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0; animation: cd-floor 12s ease-in-out infinite; }
.scn-cassandra-foretells-doom .cassandra { position:absolute; bottom:15%; left:50%; width:50px; height:110px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: cd-cassandra 8s ease-in-out infinite; }
.scn-cassandra-foretells-doom .tears { position:absolute; bottom:60%; left:50%; width:4px; height:8px; transform:translateX(-50%); background: radial-gradient(circle, #4a5a8a 0%, transparent 100%); border-radius: 50%; box-shadow: -15px -10px 0 2px #3a4a7a, 15px -10px 0 2px #3a4a7a, -8px 5px 0 1px #3a4a7a, 8px 5px 0 1px #3a4a7a; animation: cd-tears 3s ease-in-out infinite; }
.scn-cassandra-foretells-doom .glow { position:absolute; bottom:45%; left:50%; width:30px; height:30px; transform:translate(-50%,50%); background: radial-gradient(circle, #a08050 0%, #604020 50%, transparent 100%); box-shadow: 0 0 40px 20px rgba(160,128,80,.3); animation: cd-glow 5s ease-in-out infinite alternate; }
.scn-cassandra-foretells-doom .shadow { position:absolute; bottom:14%; left:30%; right:30%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: cd-shadow 8s ease-in-out infinite; }
@keyframes cd-bg { 0%,100% { opacity: .6 } 50% { opacity: 1 } }
@keyframes cd-wall { 0%,100% { opacity: .7 } 50% { opacity: .9 } }
@keyframes cd-floor { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes cd-cassandra { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(-1px) rotate(0) } 75% { transform: translateX(-50%) translateY(-3px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(1deg) } }
@keyframes cd-tears { 0% { opacity: .3; transform: translateY(0) } 50% { opacity: .8; transform: translateY(3px) } 100% { opacity: .4; transform: translateY(0) } }
@keyframes cd-glow { 0% { box-shadow: 0 0 30px 15px rgba(160,128,80,.2); } 50% { box-shadow: 0 0 60px 30px rgba(160,128,80,.5); } 100% { box-shadow: 0 0 40px 20px rgba(160,128,80,.3); } }
@keyframes cd-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }

.scn-trojan-council-debate { background: linear-gradient(180deg, #c8a060 0%, #b89050 40%, #a87840 100%), radial-gradient(ellipse at 50% 100%, #d0b070 0%, transparent 60%); }
.scn-trojan-council-debate .bg-council { position:absolute; inset:0; background: linear-gradient(180deg, #d4b080 0%, #c0a060 50%, #b09050 100%); animation: tc-bg 18s ease-in-out infinite; }
.scn-trojan-council-debate .floor-council { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b09050 0%, #907040 100%); border-radius: 30% 30% 0 0; animation: tc-floor 10s ease-in-out infinite; }
.scn-trojan-council-debate .table { position:absolute; bottom:20%; left:25%; right:25%; height:15%; background: linear-gradient(180deg, #a08040 0%, #806030 100%); border-radius: 10% 10% 0 0; transform: perspective(400px) rotateX(40deg); animation: tc-table 8s ease-in-out infinite; }
.scn-trojan-council-debate .figure-troilus { position:absolute; bottom:20%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #906040 0%, #704020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tc-figure1 6s ease-in-out infinite; }
.scn-trojan-council-debate .figure-hestor { position:absolute; bottom:20%; right:30%; width:28px; height:55px; background: linear-gradient(180deg, #805040 0%, #603020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tc-figure2 6s ease-in-out infinite reverse; }
.scn-trojan-council-debate .torch-left { position:absolute; top:20%; left:10%; width:12px; height:30px; background: linear-gradient(180deg, #f0c060 0%, #d09030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 25px 8px rgba(240,192,96,.4); animation: tc-torch 2s ease-in-out infinite alternate; }
.scn-trojan-council-debate .torch-right { position:absolute; top:20%; right:10%; width:12px; height:30px; background: linear-gradient(180deg, #f0c060 0%, #d09030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 25px 8px rgba(240,192,96,.4); animation: tc-torch 2s ease-in-out infinite alternate-reverse; }
.scn-trojan-council-debate .brazier { position:absolute; top:25%; left:48%; width:30px; height:20px; background: radial-gradient(circle, #f0a040 0%, #c07020 50%, #a05010 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(240,160,64,.5); animation: tc-brazier 3s ease-in-out infinite; }
@keyframes tc-bg { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes tc-floor { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes tc-table { 0%,100% { transform: perspective(400px) rotateX(40deg) } 50% { transform: perspective(400px) rotateX(38deg) } }
@keyframes tc-figure1 { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tc-figure2 { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tc-torch { 0% { box-shadow: 0 0 20px 6px rgba(240,192,96,.3); height: 28px; } 50% { box-shadow: 0 0 35px 12px rgba(240,192,96,.6); height: 32px; } 100% { box-shadow: 0 0 25px 8px rgba(240,192,96,.4); height: 30px; } }
@keyframes tc-brazier { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }

.scn-greek-camp-thersites-achilles { background: linear-gradient(180deg, #6a8eb0 0%, #8baec8 50%, #b0cddb 100%), radial-gradient(ellipse at 50% 40%, #d0d8d0 0%, transparent 70%); }
.scn-greek-camp-thersites-achilles .sky-camp { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a9eb8 0%, #b0cddb 100%); animation: ta-sky 25s ease-in-out infinite; }
.scn-greek-camp-thersites-achilles .ground-camp { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 10% 10% 0 0; animation: ta-ground 20s ease-in-out infinite; }
.scn-greek-camp-thersites-achilles .tent-achilles { position:absolute; bottom:20%; left:20%; right:60%; height:50%; background: linear-gradient(180deg, #b09880 0%, #907060 100%); border-radius: 30% 10% 20% 20% / 40% 20% 30% 30%; transform: skewX(-5deg); box-shadow: -10px 0 20px rgba(0,0,0,.3); animation: ta-tent 12s ease-in-out infinite; }
.scn-greek-camp-thersites-achilles .tent-flap { position:absolute; bottom:22%; left:22%; width:25%; height:40%; background: linear-gradient(180deg, #806050 0%, #604030 100%); border-radius: 20% 0 0 20% / 40% 0 0 20%; transform: skewX(-8deg); animation: ta-flap 6s ease-in-out infinite; }
.scn-greek-camp-thersites-achilles .thersites { position:absolute; bottom:28%; left:45%; width:22px; height:45px; background: linear-gradient(180deg, #504030 0%, #302020 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ta-thersites 7s ease-in-out infinite; }
.scn-greek-camp-thersites-achilles .stones { position:absolute; bottom:20%; left:50%; width:40px; height:15px; background: radial-gradient(circle at 30% 50%, #705040 0%, #403020 100%); border-radius: 30% 30% 10% 10%; filter: blur(1px); animation: ta-stones 15s ease-in-out infinite; }
.scn-greek-camp-thersites-achilles .dust-cloud { position:absolute; bottom:30%; left:60%; width:60px; height:30px; background: radial-gradient(ellipse, rgba(180,170,150,.4) 0%, transparent 100%); filter: blur(4px); animation: ta-dust 30s linear infinite; }
@keyframes ta-sky { 0%,100% { opacity: .7 } 50% { opacity: 1 } }
@keyframes ta-ground { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } }
@keyframes ta-tent { 0%,100% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-5deg) translateY(-2px) } }
@keyframes ta-flap { 0% { transform: skewX(-8deg) } 50% { transform: skewX(-10deg) } 100% { transform: skewX(-6deg) } }
@keyframes ta-thersites { 0% { transform: translateY(0) rotate(0) } 20% { transform: translateY(-3px) rotate(3deg) } 40% { transform: translateY(0) rotate(-2deg) } 60% { transform: translateY(-2px) rotate(1deg) } 80% { transform: translateY(-1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ta-stones { 0%,100% { opacity: .5 } 50% { opacity: .8 } }
@keyframes ta-dust { 0% { transform: translateX(0) } 100% { transform: translateX(100px) } }

.scn-greek-camp-generals-visit { background: linear-gradient(180deg, #8aaecc 0%, #a0c0d8 50%, #c0d8e8 100%), radial-gradient(ellipse at 50% 30%, #d0d8d0 0%, transparent 70%); }
.scn-greek-camp-generals-visit .sky-generals { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #9ab0c8 0%, #c0d8e8 100%); animation: gg-sky 30s ease-in-out infinite; }
.scn-greek-camp-generals-visit .ground-generals { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a09870 0%, #807850 100%); border-radius: 5% 5% 0 0; animation: gg-ground 18s ease-in-out infinite; }
.scn-greek-camp-generals-visit .tent-generals { position:absolute; bottom:15%; left:15%; right:55%; height:55%; background: linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius: 20% 10% 20% 20% / 30% 20% 30% 30%; transform: skewX(-4deg); box-shadow: -8px 0 15px rgba(0,0,0,.2); animation: gg-tent 14s ease-in-out infinite; }
.scn-greek-camp-generals-visit .generals { position:absolute; bottom:22%; left:45%; width:80px; height:60px; background: linear-gradient(180deg, #604030 0%, #403020 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: perspective(200px) rotateX(20deg); animation: gg-generals 12s ease-in-out infinite; }
.scn-greek-camp-generals-visit .banner { position:absolute; bottom:50%; left:70%; width:10px; height:40px; background: linear-gradient(180deg, #705030 0%, #503010 100%); border-radius: 5px; transform: rotate(-10deg); animation: gg-banner 8s ease-in-out infinite; }
.scn-greek-camp-generals-visit .spear { position:absolute; bottom:30%; left:72%; width:4px; height:50px; background: linear-gradient(180deg, #908070 0%, #706050 100%); border-radius: 2px; transform: rotate(5deg); animation: gg-spear 8s ease-in-out infinite; }
.scn-greek-camp-generals-visit .shadow-generals { position:absolute; bottom:10%; left:35%; right:35%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); animation: gg-shadow 12s ease-in-out infinite; }
@keyframes gg-sky { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes gg-ground { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.002) } }
@keyframes gg-tent { 0%,100% { transform: skewX(-4deg) } 50% { transform: skewX(-3deg) } }
@keyframes gg-generals { 0% { transform: perspective(200px) rotateX(20deg) translateY(0) } 50% { transform: perspective(200px) rotateX(18deg) translateY(-1px) } 100% { transform: perspective(200px) rotateX(22deg) translateY(0) } }
@keyframes gg-banner { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } }
@keyframes gg-spear { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(3deg) } }
@keyframes gg-shadow { 0%,100% { opacity: .5 } 50% { opacity: .7 } }

/* priam-council */
.scn-priam-council {
  background:
    linear-gradient(180deg, #f2d8a0 0%, #e8c47a 20%, #cfa45a 50%, #b8904a 80%, #a07838 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,235,180,0.6) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-priam-council .tent-back {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #d4b86e 0%, #b89a50 40%, #9a7a3e 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  transform: scale(1.1);
}
.scn-priam-council .tent-wall {
  position: absolute; inset: 5% 10% 20% 10%;
  background: linear-gradient(0deg, #a08040 0%, #c0a060 30%, #d8b870 60%, #e8c880 100%);
  clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%);
  filter: drop-shadow(0 8px 12px rgba(0,0,0,0.3));
  animation: pm-wallpulse 6s ease-in-out infinite alternate;
}
.scn-priam-council .table {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #8a6a30 0%, #6a4e20 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-priam-council .cup {
  position: absolute; bottom: 28%; left: 38%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #c07030 0%, #a05020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pm-cup 4s ease-in-out infinite;
}
.scn-priam-council .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 70px;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: pm-figureleft 7s ease-in-out infinite;
}
.scn-priam-council .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 45px; height: 72px;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #2a1a0a 0%, #100800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: pm-figureright 8s ease-in-out infinite alternate;
}
.scn-priam-council .light-ray {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(0deg, rgba(255,230,150,0) 0%, rgba(255,230,150,0.15) 30%, rgba(255,230,150,0.3) 60%, rgba(255,230,150,0) 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: pm-ray 5s ease-in-out infinite alternate;
}
.scn-priam-council .shadow-floor {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: pm-shader 6s ease-in-out infinite alternate;
}
@keyframes pm-wallpulse {
  0% { filter: drop-shadow(0 8px 12px rgba(0,0,0,0.3)); transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { filter: drop-shadow(0 12px 16px rgba(0,0,0,0.5)); transform: scaleY(0.98); }
}
@keyframes pm-cup {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
}
@keyframes pm-figureleft {
  0% { transform: rotate(5deg); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(6deg); }
}
@keyframes pm-figureright {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(0deg) translateX(-2px); }
  100% { transform: rotate(-5deg); }
}
@keyframes pm-ray {
  0% { opacity: 0.4; transform: translateX(0); }
  50% { opacity: 0.8; transform: translateX(5px) scaleX(1.1); }
  100% { opacity: 0.3; transform: translateX(-5px); }
}
@keyframes pm-shader {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}

/* hector-peace-advice */
.scn-hector-peace-advice {
  background:
    linear-gradient(180deg, #f0d090 0%, #dbb870 30%, #c4a460 60%, #a88448 100%),
    radial-gradient(ellipse at 50% 80%, #f0e0b0 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-hector-peace-advice .sky-glow {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,240,200,0.3) 0%, transparent 70%);
  animation: hp-sky 10s ease-in-out infinite alternate;
}
.scn-hector-peace-advice .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #8a7038 0%, #b09848 40%, #c8b060 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-hector-peace-advice .hector-body {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 80px;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: hp-body 6s ease-in-out infinite;
}
.scn-hector-peace-advice .hector-arm {
  position: absolute; bottom: 40%; left: 38%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  transform: rotate(-30deg);
  animation: hp-arm 4s ease-in-out infinite alternate;
}
.scn-hector-peace-advice .spear {
  position: absolute; bottom: 30%; left: 52%; width: 4px; height: 65px;
  background: linear-gradient(180deg, #4a3020 0%, #6a4830 50%, #4a3020 100%);
  border-radius: 20%;
  transform: rotate(15deg);
  animation: hp-spear 5s ease-in-out infinite;
}
.scn-hector-peace-advice .shadow-long {
  position: absolute; bottom: 18%; left: 20%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  transform: skewX(-20deg);
  animation: hp-shadow 7s ease-in-out infinite alternate;
}
.scn-hector-peace-advice .dust {
  position: absolute; bottom: 10%; left: 10%; width: 120%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,0.2) 0%, transparent 60%);
  filter: blur(3px);
  animation: hp-dust 15s linear infinite;
}
@keyframes hp-sky {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2); }
  100% { opacity: 0.7; transform: scaleY(0.9); }
}
@keyframes hp-body {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-3deg); }
}
@keyframes hp-arm {
  0% { transform: rotate(-40deg); }
  50% { transform: rotate(-20deg) scaleX(1.1); }
  100% { transform: rotate(-30deg); }
}
@keyframes hp-spear {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(10deg) translateX(2px); }
  100% { transform: rotate(18deg); }
}
@keyframes hp-shadow {
  0% { transform: skewX(-20deg) scaleX(1); opacity: 0.7; }
  50% { transform: skewX(-15deg) scaleX(1.2); opacity: 1; }
  100% { transform: skewX(-25deg) scaleX(0.8); opacity: 0.5; }
}
@keyframes hp-dust {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { transform: translateX(-100px); opacity: 0; }
}

/* troilus-rejects-reason */
.scn-troilus-rejects-reason {
  background:
    linear-gradient(180deg, #e0c080 0%, #c8a860 30%, #b09048 60%, #9a7838 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.5) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-troilus-rejects-reason .bg-arch {
  position: absolute; top: 0; left: 15%; right: 15%; bottom: 0;
  background: linear-gradient(0deg, #a88840 0%, #c8a860 40%, #e0c080 80%);
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.3));
  animation: tr-arch 9s ease-in-out infinite alternate;
}
.scn-troilus-rejects-reason .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #705830 0%, #9a7a40 50%, #b89850 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-troilus-rejects-reason .troilus-body {
  position: absolute; bottom: 20%; left: 35%; width: 55px; height: 90px;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #2a1a0e 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: tr-body 5s ease-in-out infinite;
}
.scn-troilus-rejects-reason .cloak {
  position: absolute; bottom: 18%; left: 28%; width: 70px; height: 100px;
  background: linear-gradient(135deg, #5e3a1a 0%, #8a4e2a 50%, #5e3a1a 100%);
  clip-path: polygon(0% 80%, 20% 0%, 80% 0%, 100% 80%, 50% 100%);
  animation: tr-cloak 6s ease-in-out infinite alternate;
}
.scn-troilus-rejects-reason .arm-raised {
  position: absolute; bottom: 45%; left: 48%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #1a0e06 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  transform: rotate(45deg);
  animation: tr-arm 3s ease-in-out infinite alternate;
}
.scn-troilus-rejects-reason .sun-spot {
  position: absolute; top: 2%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,120,0.4) 0%, rgba(255,200,90,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: tr-sun 12s ease-in-out infinite alternate;
}
.scn-troilus-rejects-reason .shadow-vertical {
  position: absolute; bottom: 20%; left: 35%; width: 55px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform: skewX(-10deg);
  animation: tr-shadow 4s ease-in-out infinite alternate;
}
.scn-troilus-rejects-reason .dust-motes {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(circle at 30% 50%, rgba(200,180,120,0.1) 0%, transparent 50%);
  filter: blur(4px);
  animation: tr-dust 20s linear infinite;
}
@keyframes tr-arch {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.7; }
}
@keyframes tr-body {
  0% { transform: rotate(3deg); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(4deg); }
}
@keyframes tr-cloak {
  0% { clip-path: polygon(0% 80%, 20% 0%, 80% 0%, 100% 80%, 50% 100%); transform: scaleX(1); }
  50% { clip-path: polygon(5% 75%, 25% 5%, 75% 5%, 95% 75%, 50% 100%); transform: scaleX(1.02); }
  100% { clip-path: polygon(0% 85%, 15% 5%, 85% 5%, 100% 85%, 50% 100%); transform: scaleX(0.98); }
}
@keyframes tr-arm {
  0% { transform: rotate(45deg) scaleY(1); }
  50% { transform: rotate(55deg) scaleY(1.1); }
  100% { transform: rotate(40deg) scaleY(0.9); }
}
@keyframes tr-sun {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes tr-shadow {
  0% { transform: skewX(-10deg) scaleX(1); opacity: 0.6; }
  50% { transform: skewX(-5deg) scaleX(1.2); opacity: 1; }
  100% { transform: skewX(-15deg) scaleX(0.8); opacity: 0.4; }
}
@keyframes tr-dust {
  0% { transform: translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.5; }
  100% { transform: translateY(0) scale(1); opacity: 0; }
}

/* troilus-mocks-helenus */
.scn-troilus-mocks-helenus {
  background:
    linear-gradient(180deg, #e8c888 0%, #d0b068 30%, #b89850 60%, #a08040 100%),
    radial-gradient(ellipse at 40% 30%, rgba(255,230,170,0.4) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-troilus-mocks-helenus .sky-flare {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  background: radial-gradient(ellipse at 60% 20%, rgba(255,240,200,0.25) 0%, transparent 60%);
  animation: tm-flare 8s ease-in-out infinite alternate;
}
.scn-troilus-mocks-helenus .ground-bare {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #7a6030 0%, #a08040 40%, #b89850 70%, #c8a860 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-troilus-mocks-helenus .helenus-running {
  position: absolute; bottom: 25%; right: 15%; width: 40px; height: 70px;
  background: radial-gradient(ellipse 55% 45% at 50% 45%, #2a1a0e 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: tm-helenus 3s ease-in-out infinite alternate;
}
.scn-troilus-mocks-helenus .troilus-standing {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 85px;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: tm-troilus 5s ease-in-out infinite;
}
.scn-troilus-mocks-helenus .sword {
  position: absolute; bottom: 35%; left: 32%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #6a4830 0%, #8a6040 50%, #6a4830 100%);
  border-radius: 20%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: tm-sword 2.5s ease-in-out infinite alternate;
}
.scn-troilus-mocks-helenus .dust-cloud {
  position: absolute; bottom: 15%; left: 10%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,160,100,0.2) 0%, transparent 60%);
  filter: blur(5px);
  animation: tm-dust 6s ease-in-out infinite alternate;
}
.scn-troilus-mocks-helenus .sun-burst {
  position: absolute; top: 5%; left: 30%; width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255,210,120,0.15) 0%, transparent 50%);
  border-radius: 50%;
  animation: tm-sun 15s ease-in-out infinite;
}
@keyframes tm-flare {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes tm-helenus {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(10px) scaleX(0.9); }
  100% { transform: rotate(10deg) translateX(-5px); }
}
@keyframes tm-troilus {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(-7deg); }
}
@keyframes tm-sword {
  0% { transform: rotate(20deg) scaleY(1); }
  50% { transform: rotate(30deg) scaleY(1.1); }
  100% { transform: rotate(15deg) scaleY(0.9); }
}
@keyframes tm-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(-15px) scale(1.5); opacity: 0.6; }
  100% { transform: translateX(10px) scale(0.8); opacity: 0.1; }
}
@keyframes tm-sun {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.3); }
  100% { opacity: 0.4; transform: scale(0.8); }
}

/* plains-night-hector-dead */
.scn-plains-night-hector-dead { background: linear-gradient(180deg, #0a0a1a 0%, #10102a 40%, #1a1a3e 100%), radial-gradient(ellipse at 50% 20%, #2a2a5e 0%, transparent 60%); }
.scn-plains-night-hector-dead .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f2a 0%, transparent 100%); animation: shd-sky 12s ease-in-out infinite alternate; }
.scn-plains-night-hector-dead .stars-a { position:absolute; top:5%; left:10%; width:80px; height:80px; background: radial-gradient(circle at 20% 30%, #ffffff 0%, transparent 20%), radial-gradient(circle at 60% 70%, #ffffff 0%, transparent 30%), radial-gradient(circle at 80% 20%, #ffffff 0%, transparent 15%); animation: shd-stars 8s ease-in-out infinite alternate; opacity:.6; }
.scn-plains-night-hector-dead .stars-b { position:absolute; top:15%; right:5%; width:100px; height:100px; background: radial-gradient(circle at 30% 40%, #ffffff 0%, transparent 25%), radial-gradient(circle at 70% 60%, #ffffff 0%, transparent 20%); animation: shd-stars 10s ease-in-out infinite alternate-reverse; opacity:.4; }
.scn-plains-night-hector-dead .hills { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: shd-hills 18s ease-in-out infinite alternate; }
.scn-plains-night-hector-dead .figure { position:absolute; bottom:25%; left:60%; width:24px; height:48px; background: linear-gradient(180deg, #141422 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: shd-figure 4s ease-in-out infinite; }
.scn-plains-night-hector-dead .rock { position:absolute; bottom:24%; left:52%; width:18px; height:14px; background: linear-gradient(135deg, #1a2a1a 0%, #0e1a0e 100%); border-radius: 40% 60% 30% 70%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: shd-rock 6s ease-in-out infinite alternate; }
.scn-plains-night-hector-dead .spear { position:absolute; bottom:26%; left:56%; width:4px; height:30px; background: linear-gradient(180deg, #303040 0%, #101020 100%); border-radius: 10%; transform: rotate(15deg); box-shadow: 0 0 2px rgba(0,0,0,.3); animation: shd-spear 3s ease-in-out infinite; }
@keyframes shd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes shd-stars { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes shd-hills { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes shd-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes shd-rock { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes shd-spear { 0% { transform: rotate(13deg) } 50% { transform: rotate(17deg) } 100% { transform: rotate(13deg) } }

/* pandarus-epilogue */
.scn-pandarus-epilogue { background: linear-gradient(180deg, #0b0b1a 0%, #14142a 50%, #1f1f3a 100%), radial-gradient(ellipse at 50% 20%, #2a2a4a 0%, transparent 70%); }
.scn-pandarus-epilogue .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); }
.scn-pandarus-epilogue .stars { position:absolute; top:10%; left:5%; right:5%; bottom:60%; background: radial-gradient(circle at 10% 20%, #ffffff 0%, transparent 10%), radial-gradient(circle at 30% 40%, #ffffff 0%, transparent 8%), radial-gradient(circle at 70% 10%, #ffffff 0%, transparent 12%), radial-gradient(circle at 90% 50%, #ffffff 0%, transparent 6%); animation: pe-stars 10s ease-in-out infinite alternate; }
.scn-pandarus-epilogue .figure { position:absolute; bottom:10%; left:30%; right:30%; top:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-figure 4s ease-in-out infinite; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-pandarus-epilogue .cloak { position:absolute; bottom:15%; left:25%; right:35%; top:35%; background: linear-gradient(180deg, #222242 0%, #12122a 100%); border-radius: 60% 40% 40% 60% / 50% 60% 40% 50%; transform-origin: center; animation: pe-cloak 6s ease-in-out infinite; box-shadow: inset 0 0 10px rgba(0,0,0,.3); }
.scn-pandarus-epilogue .staff { position:absolute; bottom:8%; left:65%; width:6px; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10%; transform: rotate(8deg); box-shadow: 0 0 4px rgba(0,0,0,.4); animation: pe-staff 8s ease-in-out infinite alternate; }
.scn-pandarus-epilogue .lantern { position:absolute; bottom:30%; left:58%; width:12px; height:14px; background: radial-gradient(circle, #f0e0a0 0%, #e0b060 60%, transparent 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #e0b060, 0 0 40px 12px rgba(224,176,96,.4); animation: pe-lantern 3s ease-in-out infinite alternate; }
@keyframes pe-stars { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes pe-figure { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-2px) scale(1.01) } 50% { transform: translateY(0) scale(1) } 75% { transform: translateY(1px) scale(.99) } 100% { transform: translateY(0) scale(1) } }
@keyframes pe-cloak { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes pe-staff { 0% { transform: rotate(6deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(6deg) } }
@keyframes pe-lantern { 0% { opacity:.7; box-shadow: 0 0 15px 4px #e0b060, 0 0 30px 8px rgba(224,176,96,.3) } 50% { opacity:1; box-shadow: 0 0 25px 8px #f0d080, 0 0 50px 16px rgba(240,208,128,.5) } 100% { opacity:.8; box-shadow: 0 0 18px 5px #e0b060, 0 0 35px 10px rgba(224,176,96,.35) } }

/* before-calchas-tent */
.scn-before-calchas-tent { background: linear-gradient(180deg, #1a0a0a 0%, #2a1510 40%, #4a2010 100%), radial-gradient(ellipse at 30% 60%, #6a3020 0%, transparent 60%); }
.scn-before-calchas-tent .tent { position:absolute; bottom:20%; left:20%; right:20%; top:20%; background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; clip-path: polygon(0 30%, 50% 0, 100% 30%, 100% 100%, 0 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.7); animation: bct-tent 8s ease-in-out infinite alternate; }
.scn-before-calchas-tent .torch { position:absolute; bottom:30%; left:45%; width:10px; height:40px; background: linear-gradient(180deg, #6a4a20 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(5deg); animation: bct-torch 3s ease-in-out infinite; }
.scn-before-calchas-tent .torch-glow { position:absolute; bottom:25%; left:40%; right:40%; top:10%; background: radial-gradient(ellipse at 50% 80%, #ff8030 0%, #ff6030 20%, #c04020 50%, transparent 80%); filter: blur(8px); animation: bct-glow 2s ease-in-out infinite alternate; }
.scn-before-calchas-tent .figure-left { position:absolute; bottom:15%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bct-figure-left 5s ease-in-out infinite; }
.scn-before-calchas-tent .figure-right { position:absolute; bottom:18%; right:25%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bct-figure-right 6s ease-in-out infinite; }
.scn-before-calchas-tent .shadow { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); border-radius: 50% 50% 0 0; animation: bct-shadow 7s ease-in-out infinite alternate; }
@keyframes bct-tent { 0% { transform: scale(.98) } 50% { transform: scale(1) } 100% { transform: scale(.99) } }
@keyframes bct-torch { 0% { transform: rotate(3deg) scaleY(1) } 50% { transform: rotate(7deg) scaleY(1.02) } 100% { transform: rotate(3deg) scaleY(1) } }
@keyframes bct-glow { 0%,100% { opacity:.7; filter: blur(8px) } 50% { opacity:1; filter: blur(12px) } }
@keyframes bct-figure-left { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(4px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bct-figure-right { 0% { transform: translateX(0) rotate(2deg) } 40% { transform: translateX(-3px) rotate(-1deg) } 70% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bct-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

/* item-sleeve-token */
.scn-item-sleeve-token { background: linear-gradient(180deg, #1a0a05 0%, #3a1a0a 40%, #5a2a10 100%), radial-gradient(ellipse at 50% 70%, #6a3a1a 0%, transparent 60%); }
.scn-item-sleeve-token .bg { position:absolute; inset:0; background: radial-gradient(circle at 50% 60%, #4a2010 0%, transparent 80%); animation: ist-bg 8s ease-in-out infinite alternate; }
.scn-item-sleeve-token .sleeve { position:absolute; bottom:30%; left:30%; right:30%; top:30%; background: linear-gradient(135deg, #8a4a2a 0%, #6a2a1a 40%, #5a2015 100%); border-radius: 40% 60% 50% 50% / 50% 50% 60% 40%; box-shadow: 0 0 20px rgba(0,0,0,.5), inset 0 0 15px rgba(255,150,80,.3); transform-origin: center; animation: ist-sleeve 5s ease-in-out infinite; }
.scn-item-sleeve-token .hand-left { position:absolute; bottom:25%; left:20%; width:18px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: ist-hand-left 4s ease-in-out infinite alternate; }
.scn-item-sleeve-token .hand-right { position:absolute; bottom:28%; right:20%; width:16px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: ist-hand-right 4.5s ease-in-out infinite alternate; }
.scn-item-sleeve-token .shadow { position:absolute; bottom:15%; left:25%; right:25%; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); border-radius: 50%; animation: ist-shadow 6s ease-in-out infinite alternate; }
.scn-item-sleeve-token .sparkle { position:absolute; top:20%; left:40%; width:80px; height:80px; background: radial-gradient(circle at 30% 40%, #ffd080 0%, transparent 15%), radial-gradient(circle at 60% 70%, #ffd080 0%, transparent 10%), radial-gradient(circle at 80% 20%, #ffd080 0%, transparent 12%); filter: blur(2px); animation: ist-sparkle 3s ease-in-out infinite alternate; opacity:.6; }
@keyframes ist-bg { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ist-sleeve { 0% { transform: rotate(-3deg) scaleX(1) } 30% { transform: rotate(2deg) scaleX(1.02) } 60% { transform: rotate(-1deg) scaleX(.98) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes ist-hand-left { 0% { transform: translateX(0) rotate(13deg) } 50% { transform: translateX(6px) rotate(17deg) } 100% { transform: translateX(0) rotate(13deg) } }
@keyframes ist-hand-right { 0% { transform: translateX(0) rotate(-22deg) } 50% { transform: translateX(-4px) rotate(-18deg) } 100% { transform: translateX(0) rotate(-22deg) } }
@keyframes ist-shadow { 0% { transform: scaleX(1) opacity:.6 } 50% { transform: scaleX(1.1) opacity:.8 } 100% { transform: scaleX(1) opacity:.6 } }
@keyframes ist-sparkle { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:.9; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.9) } }

.scn-priam-and-cassandra-plead {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a6e 60%, #6a5a4e 100%),
    radial-gradient(ellipse at 50% 100%, #6a5a4e 0%, transparent 70%);
}

.scn-priam-and-cassandra-plead .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a4e 40%, #8a6a4e 100%);
  animation: pacp-sky 12s ease-in-out infinite alternate;
}

.scn-priam-and-cassandra-plead .walls {
  position: absolute;
  bottom: 30%;
  left: 10%;
  right: 10%;
  height: 20%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: pacp-walls 18s ease-in-out infinite alternate;
}

.scn-priam-and-cassandra-plead .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: pacp-ground 10s ease-in-out infinite alternate;
}

.scn-priam-and-cassandra-plead .figure-priam {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pacp-kneel 4s ease-in-out infinite;
}

.scn-priam-and-cassandra-plead .figure-hecuba {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 22px;
  height: 46px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pacp-kneel 4.5s ease-in-out infinite 0.2s;
}

.scn-priam-and-cassandra-plead .figure-warrior {
  position: absolute;
  bottom: 32%;
  right: 30%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pacp-stand 4s ease-in-out infinite 0.5s;
}

.scn-priam-and-cassandra-plead .mist {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(90deg, rgba(200,180,160,0.1) 0%, rgba(200,180,160,0.3) 50%, rgba(200,180,160,0.1) 100%);
  filter: blur(10px);
  animation: pacp-mist 25s ease-in-out infinite alternate;
}

@keyframes pacp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}

@keyframes pacp-walls {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes pacp-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

@keyframes pacp-kneel {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-1px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

@keyframes pacp-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes pacp-mist {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { transform: translateX(20px); opacity: 0.5; }
  100% { transform: translateX(-10px); opacity: 0.2; }
}

/* ===== hector-swears-faith ===== */

.scn-hector-swears-faith {
  background:
    linear-gradient(180deg, #2a2a4e 0%, #3a3a5e 30%, #5a4a3e 60%, #7a5a3e 100%),
    radial-gradient(ellipse at 50% 80%, #7a5a3e 0%, transparent 50%);
}

.scn-hector-swears-faith .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #7a6a5e 100%);
  animation: hsf-sky 14s ease-in-out infinite alternate;
}

.scn-hector-swears-faith .tent {
  position: absolute;
  bottom: 30%;
  left: 20%;
  right: 20%;
  height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: hsf-tent 20s ease-in-out infinite alternate;
}

.scn-hector-swears-faith .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: hsf-ground 12s ease-in-out infinite alternate;
}

.scn-hector-swears-faith .figure-hector {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 32px;
  height: 64px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hsf-hector 6s ease-in-out infinite;
}

.scn-hector-swears-faith .figure-andromache {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 24px;
  height: 54px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hsf-andromache 5s ease-in-out infinite 0.3s;
}

.scn-hector-swears-faith .sword {
  position: absolute;
  bottom: 30%;
  left: 52%;
  width: 4px;
  height: 20px;
  background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: hsf-sword 2s ease-in-out infinite alternate;
}

.scn-hector-swears-faith .shield {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 18px;
  height: 22px;
  background: radial-gradient(circle, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50%;
  border: 2px solid #5a4a3a;
  animation: hsf-shield 4s ease-in-out infinite;
}

@keyframes hsf-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

@keyframes hsf-tent {
  0% { transform: perspective(400px) rotateX(0deg); }
  50% { transform: perspective(400px) rotateX(2deg); }
  100% { transform: perspective(400px) rotateX(0deg); }
}

@keyframes hsf-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(1); }
}

@keyframes hsf-hector {
  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 hsf-andromache {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}

@keyframes hsf-sword {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}

@keyframes hsf-shield {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

/* ===== cassandra-lament ===== */

.scn-cassandra-lament {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a1a3e 30%, #4a2a2a 60%, #6a3a2a 100%),
    radial-gradient(ellipse at 30% 50%, #6a3a2a 0%, transparent 60%);
}

.scn-cassandra-lament .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 40%, #6a4a3e 100%);
  animation: cl-sky 15s ease-in-out infinite alternate;
}

.scn-cassandra-lament .city-wall {
  position: absolute;
  bottom: 25%;
  left: 5%;
  right: 5%;
  height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 90% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 -10px 20px rgba(100,40,20,0.4);
  animation: cl-wall 20s ease-in-out infinite alternate;
}

.scn-cassandra-lament .flames {
  position: absolute;
  bottom: 35%;
  left: 20%;
  right: 20%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #c86430 0%, #8a3a1a 50%, transparent 100%);
  filter: blur(4px);
  animation: cl-flames 3s ease-in-out infinite alternate;
}

.scn-cassandra-lament .figure-cassandra {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 26px;
  height: 58px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cl-cassandra 4s ease-in-out infinite;
}

.scn-cassandra-lament .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  animation: cl-ground 12s ease-in-out infinite alternate;
}

.scn-cassandra-lament .figure-hecuba {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cl-hecuba 5s ease-in-out infinite 0.5s;
}

.scn-cassandra-lament .smoke {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 60px;
  height: 30px;
  background: radial-gradient(ellipse, rgba(150,120,100,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: cl-smoke 20s linear infinite;
}

@keyframes cl-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}

@keyframes cl-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes cl-flames {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.8; transform: scaleY(0.9); }
}

@keyframes cl-cassandra {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(3deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}

@keyframes cl-hecuba {
  0% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}

@keyframes cl-smoke {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(30px) scale(1.2); opacity: 0.4; }
  100% { transform: translateX(-30px) scale(0.8); opacity: 0.2; }
}

/* ===== troilus-letter ===== */

.scn-troilus-letter {
  background:
    linear-gradient(180deg, #2a2a4e 0%, #3a2a4e 30%, #5a3a3e 60%, #6a4a3e 100%),
    radial-gradient(ellipse at 50% 60%, #6a4a3e 0%, transparent 50%);
}

.scn-troilus-letter .window {
  position: absolute;
  top: 10%;
  left: 15%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,180,160,0.3);
  animation: tl-window 10s ease-in-out infinite alternate;
}

.scn-troilus-letter .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: tl-wall 15s ease-in-out infinite alternate;
}

.scn-troilus-letter .table {
  position: absolute;
  bottom: 20%;
  left: 30%;
  right: 30%;
  height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(5deg);
  animation: tl-table 8s ease-in-out infinite alternate;
}

.scn-troilus-letter .letter {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 40px;
  height: 30px;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tl-letter 4s ease-in-out infinite alternate;
}

.scn-troilus-letter .hand {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 14px;
  height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tl-hand 3s ease-in-out infinite;
}

.scn-troilus-letter .figure-troilus {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: tl-troilus 6s ease-in-out infinite;
}

.scn-troilus-letter .chair {
  position: absolute;
  bottom: 18%;
  left: 32%;
  width: 20px;
  height: 15px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  transform: perspective(100px) rotateX(10deg);
  animation: tl-chair 12s ease-in-out infinite alternate;
}

@keyframes tl-window {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

@keyframes tl-wall {
  0% { opacity: 0.6; }
  50% { opacity: 0.7; }
  100% { opacity: 0.65; }
}

@keyframes tl-table {
  0% { transform: perspective(200px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(6deg) translateY(-1px); }
  100% { transform: perspective(200px) rotateX(5deg) translateY(0); }
}

@keyframes tl-letter {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(7deg) scale(1); }
}

@keyframes tl-hand {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(5deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}

@keyframes tl-troilus {
  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 tl-chair {
  0% { transform: perspective(100px) rotateX(10deg) scale(1); }
  50% { transform: perspective(100px) rotateX(12deg) scale(1.01); }
  100% { transform: perspective(100px) rotateX(10deg) scale(1); }
}

.scn-nestor-sea-analogy {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b0e0f0 30%, #f0e68c 60%, #f5deb3 80%, #fff8dc 100%) no-repeat,
    radial-gradient(ellipse at 50% 100%, rgba(255,215,0,0.3) 0%, transparent 70%);
}
.scn-nestor-sea-analogy .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #b0e0f0 100%);
  animation: ns1-sky 12s ease-in-out infinite alternate;
}
.scn-nestor-sea-analogy .sun {
  position: absolute; top: 10%; left: 30%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffdd44 0%, #ffd700 40%, #ffaa00 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffd700, 0 0 80px 40px rgba(255,215,0,0.3);
  animation: ns1-sun 8s ease-in-out infinite alternate;
}
.scn-nestor-sea-analogy .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a90d9 0%, #1e5b9e 40%, #0d3b6e 100%);
  animation: ns1-sea 6s ease-in-out infinite;
}
.scn-nestor-sea-analogy .ship-large {
  position: absolute; bottom: 20%; left: 20%;
  width: 120px; height: 50px;
  background: linear-gradient(180deg, #5a3e2b 0%, #3a2210 100%);
  border-radius: 0 0 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  transform-origin: bottom center;
  animation: ns1-ship-l 10s ease-in-out infinite;
}
.scn-nestor-sea-analogy .ship-small {
  position: absolute; bottom: 15%; right: 15%;
  width: 70px; height: 30px;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a2e1a 100%);
  border-radius: 0 0 20% 20%;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  transform-origin: bottom center;
  animation: ns1-ship-s 14s ease-in-out infinite alternate;
}
.scn-nestor-sea-analogy .reflection {
  position: absolute; bottom: 35%; left: 20%;
  width: 120px; height: 40px;
  background: linear-gradient(180deg, rgba(255,215,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  transform: scaleX(0.6);
  animation: ns1-reflect 10s ease-in-out infinite;
}
.scn-nestor-sea-analogy .cloud {
  position: absolute; 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(6px);
}
.scn-nestor-sea-analogy .ca1 {
  top: 12%; left: 10%; width: 90px;
  animation: ns1-cloud-a 25s linear infinite;
}
.scn-nestor-sea-analogy .ca2 {
  top: 18%; right: 20%; width: 70px;
  animation: ns1-cloud-b 35s linear infinite reverse;
}
@keyframes ns1-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ns1-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ns1-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ns1-ship-l { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ns1-ship-s { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ns1-reflect { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes ns1-cloud-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes ns1-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-nestor-valor-wind {
  background:
    linear-gradient(180deg, #7fc8f8 0%, #b8e2f8 40%, #fde68a 70%, #d4a373 100%) no-repeat,
    radial-gradient(ellipse at 30% 80%, rgba(255,230,150,0.3) 0%, transparent 60%);
}
.scn-nestor-valor-wind .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7fc8f8 0%, #b8e2f8 100%);
  animation: ns2-sky 15s ease-in-out infinite alternate;
}
.scn-nestor-valor-wind .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8fbc8f 0%, #5a8a5a 40%, #2e6b2e 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  animation: ns2-gnd 10s ease-in-out infinite;
}
.scn-nestor-valor-wind .oak-tree {
  position: absolute; bottom: 35%; left: 40%;
  width: 20px; height: 80px;
  background: linear-gradient(180deg, #6b4226 0%, #3e220e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ns2-oak 6s ease-in-out infinite alternate;
}
.scn-nestor-valor-wind .wind-streaks {
  position: absolute; top: 20%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.3) 20%, transparent 50%, rgba(255,255,255,0.2) 80%, transparent 100%);
  filter: blur(4px);
  animation: ns2-wind 8s linear infinite;
}
.scn-nestor-valor-wind .leaves {
  position: absolute; bottom: 45%; left: 30%;
  width: 10px; height: 10px;
  background: #7a9a4a;
  border-radius: 50% 0 50% 0;
  animation: ns2-leaves 4s ease-in-out infinite;
  box-shadow: 20px 10px 0 #6a8a3a, -30px -5px 0 #8aaa5a, 40px 20px 0 #5a7a2a;
}
.scn-nestor-valor-wind .rays {
  position: absolute; top: 5%; left: 50%;
  width: 200px; height: 300px;
  background: linear-gradient(135deg, rgba(255,230,150,0.3) 0%, transparent 100%);
  transform: rotate(-20deg);
  filter: blur(10px);
  animation: ns2-rays 20s ease-in-out infinite alternate;
}
.scn-nestor-valor-wind .rock {
  position: absolute; bottom: 30%; left: 15%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #8b7e6b 0%, #5a4d3a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: ns2-rock 12s ease-in-out infinite;
}
@keyframes ns2-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes ns2-gnd { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ns2-oak { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes ns2-wind { 0% { transform: translateX(-100%) } 100% { transform: translateX(100%) } }
@keyframes ns2-leaves { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(10px,-15px) rotate(30deg) } 100% { transform: translate(20px,-30px) rotate(60deg) } }
@keyframes ns2-rays { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-15deg) scale(1.05) } 100% { transform: rotate(-20deg) scale(1) } }
@keyframes ns2-rock { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-ulysses-addresses-lords {
  background:
    linear-gradient(180deg, #2b1d0e 0%, #4a301a 30%, #a0794c 60%, #d4a373 80%, #f5deb3 100%) no-repeat,
    radial-gradient(ellipse at 20% 40%, rgba(255,215,0,0.4) 0%, transparent 70%);
}
.scn-ulysses-addresses-lords .tent {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(135deg, #5a3e2b 0%, #3a2210 50%, #7a5844 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: ua-tent 10s ease-in-out infinite alternate;
}
.scn-ulysses-addresses-lords .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%);
  animation: ua-floor 12s ease-in-out infinite;
}
.scn-ulysses-addresses-lords .figure-standing {
  position: absolute; bottom: 20%; left: 30%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ua-stand 5s ease-in-out infinite;
}
.scn-ulysses-addresses-lords .figure-seated {
  position: absolute; bottom: 15%; right: 20%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ua-sit 7s ease-in-out infinite alternate;
}
.scn-ulysses-addresses-lords .sun-ray {
  position: absolute; top: 0; left: 10%;
  width: 10px; height: 100%;
  background: linear-gradient(180deg, rgba(255,215,0,0.6) 0%, transparent 100%);
  filter: blur(4px);
  transform: skewX(-10deg);
  animation: ua-ray 3s ease-in-out infinite alternate;
}
.scn-ulysses-addresses-lords .spear {
  position: absolute; bottom: 40%; left: 35%;
  width: 4px; height: 90px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a30 100%);
  transform: rotate(-15deg);
  animation: ua-spear 4s ease-in-out infinite;
}
.scn-ulysses-addresses-lords .table {
  position: absolute; bottom: 20%; left: 50%;
  width: 80px; height: 10px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3e2b 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  animation: ua-table 6s ease-in-out infinite;
}
@keyframes ua-tent { 0% { transform: skewX(0) } 50% { transform: skewX(-2deg) } 100% { transform: skewX(0) } }
@keyframes ua-floor { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ua-stand { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) translateY(-2px) } 50% { transform: translateX(6px) rotate(-2deg) } 75% { transform: translateX(3px) rotate(1deg) translateY(-2px) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ua-sit { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes ua-ray { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes ua-spear { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-13deg) } 100% { transform: rotate(-15deg) } }
@keyframes ua-table { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }

.scn-nestor-ulysses-welcome {
  background:
    linear-gradient(180deg, #ffb347 0%, #ffd699 30%, #f5deb3 60%, #d4a373 80%, #8b5e3c 100%) no-repeat,
    radial-gradient(ellipse at 50% 80%, rgba(255,200,100,0.4) 0%, transparent 70%);
}
.scn-nestor-ulysses-welcome .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffb347 0%, #ffd699 100%);
  animation: nw-sky 12s ease-in-out infinite alternate;
}
.scn-nestor-ulysses-welcome .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #d4a373 0%, #8b5e3c 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
}
.scn-nestor-ulysses-welcome .figure-left {
  position: absolute; bottom: 25%; left: 20%;
  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: nw-left 6s ease-in-out infinite;
}
.scn-nestor-ulysses-welcome .figure-right {
  position: absolute; bottom: 25%; right: 20%;
  width: 30px; height: 75px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nw-right 6s ease-in-out infinite 3s;
}
.scn-nestor-ulysses-welcome .wine-cup {
  position: absolute; bottom: 35%; left: 38%;
  width: 16px; height: 18px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a30 100%);
  border-radius: 0 0 40% 40%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: nw-cup 8s ease-in-out infinite alternate;
}
.scn-nestor-ulysses-welcome .laurel {
  position: absolute; bottom: 35%; right: 35%;
  width: 40px; height: 20px;
  background: linear-gradient(135deg, #5a7a2a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 50%, 20% 0%, 50% 30%, 80% 0%, 100% 50%, 80% 100%, 50% 70%, 20% 100%);
  animation: nw-laurel 10s ease-in-out infinite;
}
.scn-nestor-ulysses-welcome .sun-disc {
  position: absolute; top: 10%; left: 50%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffdd44 0%, #ffaa00 50%, #ff6600 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 20px #ffaa00, 0 0 80px 40px rgba(255,170,0,0.3);
  animation: nw-sun 9s ease-in-out infinite alternate;
}
@keyframes nw-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nw-left { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(5px) rotate(2deg) } 60% { transform: translateX(10px) rotate(-1deg) } 100% { transform: translateX(15px) rotate(0) } }
@keyframes nw-right { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-5px) rotate(-2deg) } 60% { transform: translateX(-10px) rotate(1deg) } 100% { transform: translateX(-15px) rotate(0) } }
@keyframes nw-cup { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes nw-laurel { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } 100% { transform: rotate(0) scale(1) } }
@keyframes nw-sun { 0% { transform: translateX(-50%) translateY(0) scale(1) } 50% { transform: translateX(-50%) translateY(-4px) scale(1.02) } 100% { transform: translateX(-50%) translateY(0) scale(1) } }

.scn-pandarus-house-parting {
  background: linear-gradient(180deg, #1a1423 0%, #2a1f2a 50%, #3a2a3a 100%), radial-gradient(ellipse at 30% 50%, #4a3a3a 0%, transparent 70%);
}
.scn-pandarus-house-parting .ph-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1423 0%, #2a1f2a 100%); }
.scn-pandarus-house-parting .ph-wall { position: absolute; bottom: 25%; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); }
.scn-pandarus-house-parting .ph-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-pandarus-house-parting .ph-door { position: absolute; bottom: 25%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 12px rgba(0,0,0,.6); }
.scn-pandarus-house-parting .ph-figure-a { position: absolute; bottom: 22%; left: 40%; width: 22px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ph-figureA 4s ease-in-out infinite; }
.scn-pandarus-house-parting .ph-figure-b { position: absolute; bottom: 22%; left: 55%; width: 18px; height: 38px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ph-figureB 4s ease-in-out infinite 0.5s; }
.scn-pandarus-house-parting .ph-candle { position: absolute; bottom: 38%; left: 48%; width: 8px; height: 16px; background: linear-gradient(180deg, #ffd080 0%, #b08040 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 6px 2px #c08040; animation: ph-candleFlicker 2s ease-in-out infinite; }
.scn-pandarus-house-parting .ph-glow { position: absolute; bottom: 35%; left: 46%; width: 40px; height: 40px; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,200,100,0.1) 50%, transparent 70%); border-radius: 50%; animation: ph-glowPulse 3s ease-in-out infinite; }

@keyframes ph-figureA { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(-4px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes ph-figureB { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(4px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes ph-candleFlicker { 0%,100% { transform: scaleY(1) scaleX(1); opacity: 1; } 25% { transform: scaleY(1.05) scaleX(0.95); opacity: 0.9; } 50% { transform: scaleY(0.95) scaleX(1.05); opacity: 1; } 75% { transform: scaleY(1.02) scaleX(0.98); opacity: 0.95; } }
@keyframes ph-glowPulse { 0%,100% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.8; } }

.scn-item-sleeve-pledge {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 50%, #2a1a0a 100%), radial-gradient(ellipse at 70% 60%, #4a3a2a 0%, transparent 80%);
}
.scn-item-sleeve-pledge .is-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 100%); }
.scn-item-sleeve-pledge .is-wall { position: absolute; bottom: 30%; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); }
.scn-item-sleeve-pledge .is-table { position: absolute; bottom: 22%; left: 30%; width: 120px; height: 20px; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-item-sleeve-pledge .is-sleeve { position: absolute; bottom: 28%; left: 42%; width: 30px; height: 40px; background: linear-gradient(180deg, #b87878 0%, #8a5858 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-15deg); animation: is-sleeveFold 5s ease-in-out infinite; }
.scn-item-sleeve-pledge .is-hand { position: absolute; bottom: 25%; left: 55%; width: 14px; height: 24px; background: linear-gradient(180deg, #c8a080 0%, #a88060 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: 50% 100%; animation: is-handReach 5s ease-in-out infinite; }
.scn-item-sleeve-pledge .is-lamp { position: absolute; bottom: 38%; left: 18%; width: 12px; height: 24px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 12px 4px #c8a060; }
.scn-item-sleeve-pledge .is-light { position: absolute; bottom: 35%; left: 14%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(200,160,96,0.6) 0%, rgba(200,160,96,0.2) 30%, transparent 60%); border-radius: 50%; animation: is-lightGlow 3s ease-in-out infinite; }
.scn-item-sleeve-pledge .is-shadow { position: absolute; bottom: 18%; left: 32%; width: 80px; height: 15px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); border-radius: 50%; animation: is-shadowSway 5s ease-in-out infinite; }

@keyframes is-sleeveFold { 0%,100% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.1); } }
@keyframes is-handReach { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-5deg); } }
@keyframes is-lightGlow { 0%,100% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.15); opacity: 1; } }
@keyframes is-shadowSway { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }

.scn-troilus-delivers-cressida {
  background: linear-gradient(180deg, #5a7a8a 0%, #8a9a8a 40%, #c89a6a 70%, #e8b080 100%), radial-gradient(ellipse at 50% 0%, #7a8a9a 0%, transparent 60%);
}
.scn-troilus-delivers-cressida .td-sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #5a7a8a 0%, #8a9a8a 100%); animation: td-skyShift 20s ease-in-out infinite; }
.scn-troilus-delivers-cressida .td-water { position: absolute; bottom: 10%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 100%); animation: td-waterWave 8s ease-in-out infinite; }
.scn-troilus-delivers-cressida .td-dock { position: absolute; bottom: 30%; left: 20%; width: 60%; height: 6px; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-troilus-delivers-cressida .td-figure-troilus { position: absolute; bottom: 32%; left: 30%; width: 20px; height: 36px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-figureTroilus 5s ease-in-out infinite; }
.scn-troilus-delivers-cressida .td-figure-cressida { position: absolute; bottom: 32%; left: 42%; width: 18px; height: 34px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-figureCressida 5s ease-in-out infinite 0.3s; }
.scn-troilus-delivers-cressida .td-figure-diomedes { position: absolute; bottom: 32%; left: 55%; width: 22px; height: 38px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-figureDiomedes 5s ease-in-out infinite 0.6s; }
.scn-troilus-delivers-cressida .td-flag { position: absolute; bottom: 38%; left: 70%; width: 4px; height: 30px; background: #3a2a1a; border-radius: 2px; animation: td-flagSway 4s ease-in-out infinite; }
.scn-troilus-delivers-cressida .td-flag::after { content: ''; position: absolute; top: 2px; left: 4px; width: 20px; height: 14px; background: #5e1a1d; border-radius: 2px 50% 50% 2px; animation: td-flagFlap 4s ease-in-out infinite; }
.scn-troilus-delivers-cressida .td-cloud-a { position: absolute; top: 15%; left: -10%; width: 80px; height: 20px; background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(6px); animation: td-driftA 40s linear infinite; }
.scn-troilus-delivers-cressida .td-cloud-b { position: absolute; top: 25%; right: -10%; width: 60px; height: 16px; background: rgba(255,255,255,0.2); border-radius: 50%; filter: blur(5px); animation: td-driftB 50s linear infinite reverse; }

@keyframes td-skyShift { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes td-waterWave { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes td-figureTroilus { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-3deg); } }
@keyframes td-figureCressida { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes td-figureDiomedes { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(3deg); } }
@keyframes td-flagSway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes td-flagFlap { 0%,100% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); } 50% { clip-path: polygon(0 0, 90% 5%, 95% 95%, 0 100%); } }
@keyframes td-driftA { 0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); } }
@keyframes td-driftB { 0% { transform: translateX(60px); } 100% { transform: translateX(-120vw); } }

.scn-greek-camp-ajax-ready {
  background: linear-gradient(180deg, #8aacd0 0%, #c0d0e0 40%, #e0d0a0 100%), radial-gradient(ellipse at 50% 0%, #a0b8d0 0%, transparent 70%);
}
.scn-greek-camp-ajax-ready .gc-sky { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #8aacd0 0%, #c0d0e0 100%); animation: gc-skyBrighten 15s ease-in-out infinite; }
.scn-greek-camp-ajax-ready .gc-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #b0a080 0%, #908060 100%); }
.scn-greek-camp-ajax-ready .gc-tent-1 { position: absolute; bottom: 20%; left: 15%; width: 60px; height: 50px; background: linear-gradient(180deg, #c8b090 0%, #a09070 100%); border-radius: 20% 20% 10% 10%; clip-path: polygon(10% 100%, 50% 0%, 90% 100%); box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-greek-camp-ajax-ready .gc-tent-2 { position: absolute; bottom: 22%; right: 20%; width: 50px; height: 40px; background: linear-gradient(180deg, #b8a080 0%, #987860 100%); border-radius: 15% 15% 8% 8%; clip-path: polygon(15% 100%, 50% 0%, 85% 100%); box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-greek-camp-ajax-ready .gc-ajax { position: absolute; bottom: 18%; left: 45%; width: 30px; height: 50px; background: linear-gradient(180deg, #a0603a 0%, #7a4020 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(0.8); animation: gc-ajaxReady 3s ease-in-out infinite; }
.scn-greek-camp-ajax-ready .gc-ajax::before { content: ''; position: absolute; top: -10%; left: -20%; width: 140%; height: 120%; background: radial-gradient(ellipse, #c8a060 0%, transparent 70%); border-radius: 50%; opacity: 0.3; animation: gc-armorGlint 4s ease-in-out infinite; }
.scn-greek-camp-ajax-ready .gc-figure-menelaus { position: absolute; bottom: 18%; left: 30%; width: 16px; height: 34px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-figureSide 6s ease-in-out infinite; }
.scn-greek-camp-ajax-ready .gc-figure-ulysses { position: absolute; bottom: 18%; right: 28%; width: 18px; height: 36px; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-figureSide 6s ease-in-out infinite 0.2s; }
.scn-greek-camp-ajax-ready .gc-trumpet { position: absolute; bottom: 22%; left: 52%; width: 24px; height: 8px; background: linear-gradient(90deg, #c8a060 0%, #e0c080 50%, #c8a060 100%); border-radius: 20% 50% 50% 20%; transform: rotate(-15deg); animation: gc-trumpetBlast 3s ease-in-out infinite; }

@keyframes gc-skyBrighten { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes gc-ajaxReady { 0%,100% { transform: translateY(0) scaleX(0.8) rotate(0deg); } 50% { transform: translateY(-2px) scaleX(0.85) rotate(2deg); } }
@keyframes gc-armorGlint { 0%,100% { opacity: 0.2; } 50% { opacity: 0.5; } }
@keyframes gc-figureSide { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes gc-trumpetBlast { 0%,100% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.1); } }

.scn-diomedes-sends-horse { background: linear-gradient(180deg, #4a6b8a 0%, #d4a843 60%, #c87830 100%), radial-gradient(ellipse at 20% 80%, #f0c060 0%, transparent 60%); }
.scn-diomedes-sends-horse .sky-ds { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5b7f9e 0%, #e0b860 100%); animation: ds-sky 20s ease-in-out infinite alternate; }
.scn-diomedes-sends-horse .sun-ds { position:absolute; top:10%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #e0a030 50%, transparent 70%); border-radius:50%; animation: ds-sun 6s ease-in-out infinite alternate; }
.scn-diomedes-sends-horse .hills-ds { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6b7a5a 0%, #3a4a2a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; animation: ds-hills 18s ease-in-out infinite; }
.scn-diomedes-sends-horse .horse-ds { position:absolute; bottom:28%; left:15%; width:100px; height:60px; background: linear-gradient(135deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ds-horse 2s ease-in-out infinite; }
.scn-diomedes-sends-horse .rider-ds { position:absolute; bottom:40%; left:18%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-rider 2s ease-in-out infinite; }
.scn-diomedes-sends-horse .spear-ds { position:absolute; bottom:42%; left:22%; width:4px; height:70px; background: linear-gradient(180deg, #c8a050 0%, #8a7030 100%); border-radius: 2px; transform-origin: bottom center; animation: ds-spear 1.5s ease-in-out infinite; }
.scn-diomedes-sends-horse .dust-ds { position:absolute; bottom:28%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 30% 100%, rgba(200,180,140,0.5) 0%, transparent 80%); filter: blur(8px); animation: ds-dust 3s ease-in-out infinite alternate; }
@keyframes ds-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ds-sun { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.05) translateX(5px) } 100% { transform: scale(0.95) translateX(-3px) } }
@keyframes ds-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ds-horse { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-8px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ds-rider { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ds-spear { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes ds-dust { 0% { opacity:0.3; transform: scaleY(1) } 50% { opacity:0.8; transform: scaleY(1.1) } 100% { opacity:0.4; transform: scaleY(0.9) } }

.scn-nestor-urges-ajax { background: linear-gradient(180deg, #5c7f9e 0%, #d4a843 60%, #c87830 100%), radial-gradient(ellipse at 50% 100%, #e0b860 0%, transparent 70%); }
.scn-nestor-urges-ajax .sky-nu { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6b8fae 0%, #e8c868 100%); animation: nu-sky 25s ease-in-out infinite alternate; }
.scn-nestor-urges-ajax .ground-nu { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a8a6a 0%, #4a5a3a 100%); border-radius:20% 20% 0 0; }
.scn-nestor-urges-ajax .body-nu { position:absolute; bottom:30%; left:15%; width:50px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; animation: nu-body 8s ease-in-out infinite; }
.scn-nestor-urges-ajax .nestor-nu { position:absolute; bottom:34%; left:40%; width:28px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nu-nestor 4s ease-in-out infinite; }
.scn-nestor-urges-ajax .ajax-nu { position:absolute; bottom:34%; left:60%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nu-ajax 6s ease-in-out infinite; }
.scn-nestor-urges-ajax .shield-nu { position:absolute; bottom:38%; left:62%; width:30px; height:30px; background: radial-gradient(circle, #c8a050 0%, #8a7030 70%); border-radius:50%; box-shadow: 0 0 12px rgba(200,160,80,0.4); animation: nu-shield 3s ease-in-out infinite alternate; }
.scn-nestor-urges-ajax .spear-nu { position:absolute; bottom:44%; left:68%; width:4px; height:80px; background: linear-gradient(180deg, #c8a050 0%, #8a7030 100%); border-radius:2px; transform-origin: bottom center; animation: nu-spear 2s ease-in-out infinite; }
.scn-nestor-urges-ajax .sun-nu { position:absolute; top:8%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #ffe080 0%, #e0a030 50%, transparent 70%); border-radius:50%; animation: nu-sun 6s ease-in-out infinite alternate; }
@keyframes nu-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes nu-body { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes nu-nestor { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes nu-ajax { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes nu-shield { 0% { transform: rotate(-10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }
@keyframes nu-spear { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-8deg) } }
@keyframes nu-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }

.scn-achilles-arming-vengeance { background: linear-gradient(180deg, #3a5a7a 0%, #b08040 60%, #a06820 100%), radial-gradient(ellipse at 30% 30%, #f0c060 0%, transparent 70%); }
.scn-achilles-arming-vengeance .sky-av { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a6a8a 0%, #d4a843 100%); animation: av-sky 20s ease-in-out infinite alternate; }
.scn-achilles-arming-vengeance .ground-av { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius:30% 30% 0 0; }
.scn-achilles-arming-vengeance .achilles-av { position:absolute; bottom:25%; left:35%; width:60px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: av-achilles 5s ease-in-out infinite; }
.scn-achilles-arming-vengeance .myrmidon1-av { position:absolute; bottom:25%; left:15%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: av-myrmidon1 8s ease-in-out infinite; }
.scn-achilles-arming-vengeance .myrmidon2-av { position:absolute; bottom:25%; left:55%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: av-myrmidon2 9s ease-in-out infinite; }
.scn-achilles-arming-vengeance .shield-av { position:absolute; bottom:32%; left:38%; width:50px; height:50px; background: radial-gradient(circle, #c8a050 0%, #7a5020 70%); border-radius:50%; box-shadow: 0 0 20px rgba(200,160,80,0.5); animation: av-shield 3s ease-in-out infinite alternate; }
.scn-achilles-arming-vengeance .spear-av { position:absolute; bottom:40%; left:43%; width:6px; height:100px; background: linear-gradient(180deg, #c8a050 0%, #7a5020 100%); border-radius:3px; transform-origin: bottom center; animation: av-spear 2s ease-in-out infinite; }
.scn-achilles-arming-vengeance .light-av { position:absolute; top:5%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #ffe080 0%, #e0a030 30%, transparent 70%); border-radius:50%; animation: av-light 6s ease-in-out infinite alternate; }
@keyframes av-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes av-achilles { 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 av-myrmidon1 { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(0.97) rotate(5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes av-myrmidon2 { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(-4deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes av-shield { 0% { transform: rotate(-15deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-10deg) } }
@keyframes av-spear { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes av-light { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }

.scn-ajax-challenges-troilus { background: linear-gradient(180deg, #5a7a9a 0%, #c8a050 60%, #b07030 100%), radial-gradient(ellipse at 60% 100%, #e8b860 0%, transparent 70%); }
.scn-ajax-challenges-troilus .sky-ac { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6b8fae 0%, #e0b860 100%); animation: ac-sky 22s ease-in-out infinite alternate; }
.scn-ajax-challenges-troilus .ground-ac { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius:30% 30% 0 0; }
.scn-ajax-challenges-troilus .ajax-ac { position:absolute; bottom:30%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ac-ajax 4s ease-in-out infinite; }
.scn-ajax-challenges-troilus .troilus-ac { position:absolute; bottom:30%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ac-troilus 5s ease-in-out infinite; }
.scn-ajax-challenges-troilus .achilles-ac { position:absolute; bottom:30%; left:70%; width:55px; height:85px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ac-achilles 6s ease-in-out infinite; }
.scn-ajax-challenges-troilus .sword1-ac { position:absolute; bottom:40%; left:25%; width:4px; height:60px; background: linear-gradient(180deg, #c8a050 0%, #8a7030 100%); border-radius:2px; transform-origin: bottom center; animation: ac-sword1 1.5s ease-in-out infinite; }
.scn-ajax-challenges-troilus .sword2-ac { position:absolute; bottom:40%; left:55%; width:4px; height:60px; background: linear-gradient(180deg, #c8a050 0%, #8a7030 100%); border-radius:2px; transform-origin: bottom center; animation: ac-sword2 2s ease-in-out infinite; }
.scn-ajax-challenges-troilus .dust-ac { position:absolute; bottom:28%; left:0; right:0; height:10%; background: radial-gradient(ellipse at 40% 100%, rgba(200,180,150,0.5) 0%, transparent 80%); filter: blur(6px); animation: ac-dust 4s ease-in-out infinite alternate; }
@keyframes ac-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ac-ajax { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(-5px) rotate(0deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(5px) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes ac-troilus { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ac-achilles { 0% { transform: scale(1) } 50% { transform: scale(1.04) } 100% { transform: scale(1) } }
@keyframes ac-sword1 { 0% { transform: rotate(-15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-15deg) } }
@keyframes ac-sword2 { 0% { transform: rotate(15deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(15deg) } }
@keyframes ac-dust { 0% { opacity:0.2; transform: scaleY(1) } 50% { opacity:0.7; transform: scaleY(1.2) } 100% { opacity:0.3; transform: scaleY(0.8) } }

.scn-aeneas-challenge { background: linear-gradient(180deg, #b8c8d8 0%, #d4c8a8 35%, #c8a870 70%, #8a7a5a 100%), radial-gradient(ellipse at 50% 0%, #f0e8c8 0%, transparent 60%); }
.scn-aeneas-challenge .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4dce8 0%, #c4c0a8 60%, transparent 100%); animation: ach-sky 20s ease-in-out infinite alternate; }
.scn-aeneas-challenge .sun { position:absolute; top:12%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #f8e8b0 0%, #e8c870 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(232,200,112,.4), 0 0 120px 60px rgba(232,200,112,.15); animation: ach-sun 25s ease-in-out infinite alternate; }
.scn-aeneas-challenge .horizon-mist { position:absolute; bottom:40%; left:0; right:0; height:12%; background: linear-gradient(0deg, rgba(200,168,112,.3) 0%, transparent 100%); filter: blur(8px); animation: ach-mist 15s ease-in-out infinite alternate; }
.scn-aeneas-challenge .camp-tents { position:absolute; bottom:38%; left:8%; right:35%; height:14%; background: linear-gradient(180deg, #a09070 0%, #7a6a4a 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.2); animation: ach-tents 12s ease-in-out infinite; }
.scn-aeneas-challenge .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #9a8a5a 0%, #6a5a3a 40%, #5a4a2a 100%); border-radius: 30% 0 0 0 / 20% 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-aeneas-challenge .figure-aeneas { position:absolute; bottom:32%; left:38%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ach-walk 6s ease-in-out infinite; }
.scn-aeneas-challenge .spear { position:absolute; bottom:34%; left:40%; width:4px; height:52px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(8deg); transform-origin: bottom center; animation: ach-spear 6s ease-in-out infinite; }
.scn-aeneas-challenge .banner { position:absolute; bottom:42%; left:40%; width:24px; height:16px; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(12deg); transform-origin: bottom left; animation: ach-banner 4s ease-in-out infinite alternate; }
@keyframes ach-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ach-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(232,200,112,.4) } 50% { transform: scale(1.05); box-shadow: 0 0 80px 40px rgba(232,200,112,.5) } 100% { transform: scale(.98); box-shadow: 0 0 50px 25px rgba(232,200,112,.35) } }
@keyframes ach-mist { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.2) } 100% { opacity:.4; transform: scaleY(.9) } }
@keyframes ach-tents { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ach-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 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 ach-spear { 0%,100% { transform: rotate(8deg) } 50% { transform: rotate(6deg) } }
@keyframes ach-banner { 0% { transform: rotate(10deg) scaleX(1) } 50% { transform: rotate(16deg) scaleX(1.05) } 100% { transform: rotate(12deg) scaleX(.98) } }

.scn-hector-challenge-proclaimed { background: linear-gradient(180deg, #c8a870 0%, #d4b878 30%, #b89850 60%, #7a6a3a 100%), radial-gradient(ellipse at 50% 0%, #f0d890 0%, transparent 65%); }
.scn-hector-challenge-proclaimed .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8c898 0%, #c8a868 50%, transparent 100%); animation: hcp-sky 18s ease-in-out infinite alternate; }
.scn-hector-challenge-proclaimed .sunburst { position:absolute; top:8%; left:50%; width:100px; height:100px; background: radial-gradient(circle, #f8e8b0 0%, #e8c860 40%, transparent 70%); border-radius:50%; transform: translateX(-50%); box-shadow: 0 0 80px 40px rgba(232,200,96,.5), 0 0 160px 80px rgba(232,200,96,.2); animation: hcp-sunburst 8s ease-in-out infinite alternate; }
.scn-hector-challenge-proclaimed .trojan-walls { position:absolute; bottom:30%; left:5%; right:65%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -6px 12px rgba(0,0,0,.4); animation: hcp-walls 15s ease-in-out infinite; }
.scn-hector-challenge-proclaimed .plain { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 60%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-hector-challenge-proclaimed .figure-hector { position:absolute; bottom:22%; left:50%; width:28px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #0a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hcp-hector 5s ease-in-out infinite; }
.scn-hector-challenge-proclaimed .trumpet { position:absolute; bottom:28%; left:52%; width:6px; height:30px; background: linear-gradient(180deg, #c8a860 0%, #8a6a3a 100%); border-radius: 2px 2px 4px 4px; transform: rotate(-20deg); transform-origin: bottom center; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: hcp-trumpet 3s ease-in-out infinite alternate; }
.scn-hector-challenge-proclaimed .shield { position:absolute; bottom:24%; left:45%; width:26px; height:26px; background: radial-gradient(circle, #c8a860 0%, #8a6a3a 60%, #5a4a3a 100%); border-radius: 50%; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: hcp-shield 7s ease-in-out infinite; }
@keyframes hcp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hcp-sunburst { 0% { transform: translateX(-50%) scale(1); opacity:.7 } 50% { transform: translateX(-50%) scale(1.08); opacity:1 } 100% { transform: translateX(-50%) scale(.96); opacity:.8 } }
@keyframes hcp-walls { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hcp-hector { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } }
@keyframes hcp-trumpet { 0% { transform: rotate(-18deg) scaleY(1) } 50% { transform: rotate(-24deg) scaleY(1.03) } 100% { transform: rotate(-20deg) scaleY(.98) } }
@keyframes hcp-shield { 0%,100% { transform: translate(0, 0) } 50% { transform: translate(-1px, -2px) } }

.scn-hector-conditions { background: linear-gradient(180deg, #b8a070 0%, #d0b880 30%, #b89850 65%, #6a5a3a 100%), radial-gradient(ellipse at 60% 0%, #f0d8a0 0%, transparent 70%); }
.scn-hector-conditions .sky { position:absolute; inset:0 0 42% 0; background: linear-gradient(180deg, #d4c098 0%, #c8a868 50%, transparent 100%); animation: hcn-sky 22s ease-in-out infinite alternate; }
.scn-hector-conditions .sun { position:absolute; top:10%; left:55%; width:55px; height:55px; background: radial-gradient(circle, #f8e8b0 0%, #e8c860 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(232,200,96,.4), 0 0 120px 60px rgba(232,200,96,.15); animation: hcn-sun 20s ease-in-out infinite alternate; }
.scn-hector-conditions .greek-tents { position:absolute; bottom:38%; left:5%; right:55%; height:15%; background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%); border-radius: 15% 15% 0 0 / 50% 50% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.2); animation: hcn-tents 14s ease-in-out infinite; }
.scn-hector-conditions .trojan-walls { position:absolute; bottom:32%; left:60%; right:8%; height:22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0 / 35% 35% 0 0; box-shadow: inset 0 -6px 12px rgba(0,0,0,.4); animation: hcn-walls 16s ease-in-out infinite; }
.scn-hector-conditions .plain { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #7a6a3a 0%, #4a3a1a 60%, #2a1a0a 100%); box-shadow: inset 0 6px 16px rgba(0,0,0,.3); }
.scn-hector-conditions .figure-hector { position:absolute; bottom:24%; left:35%; width:24px; height:46px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hcn-hector 6s ease-in-out infinite; }
.scn-hector-conditions .figure-lady { position:absolute; bottom:26%; right:28%; width:20px; height:38px; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: hcn-lady 8s ease-in-out infinite; }
.scn-hector-conditions .spear { position:absolute; bottom:26%; left:37%; width:4px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(6deg); transform-origin: bottom center; animation: hcn-spear 6s ease-in-out infinite; }
.scn-hector-conditions .banner { position:absolute; bottom:40%; left:34%; width:22px; height:14px; background: linear-gradient(180deg, #a0461a 0%, #702a10 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(8deg); transform-origin: bottom left; animation: hcn-banner 5s ease-in-out infinite alternate; }
@keyframes hcn-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hcn-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(232,200,96,.4) } 50% { transform: scale(1.04); box-shadow: 0 0 80px 40px rgba(232,200,96,.5) } 100% { transform: scale(.97); box-shadow: 0 0 50px 25px rgba(232,200,96,.35) } }
@keyframes hcn-tents { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hcn-walls { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes hcn-hector { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg) } }
@keyframes hcn-lady { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-2px) translateY(-1px) } }
@keyframes hcn-spear { 0%,100% { transform: rotate(6deg) } 50% { transform: rotate(8deg) } }
@keyframes hcn-banner { 0% { transform: rotate(6deg) scaleX(1) } 50% { transform: rotate(12deg) scaleX(1.06) } 100% { transform: rotate(8deg) scaleX(.98) } }

.scn-agamemnon-accepts { background: linear-gradient(180deg, #a89060 0%, #c8a868 25%, #b89850 55%, #7a6a3a 100%), radial-gradient(ellipse at 50% 0%, #e8d098 0%, transparent 60%); }
.scn-agamemnon-accepts .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4c098 0%, #b89850 60%, transparent 100%); animation: aga-sky 20s ease-in-out infinite alternate; }
.scn-agamemnon-accepts .tent-interior { position:absolute; inset:5% 8% 10% 8%; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a3a 40%, #8a7048 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 8px 24px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.3); animation: aga-tent 18s ease-in-out infinite; }
.scn-agamemnon-accepts .throne { position:absolute; bottom:18%; left:50%; width:50px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #4a3a1a 100%); border-radius: 10% 10% 4% 4% / 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: aga-throne 12s ease-in-out infinite; }
.scn-agamemnon-accepts .figure-agamemnon { position:absolute; bottom:16%; left:48%; width:26px; height:48px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #0a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: aga-agamemnon 6s ease-in-out infinite; }
.scn-agamemnon-accepts .figure-nestor { position:absolute; bottom:14%; right:20%; width:22px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: aga-nestor 7s ease-in-out infinite; transform-origin: bottom center; }
.scn-agamemnon-accepts .torch { position:absolute; bottom:28%; left:22%; width:8px; height:20px; background: linear-gradient(180deg, #8a6a3a 0%, #4a3a1a 100%); border-radius: 2px; transform: rotate(-8deg); transform-origin: bottom center; animation: aga-torch 4s ease-in-out infinite alternate; }
.scn-agamemnon-accepts .torch::after { position:absolute; top:-10px; left:50%; width:14px; height:14px; background: radial-gradient(circle, #f8d870 0%, #e8a030 60%, transparent 80%); border-radius:50%; transform: translateX(-50%); box-shadow: 0 0 18px 6px rgba(232,160,48,.5), 0 0 36px 12px rgba(232,160,48,.25); animation: aga-flame 2s ease-in-out infinite alternate; content:''; }
.scn-agamemnon-accepts .shield { position:absolute; bottom:20%; left:35%; width:24px; height:24px; background: radial-gradient(circle, #c8a860 0%, #8a6a3a 60%, #5a4a3a 100%); border-radius: 50%; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: aga-shield 9s ease-in-out infinite; }
.scn-agamemnon-accepts .banner { position:absolute; bottom:36%; left:30%; width:26px; height:18px; background: linear-gradient(180deg, #c87040 0%, #8a5020 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-5deg); transform-origin: bottom left; animation: aga-banner 5s ease-in-out infinite alternate; }
@keyframes aga-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes aga-tent { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes aga-throne { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes aga-agamemnon { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } }
@keyframes aga-nestor { 0%,100% { transform: translate(0, 0) rotate(0) } 50% { transform: translate(-2px, -1px) rotate(2deg) } }
@keyframes aga-torch { 0% { transform: rotate(-6deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-7deg) } }
@keyframes aga-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.3) } 100% { transform: translateX(-50%) scaleY(.9) } }
@keyframes aga-shield { 0%,100% { transform: translate(0, 0) } 50% { transform: translate(-1px, -2px) } }
@keyframes aga-banner { 0% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(.98) } }

/* helen-praises-troilus */
.scn-helen-praises-troilus {
  background:
    linear-gradient(180deg, #87CEEB 0%, #ffe8c0 40%, #ffda80 70%, #c89050 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e7, transparent 60%);
}
.scn-helen-praises-troilus .window-frame {
  position: absolute; inset: 5% 10% 15% 10%; border: 8px solid #a07040; border-radius: 4px;
  background: rgba(255,255,255,0.15); box-shadow: inset 0 0 20px rgba(255,200,100,0.5);
  animation: hp-frame-pulse 6s ease-in-out infinite alternate;
}
.scn-helen-praises-troilus .sky-outside {
  position: absolute; inset: 5% 10% 15% 10%; background: linear-gradient(180deg, #87CEEB 0%, #b8e0ff 70%);
  border-radius: 4px; animation: hp-sky-glow 8s ease-in-out infinite alternate;
}
.scn-helen-praises-troilus .figure-helen {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #ffdfbf, #c8a070); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hp-bob 2s ease-in-out infinite;
}
.scn-helen-praises-troilus .figure-troilus {
  position: absolute; bottom: 30%; right: 30%; width: 34px; height: 52px;
  background: radial-gradient(ellipse at 50% 40%, #d4b48c, #9e7a50); border-radius: 45% 55% 40% 40% / 55% 65% 35% 35%;
  animation: hp-bob 2s ease-in-out infinite 0.5s;
}
.scn-helen-praises-troilus .sunbeam {
  position: absolute; top: 0; left: 45%; width: 12px; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,200,0.8) 0%, transparent 100%);
  transform: skewX(-10deg); filter: blur(4px); animation: hp-sunbeam-sway 5s ease-in-out infinite alternate;
}
.scn-helen-praises-troilus .curtain-left {
  position: absolute; top: 5%; left: 10%; width: 10%; height: 70%;
  background: linear-gradient(90deg, #b08860 0%, #906840 100%); border-radius: 0 20% 40% 0;
  animation: hp-curtain-wave 7s ease-in-out infinite;
}
.scn-helen-praises-troilus .curtain-right {
  position: absolute; top: 5%; right: 10%; width: 10%; height: 70%;
  background: linear-gradient(270deg, #b08860 0%, #906840 100%); border-radius: 20% 0 0 40%;
  animation: hp-curtain-wave 7s ease-in-out infinite 1s;
}
.scn-helen-praises-troilus .ground {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 8px 8px 0 0;
}
@keyframes hp-frame-pulse { 0% { box-shadow: inset 0 0 20px rgba(255,200,100,0.3); } 50% { box-shadow: inset 0 0 40px rgba(255,220,150,0.7); } 100% { box-shadow: inset 0 0 20px rgba(255,200,100,0.3); } }
@keyframes hp-sky-glow { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hp-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hp-sunbeam-sway { 0% { transform: skewX(-12deg) translateX(0); } 50% { transform: skewX(-8deg) translateX(6px); } 100% { transform: skewX(-12deg) translateX(-2px); } }
@keyframes hp-curtain-wave { 0% { transform: rotate(-1deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

/* helen-tickles-chin */
.scn-helen-tickles-chin {
  background:
    linear-gradient(135deg, #ffe8b0 0%, #f0c870 50%, #d0a050 100%),
    radial-gradient(ellipse at 60% 40%, #fff0d0, transparent 70%);
}
.scn-helen-tickles-chin .bg-sun {
  position: absolute; inset:0; background: radial-gradient(circle at 60% 30%, #ffe8a0 0%, transparent 60%);
  animation: ht-sun-pulse 4s ease-in-out infinite alternate;
}
.scn-helen-tickles-chin .profile-left {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #d4a070 0%, #b08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); animation: ht-tilt 3s ease-in-out infinite;
}
.scn-helen-tickles-chin .profile-right {
  position: absolute; bottom: 20%; right: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #c89060 0%, #a07040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg) scaleX(-1); animation: ht-tilt 3s ease-in-out infinite 0.5s;
}
.scn-helen-tickles-chin .hand-tickling {
  position: absolute; bottom: 36%; left: 46%; width: 20px; height: 25px;
  background: radial-gradient(circle at 50% 30%, #e8b080, #b07040);
  border-radius: 30% 50% 30% 50%;
  animation: ht-tickle 1.6s ease-in-out infinite;
}
.scn-helen-tickles-chin .chin-sparkle {
  position: absolute; bottom: 34%; left: 51%; width: 10px; height: 10px;
  background: radial-gradient(circle, #fff 0%, #ffd070 60%, transparent 100%);
  border-radius: 50%; animation: ht-sparkle 1.5s ease-in-out infinite alternate;
}
.scn-helen-tickles-chin .sweat-drop {
  position: absolute; bottom: 52%; left: 55%; width: 6px; height: 8px;
  background: radial-gradient(circle at 30% 30%, #b0d8ff, #68a0e0);
  border-radius: 50%; animation: ht-sweat 2s ease-in-out infinite;
}
@keyframes ht-sun-pulse { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ht-tilt { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.02); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes ht-tickle { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-2px) rotate(5deg); } 50% { transform: translate(0,-1px) rotate(-2deg); } 75% { transform: translate(-3px,-3px) rotate(8deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ht-sparkle { 0% { transform: scale(0.5); opacity:0.5; } 100% { transform: scale(1.5); opacity:1; } }
@keyframes ht-sweat { 0% { transform: translateY(0); opacity:0; } 30% { opacity:0.8; } 70% { opacity:0.8; } 100% { transform: translateY(10px); opacity:0; } }

/* joke-white-hair */
.scn-joke-white-hair {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b8dcef 40%, #fce8b0 70%, #e0c080 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0, transparent 60%);
}
.scn-joke-white-hair .sky-sunny {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d8ff, #d4e8ff 80%);
  animation: jw-sky-shimmer 10s ease-in-out infinite alternate;
}
.scn-joke-white-hair .sun {
  position: absolute; top: 8%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8c0 0%, #ffd060 60%, transparent 100%);
  border-radius: 50%; animation: jw-sun-pulse 3s ease-in-out infinite;
}
.scn-joke-white-hair .figure-laughing {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jw-shake 1.5s ease-in-out infinite;
}
.scn-joke-white-hair .hair-white {
  position: absolute; bottom: 65%; left: 32%; width: 50px; height: 25px;
  background: radial-gradient(ellipse at 50% 50%, #f0f0e0 0%, #ddd0b0 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(2px);
  animation: jw-hair-bounce 1.8s ease-in-out infinite alternate;
}
.scn-joke-white-hair .laughter-lines {
  position: absolute; bottom: 42%; left: 38%; width: 20px; height: 15px;
  background: linear-gradient(90deg, transparent, #c8a060, transparent);
  border-radius: 50%; filter: blur(1px); transform: rotate(-20deg);
  animation: jw-lines 1.5s ease-in-out infinite;
}
.scn-joke-white-hair .cloud-w {
  position: absolute; top: 15%; left: 5%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%; filter: blur(6px); animation: jw-drift 40s linear infinite;
}
@keyframes jw-sky-shimmer { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes jw-sun-pulse { 0% { transform: scale(0.95); box-shadow:0 0 15px #ffd060; } 50% { transform: scale(1.05); box-shadow:0 0 25px #ffe080; } 100% { transform: scale(0.95); box-shadow:0 0 15px #ffd060; } }
@keyframes jw-shake { 0% { transform: translate(0) rotate(-2deg); } 25% { transform: translate(2px,-1px) rotate(3deg); } 50% { transform: translate(-1px,1px) rotate(-4deg); } 75% { transform: translate(3px,0) rotate(2deg); } 100% { transform: translate(0) rotate(-2deg); } }
@keyframes jw-hair-bounce { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes jw-lines { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.3); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes jw-drift { 0% { transform: translateX(-100px); } 100% { transform: translateX(100vw); } }

/* laughter-at-court */
.scn-laughter-at-court {
  background:
    linear-gradient(180deg, #e8d0a0 0%, #c8b080 40%, #a08050 80%, #705030 100%),
    radial-gradient(ellipse at 50% 20%, #ffecb0, transparent 50%);
}
.scn-laughter-at-court .court-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b09060 0%, #8a6a3a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-laughter-at-court .figure-hecuba {
  position: absolute; bottom: 30%; left: 20%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lc-laugh 1.6s ease-in-out infinite;
}
.scn-laughter-at-court .figure-cassandra {
  position: absolute; bottom: 30%; left: 38%; width: 32px; height: 58px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lc-laugh 1.6s ease-in-out infinite 0.1s;
}
.scn-laughter-at-court .figure-hector {
  position: absolute; bottom: 30%; right: 25%; width: 38px; height: 65px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lc-laugh 1.6s ease-in-out infinite 0.2s;
}
.scn-laughter-at-court .confetti-1 {
  position: absolute; top: 10%; left: 15%; width: 8px; height: 14px;
  background: #f0c060; border-radius: 20% 80% 20% 80%;
  animation: lc-confetti 4s ease-in-out infinite;
}
.scn-laughter-at-court .confetti-2 {
  position: absolute; top: 5%; left: 50%; width: 10px; height: 12px;
  background: #e09050; border-radius: 80% 20% 80% 20%;
  animation: lc-confetti 4s ease-in-out infinite 1s;
}
.scn-laughter-at-court .confetti-3 {
  position: absolute; top: 15%; right: 20%; width: 7px; height: 11px;
  background: #70b8e0; border-radius: 40% 60% 40% 60%;
  animation: lc-confetti 4s ease-in-out infinite 2s;
}
@keyframes lc-laugh { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(4deg); } 50% { transform: translateY(1px) rotate(-3deg); } 75% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes lc-confetti { 0% { transform: translateY(0) rotate(0deg); opacity:0; } 10% { opacity:1; } 50% { transform: translateY(20px) rotate(180deg); opacity:1; } 90% { opacity:1; } 100% { transform: translateY(40px) rotate(360deg); opacity:0; } }

/* ---- scene: item-white-hair-answer ---- */
.scn-item-white-hair-answer {
  background:
    linear-gradient(180deg, #87ceeb 0%, #ffe4b5 60%, #f5deb3 100%),
    radial-gradient(ellipse at 20% 80%, #ffe4b5 30%, transparent 70%);
}
.scn-item-white-hair-answer .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, transparent 100%);
  animation: iwh-sky 6s ease-in-out infinite alternate;
}
.scn-item-white-hair-answer .head {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
  animation: iwh-head 4s ease-in-out infinite;
}
.scn-item-white-hair-answer .hair-mass {
  position: absolute; bottom: 45%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  animation: iwh-hair 5s ease-in-out infinite;
}
.scn-item-white-hair-answer .strand {
  position: absolute; bottom: 70%; left: 50%; width: 4px; height: 45px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #f5f5dc 0%, #fff8dc 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(255,255,200,.6);
  animation: iwh-strand 2s ease-in-out infinite;
}
.scn-item-white-hair-answer .hand {
  position: absolute; bottom: 20%; left: 70%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #6b4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 60% 40% 40% / 30% 70% 60% 40%;
  transform: rotate(-10deg);
  animation: iwh-hand 3s ease-in-out infinite;
}
.scn-item-white-hair-answer .finger {
  position: absolute; bottom: 62%; left: 75%; width: 20px; height: 6px;
  background: #8a6a4a;
  border-radius: 50%;
  transform: rotate(20deg);
  animation: iwh-finger 2s ease-in-out infinite;
}
.scn-item-white-hair-answer .sparkle {
  position: absolute; bottom: 72%; left: 52%; width: 8px; height: 8px;
  background: #fffacd;
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #fffacd, 0 0 40px 16px rgba(255,250,205,.3);
  animation: iwh-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes iwh-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes iwh-head { 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 iwh-hair { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-48%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes iwh-strand { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 30% { transform: translateX(-45%) rotate(5deg) scaleY(1.1); } 60% { transform: translateX(-55%) rotate(-3deg) scaleY(1.05); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes iwh-hand { 0% { transform: rotate(-10deg) translateX(0); } 40% { transform: rotate(-5deg) translateX(10px); } 70% { transform: rotate(-15deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes iwh-finger { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.2); } 100% { transform: rotate(20deg) scaleY(1); } }
@keyframes iwh-sparkle { 0% { opacity: .3; transform: scale(.5); } 100% { opacity: 1; transform: scale(1.3); } }

/* ---- scene: pandur-schemes ---- */
.scn-pandur-schemes {
  background:
    linear-gradient(180deg, #87ceeb 0%, #ffd700 40%, #ffa500 70%, #8b4513 100%),
    radial-gradient(ellipse at 50% 100%, #ffa500 20%, transparent 80%);
}
.scn-pandur-schemes .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, transparent 100%);
  animation: ps-sky 18s ease-in-out infinite alternate;
}
.scn-pandur-schemes .hills-back {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: ps-hills 20s ease-in-out infinite alternate;
}
.scn-pandur-schemes .field {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #daa520 0%, #8b6914 60%, #5a4510 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: ps-field 12s ease-in-out infinite alternate;
}
.scn-pandur-schemes .hill-fore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a5a1a 0%, #3a2a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
.scn-pandur-schemes .figure-a {
  position: absolute; bottom: 22%; left: 30%; 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: ps-figure 6s ease-in-out infinite;
}
.scn-pandur-schemes .figure-b {
  position: absolute; bottom: 22%; left: 55%; width: 20px; 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: ps-figure 6s ease-in-out infinite reverse;
}
.scn-pandur-schemes .cloud-pa {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ps-cloud 40s linear infinite;
}
.scn-pandur-schemes .cloud-pb {
  position: absolute; top: 20%; right: 5%; width: 80px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ps-cloud 50s linear infinite reverse;
}
.scn-pandur-schemes .sun-ray {
  position: absolute; top: 5%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #fff8dc;
  animation: ps-sun 15s ease-in-out infinite alternate;
}
@keyframes ps-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ps-hills { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ps-field { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ps-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ps-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(150vw); } }
@keyframes ps-sun { 0% { opacity: .6; transform: scale(.9); } 100% { opacity: 1; transform: scale(1.1); } }

/* ---- scene: aeneas-passes ---- */
.scn-aeneas-passes {
  background:
    linear-gradient(180deg, #ff7f50 0%, #ffa07a 30%, #daa520 60%, #8b4513 100%),
    radial-gradient(ellipse at 50% 100%, #daa520 30%, transparent 80%);
}
.scn-aeneas-passes .sky-ap {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ffb347 0%, transparent 100%);
  animation: ap-sky 14s ease-in-out infinite alternate;
}
.scn-aeneas-passes .ground-ap {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6b4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
}
.scn-aeneas-passes .fig1 {
  position: absolute; bottom: 28%; left: 10%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ap-walk 8s ease-in-out infinite;
}
.scn-aeneas-passes .fig2 {
  position: absolute; bottom: 28%; left: 30%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ap-walk 8s ease-in-out infinite 2s;
}
.scn-aeneas-passes .fig3 {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ap-walk 8s ease-in-out infinite 4s;
}
.scn-aeneas-passes .spear1 {
  position: absolute; bottom: 50%; left: 15%; width: 4px; height: 35px;
  background: linear-gradient(180deg, #8b7355 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: ap-spear 8s ease-in-out infinite;
}
.scn-aeneas-passes .shield2 {
  position: absolute; bottom: 40%; left: 35%; width: 20px; height: 28px;
  background: linear-gradient(135deg, #c0a060 0%, #8a6a2a 100%);
  border-radius: 50%;
  box-shadow: inset -2px -2px 6px rgba(0,0,0,.5);
  transform: rotate(-10deg);
  animation: ap-shield 8s ease-in-out infinite 2s;
}
.scn-aeneas-passes .dust-ap {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30px;
  background: linear-gradient(180deg, rgba(180,140,80,.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: ap-dust 6s ease-in-out infinite;
}
@keyframes ap-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ap-walk { 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 ap-spear { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ap-shield { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ap-dust { 0% { opacity: .3; transform: translateY(0); } 50% { opacity: .6; transform: translateY(-5px); } 100% { opacity: .3; transform: translateY(0); } }

/* ---- scene: hector-passes ---- */
.scn-hector-passes {
  background:
    linear-gradient(180deg, #ff7f50 0%, #ff6347 30%, #daa520 60%, #8b4513 100%),
    radial-gradient(ellipse at 50% 100%, #daa520 40%, transparent 80%);
}
.scn-hector-passes .sky-hp {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffa07a 0%, transparent 100%);
  animation: hp-sky 16s ease-in-out infinite alternate;
}
.scn-hector-passes .ground-hp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 60% 0 0;
}
.scn-hector-passes .hector {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  box-shadow: 0 8px 25px rgba(0,0,0,.6);
  animation: hp-hector 6s ease-in-out infinite;
}
.scn-hector-passes .spear-hp {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #8b7355 0%, #4a3a2a 100%);
  border-radius: 3px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: hp-spear 6s ease-in-out infinite;
}
.scn-hector-passes .shield-hp {
  position: absolute; bottom: 40%; left: 60%; width: 30px; height: 38px;
  background: linear-gradient(135deg, #c0a060 0%, #8a6a2a 100%);
  border-radius: 50%;
  box-shadow: inset -3px -3px 8px rgba(0,0,0,.6);
  transform: rotate(-15deg);
  animation: hp-shield 6s ease-in-out infinite;
}
.scn-hector-passes .cape {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #b03030 0%, #702020 100%);
  border-radius: 0 50% 50% 50% / 0 60% 40% 40%;
  transform-origin: top left;
  animation: hp-cape 4s ease-in-out infinite;
}
.scn-hector-passes .sunburst {
  position: absolute; top: 5%; left: 40%; width: 100px; height: 100px;
  background: radial-gradient(circle, #fff8dc 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px #fff8dc;
  animation: hp-sunburst 12s ease-in-out infinite alternate;
}
.scn-hector-passes .dust-hp {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 20px;
  background: linear-gradient(90deg, transparent, rgba(180,140,80,.4), transparent);
  filter: blur(4px);
  animation: hp-dust 8s ease-in-out infinite;
}
@keyframes hp-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes hp-hector { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-48%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-52%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes hp-spear { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(22deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes hp-shield { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes hp-cape { 0% { transform: rotate(0deg) scaleY(1); } 30% { transform: rotate(10deg) scaleY(1.1); } 60% { transform: rotate(-5deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes hp-sunburst { 0% { opacity: .5; transform: scale(.9); } 100% { opacity: .9; transform: scale(1.1); } }
@keyframes hp-dust { 0% { opacity: .2; transform: translateY(0); } 50% { opacity: .5; transform: translateY(-4px); } 100% { opacity: .2; transform: translateY(0); } }

/* Scene 1: troilus-unarmed-grief – tense and sunlit */
.scn-troilus-unarmed-grief {
  background: linear-gradient(180deg, #f7d9a0 0%, #d4a96a 40%, #b07a4a 100%), radial-gradient(ellipse at 80% 60%, #fff8e0 0%, transparent 70%);
}
.scn-troilus-unarmed-grief .sky-gold {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fce6b0 0%, #f0c880 100%);
  animation: tug-sky 14s ease-in-out infinite alternate;
}
.scn-troilus-unarmed-grief .walls {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(135deg, #c89a5e 0%, #9c6f3c 50%, #7a5328 100%);
  clip-path: polygon(0% 0%, 8% 0%, 8% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: tug-walls 20s ease-in-out infinite;
}
.scn-troilus-unarmed-grief .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8864a 0%, #8a6530 100%);
}
.scn-troilus-unarmed-grief .figure-troilus {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tug-figure 3s ease-in-out infinite;
}
.scn-troilus-unarmed-grief .armor {
  position: absolute; bottom: 28%; left: 32%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #c0a878 0%, #887040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: tug-armor 4s ease-in-out infinite;
}
.scn-troilus-unarmed-grief .helmet {
  position: absolute; bottom: 38%; left: 28%; width: 18px; height: 14px;
  background: radial-gradient(circle at 50% 40%, #dbb880 0%, #8a6a30 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: tug-helmet 5s ease-in-out infinite;
}
.scn-troilus-unarmed-grief .sword {
  position: absolute; bottom: 18%; left: 20%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #a08040 50%, #705020 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: tug-sword 6s ease-in-out infinite;
}
.scn-troilus-unarmed-grief .shadow-tug {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.35) 0%, transparent 100%);
  filter: blur(4px);
  animation: tug-shadow 3s ease-in-out infinite;
}
@keyframes tug-sky { 0%{ opacity:0.8; } 50%{ opacity:1; } 100%{ opacity:0.7; } }
@keyframes tug-walls { 0%{ transform: translateX(0); } 50%{ transform: translateX(-5px); } 100%{ transform: translateX(5px); } }
@keyframes tug-figure { 0%{ transform: translateX(0) translateY(0) rotate(-1deg); } 25%{ transform: translateX(2px) translateY(-1px) rotate(1deg); } 50%{ transform: translateX(-2px) translateY(0) rotate(-1deg); } 75%{ transform: translateX(3px) translateY(-1px) rotate(1deg); } 100%{ transform: translateX(0) translateY(0) rotate(0); } }
@keyframes tug-armor { 0%{ transform: translateX(0) rotate(0); } 50%{ transform: translateX(-8px) rotate(15deg) translateY(-4px); } 100%{ transform: translateX(0) rotate(0); } }
@keyframes tug-helmet { 0%{ transform: translateY(0) rotate(-5deg); } 50%{ transform: translateY(-8px) rotate(10deg); } 100%{ transform: translateY(0) rotate(-5deg); } }
@keyframes tug-sword { 0%{ transform: rotate(-20deg) translateY(0); } 50%{ transform: rotate(-30deg) translateY(4px); } 100%{ transform: rotate(-20deg) translateY(0); } }
@keyframes tug-shadow { 0%{ opacity:0.3; transform: scaleX(1); } 50%{ opacity:0.6; transform: scaleX(1.2); } 100%{ opacity:0.3; transform: scaleX(1); } }

/* Scene 2: troilus-pandar-quarrel – funny, sunlit */
.scn-troilus-pandar-quarrel {
  background: linear-gradient(180deg, #ffe8c0 0%, #f0c880 50%, #d4a060 100%), radial-gradient(ellipse at 40% 30%, #fff4dc 0%, transparent 60%);
}
.scn-troilus-pandar-quarrel .sky-warm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffeec0 0%, #f0d080 100%);
  animation: tpq-sky 18s ease-in-out infinite alternate;
}
.scn-troilus-pandar-quarrel .ground-quarrel {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #c89050 0%, #a06830 100%);
}
.scn-troilus-pandar-quarrel .figure-pandar {
  position: absolute; bottom: 18%; left: 30%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #5c3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpq-pandar 2s ease-in-out infinite;
}
.scn-troilus-pandar-quarrel .figure-other {
  position: absolute; bottom: 18%; left: 55%; width: 28px; height: 66px;
  background: linear-gradient(180deg, #4a3520 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpq-other 2.2s ease-in-out infinite;
}
.scn-troilus-pandar-quarrel .cake {
  position: absolute; bottom: 25%; left: 45%; width: 22px; height: 16px;
  background: linear-gradient(135deg, #f0d090 0%, #d0a060 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: tpq-cake 3s ease-in-out infinite;
}
.scn-troilus-pandar-quarrel .mill-wheel {
  position: absolute; bottom: 30%; right: 18%; width: 30px; height: 30px;
  background: radial-gradient(circle, #b09050 0%, #705030 100%);
  border-radius: 50%;
  clip-path: polygon(50% 0%, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0% 50%, 40% 40%);
  animation: tpq-wheel 8s linear infinite;
}
.scn-troilus-pandar-quarrel .flour-dust {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(255,240,200,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: tpq-flour 5s ease-in-out infinite;
}
@keyframes tpq-sky { 0%{ opacity:0.7; } 50%{ opacity:1; } 100%{ opacity:0.8; } }
@keyframes tpq-pandar { 0%{ transform: translateX(0) translateY(0) rotate(-2deg); } 20%{ transform: translateX(5px) translateY(-2px) rotate(2deg); } 40%{ transform: translateX(-5px) translateY(-1px) rotate(-2deg); } 60%{ transform: translateX(3px) translateY(-3px) rotate(1deg); } 100%{ transform: translateX(0) translateY(0) rotate(0); } }
@keyframes tpq-other { 0%{ transform: translateX(0) translateY(0) rotate(1deg); } 30%{ transform: translateX(-4px) translateY(-1px) rotate(-1deg); } 70%{ transform: translateX(6px) translateY(-2px) rotate(2deg); } 100%{ transform: translateX(0) translateY(0) rotate(0); } }
@keyframes tpq-cake { 0%,100%{ transform: translateY(0) rotate(0); } 50%{ transform: translateY(-6px) rotate(10deg); } }
@keyframes tpq-wheel { 0%{ transform: rotate(0); } 100%{ transform: rotate(360deg); } }
@keyframes tpq-flour { 0%{ opacity:0; transform: translateY(0); } 50%{ opacity:0.5; transform: translateY(-10px); } 100%{ opacity:0; transform: translateY(-20px); } }

/* Scene 3: troilus-impatient-love – tense, interior sunlit */
.scn-troilus-impatient-love {
  background: linear-gradient(180deg, #d4b080 0%, #b08a5a 40%, #80603a 100%), radial-gradient(ellipse at 60% 70%, #fce6b0 0%, transparent 60%);
}
.scn-troilus-impatient-love .wall-interior {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c8a070 0%, #a07848 100%);
  clip-path: polygon(0% 0%, 100% 0%, 84% 100%, 16% 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  animation: til-wall 16s ease-in-out infinite alternate;
}
.scn-troilus-impatient-love .table {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 12px;
  background: linear-gradient(180deg, #906838 0%, #68481a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-troilus-impatient-love .goblet {
  position: absolute; bottom: 32%; left: 45%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #d0a860 0%, #a08040 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: til-goblet 4s ease-in-out infinite;
}
.scn-troilus-impatient-love .figure-troilus-seated {
  position: absolute; bottom: 24%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: til-figure 3.5s ease-in-out infinite;
}
.scn-troilus-impatient-love .vision-cressid {
  position: absolute; bottom: 40%; right: 25%; width: 24px; height: 40px;
  background: radial-gradient(circle, #f0d8a0 0%, rgba(240,216,160,0.3) 70%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(3px);
  box-shadow: 0 0 20px 6px rgba(240,216,160,0.4);
  animation: til-vision 5s ease-in-out infinite;
}
.scn-troilus-impatient-love .candle {
  position: absolute; bottom: 28%; left: 28%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d080 0%, #c09040 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px #f0c040;
  animation: til-candle 3s ease-in-out infinite;
}
.scn-troilus-impatient-love .shadow-til {
  position: absolute; bottom: 20%; left: 32%; width: 40px; height: 14px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.35) 0%, transparent 100%);
  filter: blur(5px);
  animation: til-shadow 4s ease-in-out infinite;
}
@keyframes til-wall { 0%{ opacity:0.85; } 50%{ opacity:1; } 100%{ opacity:0.8; } }
@keyframes til-goblet { 0%,100%{ transform: translateY(0) rotate(0); } 50%{ transform: translateY(-1px) rotate(2deg); } }
@keyframes til-figure { 0%{ transform: translateX(0) translateY(0) rotate(-1deg); } 30%{ transform: translateX(2px) translateY(-1px) rotate(1deg); } 60%{ transform: translateX(-2px) translateY(0) rotate(-1deg); } 100%{ transform: translateX(0) translateY(0) rotate(0); } }
@keyframes til-vision { 0%{ opacity:0.4; transform: scale(0.95); } 50%{ opacity:0.8; transform: scale(1.05); } 100%{ opacity:0.4; transform: scale(0.95); } }
@keyframes til-candle { 0%{ opacity:0.8; transform: scaleX(1); } 50%{ opacity:1; transform: scaleX(1.1) scaleY(1.02); } 100%{ opacity:0.8; transform: scaleX(1); } }
@keyframes til-shadow { 0%{ opacity:0.2; transform: scaleX(1); } 50%{ opacity:0.4; transform: scaleX(1.3); } 100%{ opacity:0.2; transform: scaleX(1); } }

/* Scene 4: item-pandar-sweet-talk – funny, sunlit, outdoor */
.scn-item-pandar-sweet-talk {
  background: linear-gradient(180deg, #ffe8b0 0%, #ecc070 40%, #c89840 100%), radial-gradient(ellipse at 20% 80%, #fff4d0 0%, transparent 70%);
}
.scn-item-pandar-sweet-talk .sky-ips {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fff0c0 0%, #f0d080 100%);
  animation: ips-sky 20s ease-in-out infinite alternate;
}
.scn-item-pandar-sweet-talk .tree-ips {
  position: absolute; bottom: 30%; left: 8%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #6a8a3a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ips-tree 12s ease-in-out infinite;
}
.scn-item-pandar-sweet-talk .figure-pandar-ips {
  position: absolute; bottom: 20%; left: 38%; width: 26px; height: 64px;
  background: linear-gradient(180deg, #5c3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ips-pandar 1.8s ease-in-out infinite;
}
.scn-item-pandar-sweet-talk .figure-cressid-ips {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #4a3520 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ips-cressid 2.5s ease-in-out infinite;
}
.scn-item-pandar-sweet-talk .hair-ips {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(2px);
  animation: ips-hair 4s ease-in-out infinite;
}
.scn-item-pandar-sweet-talk .sparkles-ips {
  position: absolute; bottom: 35%; left: 45%; width: 50px; height: 40px;
  background: radial-gradient(circle at 30% 40%, rgba(255,220,100,0.8) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,220,100,0.6) 0%, transparent 50%);
  filter: blur(2px);
  animation: ips-sparkles 3s ease-in-out infinite;
}
.scn-item-pandar-sweet-talk .ground-ips {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b08848 0%, #8a6830 100%);
}
@keyframes ips-sky { 0%{ opacity:0.75; } 50%{ opacity:1; } 100%{ opacity:0.85; } }
@keyframes ips-tree { 0%{ transform: scaleX(1) translateY(0); } 50%{ transform: scaleX(0.98) translateY(-2px); } 100%{ transform: scaleX(1) translateY(0); } }
@keyframes ips-pandar { 0%{ transform: translateX(0) translateY(0) rotate(-2deg); } 25%{ transform: translateX(4px) translateY(-1px) rotate(3deg); } 50%{ transform: translateX(-2px) translateY(0) rotate(-2deg); } 75%{ transform: translateX(3px) translateY(-1px) rotate(2deg); } 100%{ transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ips-cressid { 0%,100%{ transform: translateX(0) translateY(0) rotate(0); } 50%{ transform: translateX(-3px) translateY(-1px) rotate(-1deg); } }
@keyframes ips-hair { 0%{ transform: rotate(0) translateX(0); } 50%{ transform: rotate(5deg) translateX(2px); } 100%{ transform: rotate(0) translateX(0); } }
@keyframes ips-sparkles { 0%{ opacity:0.3; transform: scale(0.9); } 50%{ opacity:0.8; transform: scale(1.1); } 100%{ opacity:0.3; transform: scale(0.9); } }

/* Scene: thersites-baits-again */
.scn-thersites-baits-again { background: linear-gradient(180deg, #87CEEB 0%, #f0d6a0 40%, #c99b5e 100%), radial-gradient(ellipse at 50% 0%, #fdf5e6 0%, transparent 60%); }
.scn-thersites-baits-again .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffe8c8 0%, #ffdcb0 50%, #f5c48a 100%); animation: tb-sky 12s ease-in-out infinite alternate; }
.scn-thersites-baits-again .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b88a4a 0%, #8a6a2a 100%); border-radius:20% 20% 0 0; animation: tb-ground 20s ease-in-out infinite alternate; }
.scn-thersites-baits-again .tent { position:absolute; bottom:40%; left:15%; width:120px; height:80px; background: linear-gradient(135deg, #d4a363 0%, #b07a42 50%, #8a5e2a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: tb-tent 6s ease-in-out infinite; }
.scn-thersites-baits-again .figure-thersites { position:absolute; bottom:20%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #4a301a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tb-figure-t 2s ease-in-out infinite; }
.scn-thersites-baits-again .figure-ajax { position:absolute; bottom:20%; left:30%; width:32px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: tb-figure-a 4s ease-in-out infinite; }
.scn-thersites-baits-again .speech-shape { position:absolute; bottom:55%; left:50%; width:40px; height:20px; background: rgba(255,240,210,0.7); border-radius: 50% 50% 20% 20%; filter:blur(2px); animation: tb-speech 3s ease-in-out infinite; }
@keyframes tb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tb-ground { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes tb-tent { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tb-figure-t { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 30% { transform: translateX(4px) translateY(-2px) rotate(5deg) } 60% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(12px) translateY(0) rotate(-2deg) } }
@keyframes tb-figure-a { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tb-speech { 0% { transform: scale(0.8); opacity:.3 } 50% { transform: scale(1.3); opacity:.7 } 100% { transform: scale(0.9); opacity:.4 } }

/* Scene: thersites-mocks-all */
.scn-thersites-mocks-all { background: linear-gradient(180deg, #87CEEB 0%, #f5d6b8 40%, #d9a87a 100%), radial-gradient(ellipse at 50% 100%, #f5e0c0 0%, transparent 70%); }
.scn-thersites-mocks-all .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe0b0 0%, #fdd8a0 50%, #ecc090 100%); animation: tm-sky 15s ease-in-out infinite alternate; }
.scn-thersites-mocks-all .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b88040 0%, #8a6020 100%); border-radius:30% 30% 0 0; animation: tm-ground 10s ease-in-out infinite alternate; }
.scn-thersites-mocks-all .barrel { position:absolute; bottom:38%; left:40%; width:30px; height:40px; background: linear-gradient(90deg, #a06838 0%, #7a4a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 -4px 6px rgba(0,0,0,0.2); animation: tm-barrel 3s ease-in-out infinite; }
.scn-thersites-mocks-all .figure-thersites { position:absolute; bottom:42%; left:42%; width:20px; height:44px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tm-figure 1.8s ease-in-out infinite; }
.scn-thersites-mocks-all .crowd-figure { position:absolute; bottom:20%; width:16px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; }
.scn-thersites-mocks-all .crowd-figure.a { left:20%; animation: tm-crowd 3s ease-in-out infinite 0s; }
.scn-thersites-mocks-all .crowd-figure.b { left:28%; animation: tm-crowd 3.5s ease-in-out infinite 0.5s; }
.scn-thersites-mocks-all .crowd-figure.c { left:35%; animation: tm-crowd 2.8s ease-in-out infinite 1s; }
@keyframes tm-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes tm-ground { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes tm-barrel { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tm-figure { 0% { transform: translateY(0) rotate(-5deg) } 30% { transform: translateY(-3px) rotate(5deg) } 60% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes tm-crowd { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* Scene: thersites-departs */
.scn-thersites-departs { background: linear-gradient(180deg, #87CEEB 0%, #f0cca0 40%, #c09450 100%), radial-gradient(ellipse at 50% 0%, #ffebd0 0%, transparent 60%); }
.scn-thersites-departs .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fdd4a0 0%, #f5c488 50%, #e0a860 100%); animation: td-sky 18s ease-in-out infinite alternate; }
.scn-thersites-departs .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b07838 0%, #785018 100%); border-radius:40% 40% 0 0; animation: td-ground 14s ease-in-out infinite alternate; }
.scn-thersites-departs .path { position:absolute; bottom:30%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #c8a060 0%, #a07830 100%); border-radius:50%; transform: translateX(-10%); animation: td-path 25s ease-in-out infinite alternate; }
.scn-thersites-departs .figure-departing { position:absolute; bottom:25%; left:10%; width:20px; height:48px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-depart 5s ease-in-out infinite; }
.scn-thersites-departs .figure-waving { position:absolute; bottom:25%; left:50%; width:18px; height:42px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-wave 3s ease-in-out infinite; }
.scn-thersites-departs .tent-small { position:absolute; bottom:40%; left:55%; width:70px; height:50px; background: linear-gradient(135deg, #c09050 0%, #a07030 50%, #785018 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: td-tent 8s ease-in-out infinite; }
@keyframes td-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes td-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes td-path { 0% { transform: translateX(-10%) scale(1) } 50% { transform: translateX(-8%) scale(1.02) } 100% { transform: translateX(-10%) scale(1) } }
@keyframes td-depart { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(10px) translateY(0) rotate(3deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(2deg) } }
@keyframes td-wave { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(15deg) } 50% { transform: translateY(-1px) rotate(-10deg) } 75% { transform: translateY(-2px) rotate(20deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes td-tent { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* Scene: proclamation-given */
.scn-proclamation-given { background: linear-gradient(180deg, #87CEEB 0%, #f5e0c0 40%, #d4a860 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%); }
.scn-proclamation-given .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffecc8 0%, #ffe0b0 50%, #f5d498 100%); animation: pg-sky 20s ease-in-out infinite alternate; }
.scn-proclamation-given .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c8a060 0%, #a07830 100%); border-radius:30% 30% 0 0; animation: pg-ground 16s ease-in-out infinite alternate; }
.scn-proclamation-given .platform { position:absolute; bottom:35%; left:50%; width:100px; height:24px; transform: translateX(-50%); background: linear-gradient(180deg, #8a6020 0%, #604010 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pg-platform 4s ease-in-out infinite; }
.scn-proclamation-given .figure-herald { position:absolute; bottom:44%; left:50%; width:22px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #4a301a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pg-herald 6s ease-in-out infinite; }
.scn-proclamation-given .scroll { position:absolute; bottom:54%; left:50%; width:40px; height:12px; transform: translateX(-50%); background: linear-gradient(90deg, #f5e0b0 0%, #dcc090 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: pg-scroll 5s ease-in-out infinite; }
.scn-proclamation-given .soldier { position:absolute; bottom:30%; width:18px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; }
.scn-proclamation-given .soldier.a { left:25%; animation: pg-soldier 3s ease-in-out infinite 0s; }
.scn-proclamation-given .soldier.b { left:35%; animation: pg-soldier 3.2s ease-in-out infinite 0.4s; }
.scn-proclamation-given .soldier.c { left:45%; animation: pg-soldier 2.8s ease-in-out infinite 0.8s; }
@keyframes pg-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pg-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pg-platform { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes pg-herald { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes pg-scroll { 0% { transform: translateX(-50%) scaleY(0.8); opacity:0.6 } 50% { transform: translateX(-50%) scaleY(1.2); opacity:1 } 100% { transform: translateX(-50%) scaleY(0.9); opacity:0.8 } }
@keyframes pg-soldier { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-item-hector-hacked-helm {
  background: linear-gradient(180deg, #f7e8c0 0%, #e0c080 40%, #c8a050 100%), radial-gradient(ellipse at 80% 20%, #fff5d0 0%, transparent 60%);
}
.scn-item-hector-hacked-helm .sun-hhm {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc33 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 30px #ffd080;
  animation: hhm-sun 15s ease-in-out infinite alternate;
}
.scn-item-hector-hacked-helm .sky-hhm {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d4e8ff 0%, #f0d8a0 60%, #e0c080 100%);
  opacity: 0.6;
}
.scn-item-hector-hacked-helm .ground-hhm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b8a060 0%, #8a7030 40%, #6a5020 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-item-hector-hacked-helm .tent {
  background: linear-gradient(180deg, #c8a080 0%, #a07850 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-item-hector-hacked-helm .distant-tent-hhm {
  position: absolute; bottom: 48%; left: 15%; width: 80px; height: 100px;
  animation: hhm-tent-drift 20s ease-in-out infinite alternate;
}
.scn-item-hector-hacked-helm .close-tent-hhm {
  position: absolute; bottom: 38%; right: 10%; width: 120px; height: 140px;
  transform: scale(1.2);
  animation: hhm-tent-drift 18s ease-in-out infinite alternate-reverse;
}
.scn-item-hector-hacked-helm .helmet-stand-hhm {
  position: absolute; bottom: 32%; left: 30%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #705030 0%, #402010 100%);
  border-radius: 4px;
}
.scn-item-hector-hacked-helm .helmet-hhm {
  position: absolute; bottom: 50%; left: 26%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #d0b070 0%, #b09050 50%, #a08040 100%);
  border-radius: 40% 60% 20% 80% / 60% 50% 50% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4), 0 4px 12px rgba(0,0,0,0.3);
  animation: hhm-helmet 6s ease-in-out infinite;
}
.scn-item-hector-hacked-helm .figure-hhm {
  position: absolute; bottom: 25%; left: 22%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #604020 0%, #402010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: hhm-figure 4s ease-in-out infinite;
}
.scn-item-hector-hacked-helm .shadow-hhm {
  position: absolute; bottom: 22%; left: 18%; width: 50px; height: 6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: hhm-shadow 4s ease-in-out infinite;
}
@keyframes hhm-sun { 0% { transform: scale(0.95); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.95; } }
@keyframes hhm-tent-drift { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes hhm-helmet { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes hhm-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hhm-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(0.8); opacity: 0.2; } 100% { transform: scaleX(1); opacity: 0.3; } }

.scn-troilus-passes {
  background: linear-gradient(180deg, #ffe8b0 0%, #f0d090 40%, #d0a860 100%), radial-gradient(ellipse at 40% 30%, #fff0d0 0%, transparent 70%);
}
.scn-troilus-passes .sun-trp {
  position: absolute; top: 12%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #ffb030 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #ffc060;
  animation: trp-sun 20s ease-in-out infinite alternate;
}
.scn-troilus-passes .sky-trp {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d0e8f0 0%, #f0d8a0 60%, #e8c080 100%);
  opacity: 0.5;
}
.scn-troilus-passes .ground-trp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b0a060 0%, #908040 40%, #705030 100%);
  border-radius: 20% 80% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-troilus-passes .tent-left-trp {
  position: absolute; bottom: 40%; left: 8%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #b89878 0%, #907060 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.25);
  animation: trp-tent-sway 12s ease-in-out infinite;
}
.scn-troilus-passes .tent-right-trp {
  position: absolute; bottom: 42%; right: 12%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #c0a080 0%, #a08860 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.25);
  animation: trp-tent-sway 14s ease-in-out infinite reverse;
}
.scn-troilus-passes .troilus-trp {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(2deg);
  animation: trp-walk 5s ease-in-out infinite;
}
.scn-troilus-passes .sword-trp {
  position: absolute; bottom: 35%; left: 42%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  animation: trp-sword-swing 5s ease-in-out infinite;
}
.scn-troilus-passes .blood-drip-trp {
  position: absolute; bottom: 34%; left: 43%; width: 4px; height: 12px;
  background: radial-gradient(circle at bottom, #a0461a 0%, transparent 100%);
  border-radius: 50%;
  animation: trp-drip 3s ease-in-out infinite;
}
.scn-troilus-passes .dust-trp {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(180,140,80,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: trp-dust 8s ease-in-out infinite;
}
@keyframes trp-sun { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes trp-tent-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes trp-walk { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(8px) rotate(-1deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes trp-sword-swing { 0% { transform: rotate(20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(20deg); } }
@keyframes trp-drip { 0% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(8px); opacity: 0.8; } 100% { transform: translateY(16px); opacity: 0; } }
@keyframes trp-dust { 0% { transform: translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateX(10px) scale(1.2); opacity: 0.2; } 100% { transform: translateX(20px) scale(1); opacity: 0.4; } }

.scn-pandarus-idolizes-troilus {
  background: linear-gradient(180deg, #ffe0b0 0%, #f0c880 40%, #d0a050 100%), radial-gradient(ellipse at 60% 25%, #fff0d0 0%, transparent 70%);
}
.scn-pandarus-idolizes-troilus .sun-pan {
  position: absolute; top: 6%; left: 50%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffd080 0%, #ffb030 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 30px #ffc060;
  animation: pan-sun 18s ease-in-out infinite alternate;
}
.scn-pandarus-idolizes-troilus .sky-pan {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d8e8f0 0%, #f0d8a0 60%, #e8c080 100%);
  opacity: 0.5;
}
.scn-pandarus-idolizes-troilus .ground-pan {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b8a060 0%, #907040 40%, #705030 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 15px 35px rgba(0,0,0,0.2);
}
.scn-pandarus-idolizes-troilus .troilus-large-pan {
  position: absolute; bottom: 15%; left: 20%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-3deg);
  animation: pan-troilus-glow 12s ease-in-out infinite;
}
.scn-pandarus-idolizes-troilus .pandarus-small-pan {
  position: absolute; bottom: 10%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: pan-pandarus-bow 8s ease-in-out infinite;
}
.scn-pandarus-idolizes-troilus .spear-pan {
  position: absolute; bottom: 40%; left: 32%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: pan-spear 6s ease-in-out infinite;
}
.scn-pandarus-idolizes-troilus .glow-pan {
  position: absolute; top: 20%; left: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,180,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: pan-glow 10s ease-in-out infinite alternate;
}
@keyframes pan-sun { 0% { transform: scale(0.98); opacity: 0.9; } 50% { transform: scale(1.02); opacity: 1; } 100% { transform: scale(0.99); opacity: 0.95; } }
@keyframes pan-troilus-glow { 0% { filter: brightness(1); } 50% { filter: brightness(1.2); } 100% { filter: brightness(1); } }
@keyframes pan-pandarus-bow { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(15deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pan-spear { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-15deg); } }
@keyframes pan-glow { 0% { transform: scale(1); opacity: 0.3; } 100% { transform: scale(1.3); opacity: 0.5; } }

.scn-cressid-witty-retorts {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0a0 40%, #c0a870 100%), radial-gradient(ellipse at 30% 40%, #fff8e0 0%, transparent 70%);
}
.scn-cressid-witty-retorts .sun-cwr {
  position: absolute; top: 10%; left: 80%; width: 45px; height: 45px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 50px 15px #ffd060;
  animation: cwr-sun 14s ease-in-out infinite alternate;
}
.scn-cressid-witty-retorts .sky-cwr {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d8e0f0 0%, #f0e0b0 60%, #e0c880 100%);
  opacity: 0.5;
}
.scn-cressid-witty-retorts .arch-cwr {
  position: absolute; bottom: 30%; left: 50%; width: 200px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a880 0%, #a08060 50%, #806040 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  animation: cwr-arch-sway 16s ease-in-out infinite;
}
.scn-cressid-witty-retorts .cressid-cwr {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #a08060 0%, #704830 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-8deg);
  animation: cwr-cressid-shift 6s ease-in-out infinite;
}
.scn-cressid-witty-retorts .fan-cwr {
  position: absolute; bottom: 28%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #e0c0a0 0%, #c09870 50%, #a08060 100%);
  border-radius: 10% 90% 50% 50% / 20% 80% 20% 80%;
  transform: rotate(30deg);
  animation: cwr-fan-snap 3s ease-in-out infinite;
}
.scn-cressid-witty-retorts .hand-cwr {
  position: absolute; bottom: 24%; left: 36%; width: 8px; height: 12px;
  background: #c09870;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(20deg);
  animation: cwr-hand-wiggle 2s ease-in-out infinite;
}
.scn-cressid-witty-retorts .shadow-cwr {
  position: absolute; bottom: 14%; left: 30%; width: 60px; height: 8px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  animation: cwr-shadow 6s ease-in-out infinite;
}
@keyframes cwr-sun { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes cwr-arch-sway { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes cwr-cressid-shift { 0% { transform: rotate(-8deg) translateX(0); } 25% { transform: rotate(-10deg) translateX(3px); } 50% { transform: rotate(-6deg) translateX(6px); } 75% { transform: rotate(-9deg) translateX(3px); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes cwr-fan-snap { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(40deg) scale(1.1); } 100% { transform: rotate(30deg) scale(1); } }
@keyframes cwr-hand-wiggle { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(20deg); } }
@keyframes cwr-shadow { 0% { transform: scaleX(1); opacity: 0.25; } 50% { transform: scaleX(0.8); opacity: 0.15; } 100% { transform: scaleX(1); opacity: 0.25; } }

/* troilus-resolves-quest */
.scn-troilus-resolves-quest {
  background: linear-gradient(180deg, #4a7a9a 0%, #6a9aba 40%, #d4b87a 100%),
              radial-gradient(ellipse at 70% 20%, #f0d090 0%, transparent 60%);
}
.scn-troilus-resolves-quest .sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a9aba 0%, #a0c8d0 100%); animation: tr-sky 8s ease-in-out infinite alternate;
}
.scn-troilus-resolves-quest .sea {
  position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a6a7a 0%, #1a4a5a 100%); animation: tr-sea 6s ease-in-out infinite alternate;
}
.scn-troilus-resolves-quest .ship-hull {
  position:absolute; bottom:38%; left:45%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: tr-ship 5s ease-in-out infinite alternate;
}
.scn-troilus-resolves-quest .sail-fore {
  position:absolute; bottom:53%; left:50%; width:50px; height:70px; transform:translateX(-30%); background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 12px rgba(200,180,150,.3); animation: tr-sail 4s ease-in-out infinite alternate;
}
.scn-troilus-resolves-quest .sail-aft {
  position:absolute; bottom:50%; left:40%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; box-shadow: 0 0 10px rgba(200,180,150,.3); animation: tr-sail 4s ease-in-out infinite alternate-reverse;
}
.scn-troilus-resolves-quest .figure-troilus {
  position:absolute; bottom:40%; left:52%; width:16px; height:35px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-figure 3s ease-in-out infinite;
}
.scn-troilus-resolves-quest .cloud {
  position:absolute; top:15%; left:20%; width:60px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(200,220,240,.2) 100%); border-radius:50%; filter: blur(5px); animation: tr-cloud 30s linear infinite;
}
.scn-troilus-resolves-quest .wave-1 {
  position:absolute; bottom:45%; left:0; right:0; height:10px; background: linear-gradient(180deg, transparent 0%, #3a8a9a 100%); border-radius:50%; filter: blur(3px); animation: tr-wave 4s ease-in-out infinite;
}
.scn-troilus-resolves-quest .wave-2 {
  position:absolute; bottom:42%; left:0; right:0; height:8px; background: linear-gradient(180deg, transparent 0%, #4a9aaa 100%); border-radius:50%; filter: blur(3px); animation: tr-wave 5s ease-in-out infinite alternate-reverse;
}
@keyframes tr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes tr-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes tr-ship { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-1deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(1deg) } }
@keyframes tr-sail { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(.95) } }
@keyframes tr-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes tr-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(100vw) } }
@keyframes tr-wave { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(1.2) } 100% { transform: translateX(-10px) scaleY(.8) } }

/* cressid-and-alexander */
.scn-cressid-and-alexander {
  background: linear-gradient(180deg, #8ab0c0 0%, #b8d0da 50%, #e8d8b8 100%),
              radial-gradient(ellipse at 60% 10%, #f0e0c0 0%, transparent 70%);
}
.scn-cressid-and-alexander .sky {
  position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #9ac0d0 0%, #d0e4ea 100%); animation: ca-sky 10s ease-in-out infinite alternate;
}
.scn-cressid-and-alexander .hills {
  position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); animation: ca-hills 20s ease-in-out infinite alternate;
}
.scn-cressid-and-alexander .tower {
  position:absolute; bottom:45%; left:50%; width:40px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: ca-tower 12s ease-in-out infinite alternate;
}
.scn-cressid-and-alexander .window {
  position:absolute; bottom:55%; left:50%; width:12px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #f0e0a0 0%, #c0b080 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 4px #c0a060, 0 0 32px 8px rgba(192,160,96,.3); animation: ca-window 6s ease-in-out infinite alternate;
}
.scn-cressid-and-alexander .figure-hecuba {
  position:absolute; bottom:52%; left:48%; width:14px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-fig1 4s ease-in-out infinite;
}
.scn-cressid-and-alexander .figure-helen {
  position:absolute; bottom:52%; left:53%; width:14px; height:30px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-fig2 4s ease-in-out infinite alternate;
}
.scn-cressid-and-alexander .cloud-a {
  position:absolute; top:12%; left:10%; width:70px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(200,220,240,.2) 100%); border-radius:50%; filter: blur(5px); animation: ca-cloud 40s linear infinite;
}
.scn-cressid-and-alexander .cloud-b {
  position:absolute; top:18%; right:15%; width:50px; height:10px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(200,220,240,.15) 100%); border-radius:50%; filter: blur(4px); animation: ca-cloud 50s linear infinite reverse;
}
@keyframes ca-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ca-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ca-tower { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scaleY(1.01) } 100% { transform: translateX(-50%) } }
@keyframes ca-window { 0% { box-shadow: 0 0 12px 3px #c0a060, 0 0 24px 6px rgba(192,160,96,.2); opacity:.85 } 50% { box-shadow: 0 0 24px 8px #e0c080, 0 0 48px 14px rgba(224,192,128,.4); opacity:1 } 100% { box-shadow: 0 0 16px 4px #c0a060, 0 0 32px 8px rgba(192,160,96,.3); opacity:.9 } }
@keyframes ca-fig1 { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ca-fig2 { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes ca-cloud { 0% { transform: translateX(-20px) } 100% { transform: translateX(110vw) } }

/* hector-anger-rumor */
.scn-hector-anger-rumor {
  background: linear-gradient(180deg, #c0a070 0%, #e8d8a0 30%, #d0b880 100%),
              radial-gradient(ellipse at 30% 0%, #f0e0c0 0%, transparent 60%);
}
.scn-hector-anger-rumor .sky {
  position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d0c090 0%, #f0e0c0 100%); animation: ha-sky 12s ease-in-out infinite alternate;
}
.scn-hector-anger-rumor .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 30% 70% 0 0; animation: ha-ground 8s ease-in-out infinite alternate;
}
.scn-hector-anger-rumor .figure-hector {
  position:absolute; bottom:30%; left:35%; width:20px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-fig-h 3s ease-in-out infinite;
}
.scn-hector-anger-rumor .figure-ajax {
  position:absolute; bottom:30%; left:60%; width:22px; height:48px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-fig-a 3.5s ease-in-out infinite alternate;
}
.scn-hector-anger-rumor .spear {
  position:absolute; bottom:45%; left:47%; width:4px; height:50px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20%; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: ha-spear 4s ease-in-out infinite;
}
.scn-hector-anger-rumor .dust-1 {
  position:absolute; bottom:38%; left:30%; width:30px; height:20px; background: radial-gradient(circle, rgba(180,160,120,.4) 0%, transparent 100%); filter: blur(4px); animation: ha-dust 5s ease-in-out infinite alternate;
}
.scn-hector-anger-rumor .dust-2 {
  position:absolute; bottom:40%; left:55%; width:25px; height:15px; background: radial-gradient(circle, rgba(180,160,120,.3) 0%, transparent 100%); filter: blur(3px); animation: ha-dust 6s ease-in-out infinite alternate-reverse;
}
@keyframes ha-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ha-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes ha-fig-h { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ha-fig-a { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes ha-spear { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes ha-dust { 0% { opacity:.2; transform: translateY(0) scale(1) } 50% { opacity:.6; transform: translateY(-5px) scale(1.3) } 100% { opacity:.2; transform: translateY(0) scale(1) } }

/* ajax-contradiction */
.scn-ajax-contradiction {
  background: linear-gradient(180deg, #d0a860 0%, #e8d090 50%, #f0e0b8 100%),
              radial-gradient(ellipse at 80% 60%, #f0e0c0 0%, transparent 60%);
}
.scn-ajax-contradiction .body {
  position:absolute; bottom:35%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: aj-body 3s ease-in-out infinite alternate;
}
.scn-ajax-contradiction .head {
  position:absolute; bottom:70%; left:50%; width:35px; height:35px; transform:translateX(-50%); background: linear-gradient(180deg, #e0b080 0%, #c09060 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: aj-head 2.5s ease-in-out infinite alternate;
}
.scn-ajax-contradiction .left-arm {
  position:absolute; bottom:50%; left:35%; width:25px; height:10px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 40% 40% 30% 30%; transform-origin: right center; animation: aj-arm-l 2s ease-in-out infinite;
}
.scn-ajax-contradiction .right-arm {
  position:absolute; bottom:50%; right:35%; width:25px; height:10px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 40% 40% 30% 30%; transform-origin: left center; animation: aj-arm-r 2.2s ease-in-out infinite alternate;
}
.scn-ajax-contradiction .left-leg {
  position:absolute; bottom:20%; left:44%; width:10px; height:25px; background: linear-gradient(180deg, #8a5020 0%, #5a3010 100%); border-radius: 30% 30% 20% 20%; transform-origin: top center; animation: aj-leg-l 3s ease-in-out infinite;
}
.scn-ajax-contradiction .right-leg {
  position:absolute; bottom:18%; right:44%; width:10px; height:25px; background: linear-gradient(180deg, #8a5020 0%, #5a3010 100%); border-radius: 30% 30% 20% 20%; transform-origin: top center; animation: aj-leg-r 3.2s ease-in-out infinite alternate;
}
.scn-ajax-contradiction .shadow {
  position:absolute; bottom:8%; left:40%; width:80px; height:15px; background: radial-gradient(circle, rgba(0,0,0,.4) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: aj-shadow 4s ease-in-out infinite alternate;
}
.scn-ajax-contradiction .stool {
  position:absolute; bottom:22%; left:46%; width:30px; height:12px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%); border-radius: 30% 30% 10% 10%; transform: translateX(-50%); animation: aj-stool 5s ease-in-out infinite alternate;
}
@keyframes aj-body { 0% { transform: translateX(-50%) scaleX(1) rotate(-2deg) } 50% { transform: translateX(-50%) scaleX(1.05) rotate(2deg) } 100% { transform: translateX(-50%) scaleX(.95) rotate(-2deg) } }
@keyframes aj-head { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes aj-arm-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(0deg) } }
@keyframes aj-arm-r { 0% { transform: rotate(0deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(0deg) } }
@keyframes aj-leg-l { 0% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes aj-leg-r { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes aj-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(.9) } }
@keyframes aj-stool { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(.95) } }

/* pandarus-arrives */
.scn-pandarus-arrives {
  background: linear-gradient(180deg, #f9eac3 0%, #f5d6a8 40%, #d4a76a 100%),
              radial-gradient(ellipse at 70% 20%, rgba(255,230,180,0.6) 0%, transparent 60%);
}
.scn-pandarus-arrives .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #f5e6c0 100%);
  animation: pa-sky 15s ease-in-out infinite alternate;
}
.scn-pandarus-arrives .sun {
  position: absolute; top: 15%; left: 75%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #ffdd66 40%, #ffbb33 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,200,80,0.5);
  animation: pa-sun 20s ease-in-out infinite alternate;
}
.scn-pandarus-arrives .wall {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #c9a96e 0%, #a8854d 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-pandarus-arrives .doorway {
  position: absolute; bottom: 20%; left: 45%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: pa-door 8s ease-in-out infinite alternate;
}
.scn-pandarus-arrives .figure-pa {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-walk 4s ease-in-out infinite;
}
.scn-pandarus-arrives .cloud-pa-a {
  position: absolute; top: 12%; left: 30%; 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(5px);
  animation: pa-drift-a 40s linear infinite;
}
.scn-pandarus-arrives .cloud-pa-b {
  position: absolute; top: 20%; left: 10%; width: 70px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: pa-drift-b 50s linear infinite reverse;
}
@keyframes pa-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pa-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.02) } 100% { transform: translateY(2px) scale(0.98) } }
@keyframes pa-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes pa-walk { 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 pa-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes pa-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* pandarus-praises-troilus */
.scn-pandarus-praises-troilus {
  background: linear-gradient(180deg, #e8d4b0 0%, #d4b88a 40%, #b89464 100%),
              radial-gradient(ellipse at 30% 80%, rgba(255,210,150,0.3) 0%, transparent 70%);
}
.scn-pandarus-praises-troilus .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a8c8e8 0%, #d4c8a0 100%);
  animation: ppt-sky 12s ease-in-out infinite alternate;
}
.scn-pandarus-praises-troilus .ground-ppt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a9a6a 0%, #6a7a4a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: ppt-ground 20s ease-in-out infinite alternate;
}
.scn-pandarus-praises-troilus .figure-pandarus-ppt {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ppt-pandarus-gesture 6s ease-in-out infinite;
}
.scn-pandarus-praises-troilus .figure-troilus-ppt {
  position: absolute; bottom: 18%; left: 55%; width: 24px; height: 72px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ppt-troilus-stand 8s ease-in-out infinite alternate;
}
.scn-pandarus-praises-troilus .column-ppt {
  position: absolute; bottom: 20%; left: 48%; width: 10px; height: 55%;
  background: linear-gradient(180deg, #b09870 0%, #8a7050 100%);
  border-radius: 20%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: ppt-column 10s ease-in-out infinite alternate;
}
.scn-pandarus-praises-troilus .sun-ppt {
  position: absolute; top: 12%; left: 80%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffeecc 0%, #ffcc66 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,200,80,0.4);
  animation: ppt-sun 25s ease-in-out infinite alternate;
}
.scn-pandarus-praises-troilus .cloud-ppt-a {
  position: absolute; top: 20%; 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: ppt-drift-a 35s linear infinite;
}
.scn-pandarus-praises-troilus .cloud-ppt-b {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 14px;
  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: ppt-drift-b 45s linear infinite reverse;
}
@keyframes ppt-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ppt-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ppt-pandarus-gesture { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(5deg) translateY(-1px) } 50% { transform: translateX(-1px) rotate(-3deg) translateY(0) } 75% { transform: translateX(3px) rotate(7deg) translateY(-2px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ppt-troilus-stand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ppt-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes ppt-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.03) } 100% { transform: translateY(2px) scale(0.97) } }
@keyframes ppt-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes ppt-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }

/* cressid-troilus-argument */
.scn-cressid-troilus-argument {
  background: linear-gradient(180deg, #fce4b0 0%, #f0d090 40%, #d4a860 100%),
              radial-gradient(ellipse at 50% 10%, rgba(255,220,150,0.4) 0%, transparent 70%);
}
.scn-cressid-troilus-argument .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0d0f0 0%, #e8d8b0 100%);
  animation: cta-sky 10s ease-in-out infinite alternate;
}
.scn-cressid-troilus-argument .ground-cta {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a9a6a 0%, #6a7a4a 100%);
  border-radius: 40% 40% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.2);
  animation: cta-ground 15s ease-in-out infinite alternate;
}
.scn-cressid-troilus-argument .figure-cressid {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cta-cressid 3s ease-in-out infinite;
}
.scn-cressid-troilus-argument .figure-troilus-cta {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cta-troilus 3.5s ease-in-out infinite;
}
.scn-cressid-troilus-argument .hat-cta {
  position: absolute; bottom: 68%; left: 52%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #c04040 0%, #802020 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: cta-hat 2s ease-in-out infinite alternate;
}
.scn-cressid-troilus-argument .sun-cta {
  position: absolute; top: 10%; left: 50%; width: 55px; height: 55px;
  background: radial-gradient(circle, #ffeecc 0%, #ffdd77 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 70px 30px rgba(255,200,100,0.4);
  animation: cta-sun 18s ease-in-out infinite alternate;
}
.scn-cressid-troilus-argument .cloud-cta-a {
  position: absolute; top: 18%; left: 20%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: cta-drift-a 30s linear infinite;
}
.scn-cressid-troilus-argument .cloud-cta-b {
  position: absolute; top: 25%; left: 70%; width: 65px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: cta-drift-b 40s linear infinite reverse;
}
@keyframes cta-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cta-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes cta-cressid { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(6deg) translateY(-2px) } 50% { transform: translateX(-2px) rotate(-4deg) translateY(0) } 75% { transform: translateX(6px) rotate(8deg) translateY(-3px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cta-troilus { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) rotate(-5deg) translateY(-1px) } 60% { transform: translateX(5px) rotate(4deg) translateY(0) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cta-hat { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes cta-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-6px) scale(1.04) } 100% { transform: translateY(3px) scale(0.96) } }
@keyframes cta-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(140vw) } }
@keyframes cta-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* pandarus-defends-troilus */
.scn-pandarus-defends-troilus {
  background: linear-gradient(180deg, #e8d4b0 0%, #d4b88a 40%, #b89464 100%),
              radial-gradient(ellipse at 60% 30%, rgba(255,210,150,0.3) 0%, transparent 70%);
}
.scn-pandarus-defends-troilus .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a8c8e8 0%, #d4c8a0 100%);
  animation: pdt-sky 14s ease-in-out infinite alternate;
}
.scn-pandarus-defends-troilus .ground-pdt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a9a6a 0%, #6a7a4a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: pdt-ground 18s ease-in-out infinite alternate;
}
.scn-pandarus-defends-troilus .pillar-pdt {
  position: absolute; bottom: 20%; left: 35%; width: 12px; height: 50%;
  background: linear-gradient(180deg, #b09870 0%, #8a7050 100%);
  border-radius: 20%; box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: pdt-pillar 12s ease-in-out infinite alternate;
}
.scn-pandarus-defends-troilus .figure-pandarus-pdt {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pdt-pandarus-point 5s ease-in-out infinite;
}
.scn-pandarus-defends-troilus .figure-cressid-pdt {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pdt-cressid-listen 7s ease-in-out infinite alternate;
}
.scn-pandarus-defends-troilus .sun-pdt {
  position: absolute; top: 15%; left: 75%; width: 55px; height: 55px;
  background: radial-gradient(circle, #ffeecc 0%, #ffcc66 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,200,80,0.4);
  animation: pdt-sun 22s ease-in-out infinite alternate;
}
.scn-pandarus-defends-troilus .ray-pdt {
  position: absolute; top: 15%; left: 75%; width: 100px; height: 200px;
  background: linear-gradient(135deg, rgba(255,220,100,0.15) 0%, transparent 100%);
  transform-origin: top left;
  animation: pdt-ray 8s ease-in-out infinite alternate;
}
.scn-pandarus-defends-troilus .cloud-pdt-a {
  position: absolute; top: 20%; 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: pdt-drift-a 35s linear infinite;
}
.scn-pandarus-defends-troilus .cloud-pdt-b {
  position: absolute; top: 12%; left: 60%; width: 60px; height: 14px;
  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: pdt-drift-b 45s linear infinite reverse;
}
@keyframes pdt-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pdt-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pdt-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes pdt-pandarus-point { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(8deg) translateY(-2px) } 60% { transform: translateX(-1px) rotate(-4deg) translateY(0) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pdt-cressid-listen { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pdt-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(2px) scale(0.98) } }
@keyframes pdt-ray { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(0.9) } }
@keyframes pdt-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes pdt-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }

.scn-item-letter {
  background: linear-gradient(180deg, #2a1a3a 0%, #4a2a4a 30%, #b08050 70%, #d0a060 100%), radial-gradient(ellipse at 50% 20%, #d0a060 0%, transparent 60%);
}
.scn-item-letter .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a2a4a 0%, transparent 100%); animation: it-sky 12s ease-in-out infinite alternate;
}
.scn-item-letter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-item-letter .figure {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: it-figure 6s ease-in-out infinite;
}
.scn-item-letter .letter-a {
  position: absolute; bottom: 45%; left: 42%; width: 30px; height: 20px; background: linear-gradient(135deg, #d0a060 0%, #f0d080 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-10deg); animation: it-let-a 8s ease-in-out infinite;
}
.scn-item-letter .letter-b {
  position: absolute; bottom: 42%; left: 48%; width: 25px; height: 18px; background: linear-gradient(135deg, #d0a060 0%, #f0d080 100%); border-radius: 2px; transform: rotate(15deg); animation: it-let-b 7s ease-in-out infinite 1s;
}
.scn-item-letter .letter-c {
  position: absolute; bottom: 48%; left: 39%; width: 20px; height: 15px; background: linear-gradient(135deg, #d0a060 0%, #f0d080 100%); border-radius: 2px; transform: rotate(5deg); animation: it-let-c 9s ease-in-out infinite 2s;
}
.scn-item-letter .wind {
  position: absolute; top: 30%; left: 10%; width: 120px; height: 20px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.15), transparent); filter: blur(4px); animation: it-wind 20s linear infinite;
}
@keyframes it-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .75; }
}
@keyframes it-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes it-let-a {
  0% { transform: rotate(-10deg) translate(0,0); opacity: 1; }
  50% { transform: rotate(-40deg) translate(30px,-20px); opacity: .5; }
  100% { transform: rotate(-10deg) translate(0,0); opacity: 1; }
}
@keyframes it-let-b {
  0% { transform: rotate(15deg) translate(0,0); opacity: 1; }
  50% { transform: rotate(45deg) translate(-20px,-30px); opacity: .5; }
  100% { transform: rotate(15deg) translate(0,0); opacity: 1; }
}
@keyframes it-let-c {
  0% { transform: rotate(5deg) translate(0,0); opacity: 1; }
  50% { transform: rotate(30deg) translate(15px,-15px); opacity: .4; }
  100% { transform: rotate(5deg) translate(0,0); opacity: 1; }
}
@keyframes it-wind {
  0% { transform: translateX(-120px); }
  50% { transform: translateX(calc(100vw + 120px)); }
  100% { transform: translateX(-120px); }
}

.scn-thersites-commentary {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 80%);
}
.scn-thersites-commentary .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #b0d4f0 0%, transparent 100%); animation: th-sky 15s ease-in-out infinite alternate;
}
.scn-thersites-commentary .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-thersites-commentary .fig-left {
  position: absolute; bottom: 20%; left: 30%; width: 25px; height: 50px; background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-fig1 2s ease-in-out infinite alternate;
}
.scn-thersites-commentary .fig-right {
  position: absolute; bottom: 20%; left: 50%; width: 25px; height: 50px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-fig2 2.5s ease-in-out infinite alternate;
}
.scn-thersites-commentary .sleeve {
  position: absolute; bottom: 35%; left: 50%; width: 12px; height: 18px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 30% 30% 50% 50%; animation: th-sleeve 1.5s ease-in-out infinite;
}
.scn-thersites-commentary .spectator {
  position: absolute; bottom: 15%; left: 10%; width: 18px; height: 35px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-spec 4s ease-in-out infinite;
}
.scn-thersites-commentary .helmet {
  position: absolute; bottom: 38%; left: 28%; width: 16px; height: 12px; background: radial-gradient(circle, #b0c4de 0%, #8a9bb0 70%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: th-helm 2s ease-in-out infinite alternate;
}
@keyframes th-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes th-fig1 { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes th-fig2 { 0% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(-8px) rotate(-5deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes th-sleeve { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(3px,-2px) rotate(20deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes th-spec { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes th-helm { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-4px) scale(1.1); } }

.scn-item-sleeve-fight {
  background: linear-gradient(180deg, #87ceeb 0%, #f4a460 100%), radial-gradient(circle at 30% 70%, #f4a460 0%, transparent 60%);
}
.scn-item-sleeve-fight .sky {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #a0d0f0 0%, transparent 100%); animation: sl-sky 10s ease-in-out infinite alternate;
}
.scn-item-sleeve-fight .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #8b7355 0%, #6b4a30 100%); border-radius: 20% 80% 0 0 / 30% 60% 0 0;
}
.scn-item-sleeve-fight .fig-chaser {
  position: absolute; bottom: 15%; left: 20%; width: 24px; 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: sl-chaser 1.6s ease-in-out infinite alternate;
}
.scn-item-sleeve-fight .fig-chased {
  position: absolute; bottom: 15%; left: 50%; width: 24px; height: 48px; background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sl-chased 1.8s ease-in-out infinite alternate;
}
.scn-item-sleeve-fight .sleeve-grab {
  position: absolute; bottom: 30%; left: 38%; width: 14px; height: 20px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 6px rgba(200,85,61,.5); animation: sl-sleeve 1.5s ease-in-out infinite alternate;
}
.scn-item-sleeve-fight .river {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 10%; background: linear-gradient(90deg, #4a6a8a, #6a9aba, #4a6a8a); background-size: 200% 100%; animation: sl-river 4s linear infinite;
}
.scn-item-sleeve-fight .dust {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 30px; background: radial-gradient(circle, rgba(139,115,85,.6) 0%, transparent 70%); filter: blur(3px); animation: sl-dust 1.5s ease-in-out infinite;
}
@keyframes sl-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes sl-chaser { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(15px) rotate(10deg); } 100% { transform: translateX(0) rotate(-10deg); } }
@keyframes sl-chased { 0% { transform: translateX(0) rotate(10deg); } 50% { transform: translateX(-15px) rotate(-10deg); } 100% { transform: translateX(0) rotate(10deg); } }
@keyframes sl-sleeve { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(2px,-2px) rotate(30deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes sl-river { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 0% 0%; } }
@keyframes sl-dust { 0% { transform: scale(1) translate(0,0); opacity: .6; } 50% { transform: scale(1.5) translate(10px,-5px); opacity: .2; } 100% { transform: scale(1) translate(0,0); opacity: .6; } }

.scn-hector-spares-thersites {
  background: linear-gradient(180deg, #fdf5e6 0%, #f5deb3 50%, #d2b48c 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-hector-spares-thersites .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #fffacd 0%, transparent 100%); animation: he-sky 14s ease-in-out infinite alternate;
}
.scn-hector-spares-thersites .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #8fbc8f 0%, #5c8a5c 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-hector-spares-thersites .hector {
  position: absolute; bottom: 25%; left: 35%; width: 28px; 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: he-hector 6s ease-in-out infinite alternate;
}
.scn-hector-spares-thersites .thersites {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 30px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-thersites 3s ease-in-out infinite;
}
.scn-hector-spares-thersites .spear {
  position: absolute; bottom: 50%; left: 30%; width: 4px; height: 70px; background: linear-gradient(180deg, #5c4033 0%, #8b4513 100%); border-radius: 50%; transform-origin: bottom center; animation: he-spear 8s ease-in-out infinite alternate;
}
.scn-hector-spares-thersites .sun-rays {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 80px; background: radial-gradient(circle, rgba(255,255,224,.8) 0%, transparent 70%); filter: blur(6px); animation: he-sun 10s ease-in-out infinite alternate;
}
@keyframes he-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes he-hector { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes he-thersites { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(.9); } 100% { transform: translateX(0) scale(1); } }
@keyframes he-spear { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes he-sun { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .6; transform: scale(1); } }

.scn-troilus-love-wound {
  background: linear-gradient(180deg, #eed9b0 0%, #d4b87a 40%, #8c6a3a 80%, #5a4020 100%),
              radial-gradient(ellipse at 60% 20%, #f5e6c8 0%, transparent 50%);
}
.scn-troilus-love-wound .figure {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 180px;
  background: linear-gradient(180deg, #d4a373 0%, #b87d4b 40%, #8b5a2b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si-tlw-breathe 4s ease-in-out infinite;
}
.scn-troilus-love-wound .heart-wound {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 32px; height: 32px;
  background: radial-gradient(circle, #ffb07a 0%, #d45a30 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(212,90,48,0.6);
  animation: si-tlw-pulse 2.4s ease-in-out infinite;
}
.scn-troilus-love-wound .eye {
  position: absolute; bottom: 38%; width: 14px; height: 14px;
  background: radial-gradient(circle, #3a2a1a 0%, #1a1008 70%);
  border-radius: 50%;
  animation: si-tlw-scan 5s ease-in-out infinite alternate;
}
.scn-troilus-love-wound .eye.left { left: 42%; }
.scn-troilus-love-wound .eye.right { right: 38%; animation-delay: 0.5s; }
.scn-troilus-love-wound .hair-strand {
  position: absolute; bottom: 80%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: si-tlw-sway 6s ease-in-out infinite;
}
.scn-troilus-love-wound .hair-strand.a { left: 38%; transform: rotate(-10deg); }
.scn-troilus-love-wound .hair-strand.b { right: 38%; transform: rotate(10deg); animation-delay: 2s; }
.scn-troilus-love-wound .hand {
  position: absolute; bottom: 18%; left: 38%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #d4a373 0%, #b87d4b 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-20deg);
  animation: si-tlw-reach 7s ease-in-out infinite;
}
.scn-troilus-love-wound .sun-burst {
  position: absolute; top: 5%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff3d0 0%, #f5d090 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: si-tlw-glow 8s ease-in-out infinite alternate;
}
@keyframes si-tlw-breathe {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes si-tlw-pulse {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 8px rgba(212,90,48,0.6); }
  50% { transform: translateX(-50%) scale(1.2); box-shadow: 0 0 35px 14px rgba(212,90,48,0.8); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 8px rgba(212,90,48,0.6); }
}
@keyframes si-tlw-scan {
  0% { transform: translateX(0); }
  100% { transform: translateX(10px); }
}
@keyframes si-tlw-sway {
  0%,100% { transform: rotate(-10deg); }
  50% { transform: rotate(-14deg); }
}
@keyframes si-tlw-reach {
  0%,100% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-25deg) translateX(5px); }
}
@keyframes si-tlw-glow {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.scn-pandarus-feigns-offense {
  background: linear-gradient(180deg, #ffeab8 0%, #fdd89a 30%, #c9a86c 70%, #8c6a3a 100%),
              radial-gradient(ellipse at 20% 30%, #fff7e0 0%, transparent 60%);
}
.scn-pandarus-feigns-offense .figure {
  position: absolute; bottom: 12%; left: 40%; width: 100px; height: 150px;
  background: linear-gradient(180deg, #d4a373 0%, #b87d4b 40%, #8b5a2b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-pfo-shrug 2s ease-in-out infinite alternate;
}
.scn-pandarus-feigns-offense .cloak {
  position: absolute; bottom: 12%; left: 30%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 70% 70%;
  transform: rotate(15deg);
  animation: si-pfo-flounce 1.5s ease-in-out infinite alternate;
}
.scn-pandarus-feigns-offense .handkerchief {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fffce0 0%, #f0d890 70%);
  border-radius: 10% 40% 30% 50%;
  transform: rotate(30deg);
  animation: si-pfo-drop 3s ease-in-out infinite;
}
.scn-pandarus-feigns-offense .sun {
  position: absolute; top: 8%; right: 15%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff9d0 0%, #ffdd80 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: si-pfo-pulse 4s ease-in-out infinite alternate;
}
.scn-pandarus-feigns-offense .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #b89860 0%, #7a5a30 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-pandarus-feigns-offense .bird {
  position: absolute; top: 20%; left: 30%; width: 24px; height: 18px;
  background: radial-gradient(circle at 40% 50%, #4a3a2a 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(4px);
  animation: si-pfo-bob 1.8s ease-in-out infinite;
}
@keyframes si-pfo-shrug {
  0% { transform: translateX(-50%) scaleY(1); }
  100% { transform: translateX(-50%) scaleY(0.95) rotate(-3deg); }
}
@keyframes si-pfo-flounce {
  0% { transform: rotate(15deg) translateY(0); }
  100% { transform: rotate(20deg) translateY(-5px); }
}
@keyframes si-pfo-drop {
  0%,100% { transform: rotate(30deg) translateY(0); opacity: 1; }
  50% { transform: rotate(20deg) translateY(10px); opacity: 0.7; }
}
@keyframes si-pfo-pulse {
  0% { transform: scale(0.9); opacity: 0.6; }
  100% { transform: scale(1.1); opacity: 1; }
}
@keyframes si-pfo-bob {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-6px) rotate(-5deg); }
}

.scn-pandarus-mock-anger {
  background: linear-gradient(180deg, #ffeab8 0%, #fdd89a 30%, #c9a86c 70%, #8c6a3a 100%),
              radial-gradient(ellipse at 70% 20%, #fff3d0 0%, transparent 50%);
}
.scn-pandarus-mock-anger .figure {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 130px;
  background: #563a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si-pma-stomp 1.6s ease-in-out infinite alternate;
}
.scn-pandarus-mock-anger .angry-eyebrow {
  position: absolute; bottom: 48%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 6px;
  background: #2a1a0a;
  border-radius: 3px;
  animation: si-pma-frown 2.4s ease-in-out infinite alternate;
}
.scn-pandarus-mock-anger .fist {
  position: absolute; bottom: 30%; left: 42%; width: 22px; height: 26px;
  background: #b87d4b;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-30deg);
  animation: si-pma-shake 1.8s ease-in-out infinite;
}
.scn-pandarus-mock-anger .impact-lines {
  position: absolute; bottom: 20%; left: 45%; width: 70px; height: 30px;
  background: radial-gradient(ellipse at 30% 50%, #f0c060 0%, transparent 60%);
  filter: blur(4px);
  animation: si-pma-burst 2s ease-out infinite;
}
.scn-pandarus-mock-anger .shadow {
  position: absolute; bottom: 0; left: 30%; width: 140px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(6px);
  animation: si-pma-pulse 2s ease-in-out infinite;
}
.scn-pandarus-mock-anger .sunlight {
  position: absolute; top: 5%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff9d0 0%, #ffdd80 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: si-pma-flash 3s ease-in-out infinite alternate;
}
@keyframes si-pma-stomp {
  0% { transform: translateX(-50%) translateY(0); }
  100% { transform: translateX(-50%) translateY(-4px); }
}
@keyframes si-pma-frown {
  0% { transform: translateX(-50%) rotate(0); }
  100% { transform: translateX(-50%) rotate(8deg); }
}
@keyframes si-pma-shake {
  0%,100% { transform: rotate(-30deg) translateX(0); }
  50% { transform: rotate(-40deg) translateX(3px); }
}
@keyframes si-pma-burst {
  0% { transform: scale(0.5); opacity: 1; }
  100% { transform: scale(1.5); opacity: 0; }
}
@keyframes si-pma-pulse {
  0%,100% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.2); opacity: 0.4; }
}
@keyframes si-pma-flash {
  0% { opacity: 0.7; filter: blur(8px); }
  100% { opacity: 1; filter: blur(4px); }
}

.scn-troilus-alone-laments {
  background: linear-gradient(180deg, #d4b87a 0%, #b89860 30%, #8c6a3a 70%, #5a4020 100%),
              radial-gradient(ellipse at 30% 80%, #f5e6c8 0%, transparent 50%);
}
.scn-troilus-alone-laments .figure {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 160px;
  background: #4a3018;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si-tal-tremble 1.5s ease-in-out infinite alternate;
}
.scn-troilus-alone-laments .sword {
  position: absolute; bottom: 10%; left: 48%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 1px;
  transform: rotate(25deg);
  animation: si-tal-stab 4s ease-in-out infinite;
}
.scn-troilus-alone-laments .helmet {
  position: absolute; bottom: 45%; left: 42%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #7a5a30 0%, #4a3018 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: si-tal-drop 6s ease-in-out infinite alternate;
}
.scn-troilus-alone-laments .clamour-lines {
  position: absolute; top: 20%; left: 0; right: 0; height: 20px;
  background: repeating-radial-gradient(circle at 10% 50%, #f0c060 0%, transparent 2%);
  filter: blur(2px);
  animation: si-tal-noise 3s ease-in-out infinite;
}
.scn-troilus-alone-laments .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a5020 0%, #3a2a10 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-troilus-alone-laments .sky-blur {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, #ffeab8 0%, transparent 70%);
  filter: blur(12px);
  animation: si-tal-dim 8s ease-in-out infinite alternate;
}
.scn-troilus-alone-laments .teardrop {
  position: absolute; bottom: 20%; left: 55%; width: 8px; height: 12px;
  background: radial-gradient(circle, #b0d0e0 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: si-tal-weep 2.5s ease-in-out infinite;
}
@keyframes si-tal-tremble {
  0% { transform: translateX(-50%) rotate(0); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes si-tal-stab {
  0%,100% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-10px); }
}
@keyframes si-tal-drop {
  0%,100% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(8px); }
}
@keyframes si-tal-noise {
  0%,100% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.7; transform: translateX(-10px); }
}
@keyframes si-tal-dim {
  0% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes si-tal-weep {
  0%,100% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(6px) scale(1.3); opacity: 1; }
}

.scn-ajax-diomedes-troilus-melee {
  background: linear-gradient(180deg, #8BB8E8 0%, #FDE8A0 40%, #E0B060 70%, #6A4E2E 100%),
              radial-gradient(ellipse at 40% 20%, #FFF2C0 0%, transparent 60%);
}
.scn-ajax-diomedes-troilus-melee .sky-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #A0C4F0 0%, #FDE8A0 100%); }
.scn-ajax-diomedes-troilus-melee .sun { position:absolute; top:12%; left:35%; width:60px; height:60px; background: radial-gradient(circle, #FFF5C0 0%, #FFD060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,208,96,0.5); animation: aj-sun-glow 5s ease-in-out infinite alternate; }
.scn-ajax-diomedes-troilus-melee .dust-cloud-a { position:absolute; bottom:35%; left:10%; width:120px; height:40px; background: radial-gradient(ellipse, rgba(200,160,100,0.4) 0%, transparent 80%); filter: blur(8px); animation: aj-dust-drift 25s linear infinite; }
.scn-ajax-diomedes-troilus-melee .dust-cloud-b { position:absolute; bottom:30%; right:5%; width:150px; height:50px; background: radial-gradient(ellipse, rgba(180,140,80,0.3) 0%, transparent 80%); filter: blur(10px); animation: aj-dust-drift 30s linear reverse infinite; }
.scn-ajax-diomedes-troilus-melee .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8B6B3D 0%, #5A3E1F 100%); border-radius: 20% 0 0 0 / 40% 0 0 0; }
.scn-ajax-diomedes-troilus-melee .fig-ajax { position:absolute; bottom:20%; left:25%; width:35px; height:60px; background: linear-gradient(180deg, #2C2C3A 0%, #1A1A2A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: aj-fig-attack 2.4s ease-in-out infinite alternate; }
.scn-ajax-diomedes-troilus-melee .fig-ajax::before { content:''; position:absolute; top:-15px; left:10px; width:25px; height:60px; background: radial-gradient(ellipse, #3A3A4A 0%, transparent 100%); border-radius: 0; transform: rotate(30deg); animation: aj-spear 1.8s ease-in-out infinite alternate; }
.scn-ajax-diomedes-troilus-melee .fig-diomedes { position:absolute; bottom:22%; left:50%; width:32px; height:55px; background: linear-gradient(180deg, #3A3A4A 0%, #1A1A2A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: aj-fig-lunge 2s ease-in-out infinite alternate; }
.scn-ajax-diomedes-troilus-melee .fig-diomedes::before { content:''; position:absolute; top:-8px; left:-20px; width:20px; height:50px; background: linear-gradient(180deg, #4A4A5A 0%, #2A2A3A 100%); border-radius: 0; transform: rotate(-20deg); animation: aj-spear 1.8s ease-in-out infinite alternate-reverse; }
.scn-ajax-diomedes-troilus-melee .fig-troilus { position:absolute; bottom:18%; right:30%; width:30px; height:50px; background: linear-gradient(180deg, #4A3A2A 0%, #2A1A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: aj-fig-block 1.6s ease-in-out infinite alternate; }
.scn-ajax-diomedes-troilus-melee .fig-troilus::before { content:''; position:absolute; top:-10px; left:-15px; width:18px; height:45px; background: #3A3A4A; border-radius: 0; transform: rotate(15deg); animation: aj-shield 2.4s ease-in-out infinite alternate; }
@keyframes aj-sun-glow { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes aj-dust-drift { 0% { transform: translateX(-10vw); } 50% { transform: translateX(40vw) scale(1.2); } 100% { transform: translateX(90vw); } }
@keyframes aj-fig-attack { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-8px) rotate(0deg); } 100% { transform: translateY(3px) rotate(5deg); } }
@keyframes aj-fig-lunge { 0% { transform: translateX(0) rotate(10deg); } 50% { transform: translateX(15px) rotate(-5deg); } 100% { transform: translateX(5px) rotate(10deg); } }
@keyframes aj-fig-block { 0% { transform: scale(1) rotate(-5deg); } 50% { transform: scale(0.9) rotate(0deg); } 100% { transform: scale(1.05) rotate(5deg); } }
@keyframes aj-spear { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(40deg) scaleY(1.1); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes aj-shield { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(-5px); } 100% { transform: rotate(15deg) translateX(0); } }

.scn-hector-cheers-troilus {
  background: linear-gradient(180deg, #FCEABB 0%, #F8B500 50%, #C48A3A 100%),
              radial-gradient(ellipse at 50% 30%, #FFF8D0 0%, transparent 70%);
}
.scn-hector-cheers-troilus .sky-warm { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #FFD7A0 0%, #FCEABB 100%); }
.scn-hector-cheers-troilus .sun-glow { position:absolute; top:8%; left:60%; width:70px; height:70px; background: radial-gradient(circle, #FFF8D0 0%, #FFD060 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,208,96,0.4); animation: he-sun-pulse 8s ease-in-out infinite alternate; }
.scn-hector-cheers-troilus .banner { position:absolute; top:15%; left:30%; width:80px; height:100px; background: linear-gradient(135deg, #C8553D 0%, #A0461A 60%, #7A2E0E 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: he-banner-wave 4s ease-in-out infinite alternate; transform-origin: top left; }
.scn-hector-cheers-troilus .flag-pole { position:absolute; top:5%; left:30%; width:6px; height:150px; background: linear-gradient(180deg, #5A3A1A 0%, #3A2A0A 100%); border-radius: 20%; }
.scn-hector-cheers-troilus .fig-hector { position:absolute; bottom:20%; left:40%; width:35px; height:55px; background: linear-gradient(180deg, #3A4A3A 0%, #1A2A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: he-cheer 2s ease-in-out infinite; }
.scn-hector-cheers-troilus .fig-troilus-cheer { position:absolute; bottom:18%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #4A3A2A 0%, #2A1A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: he-cheer 2s ease-in-out infinite 1s; }
.scn-hector-cheers-troilus .fig-achilles-bg { position:absolute; bottom:15%; right:20%; width:30px; height:50px; background: linear-gradient(180deg, #2A2A3A 0%, #0A0A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scale(0.8); opacity:0.6; animation: he-achilles-approach 10s linear infinite; }
.scn-hector-cheers-troilus .ground-gold { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #C48A3A 0%, #8B6B2E 100%); border-radius: 30% 0 0 0 / 50% 0 0 0; }
@keyframes he-sun-pulse { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.15); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes he-banner-wave { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(-15px) rotate(-8deg); } 75% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes he-cheer { 0% { transform: translateY(0) rotate(-5deg) scale(1); } 25% { transform: translateY(-10px) rotate(0deg) scale(1.1); } 50% { transform: translateY(0) rotate(5deg) scale(1); } 75% { transform: translateY(-5px) rotate(0deg) scale(1.05); } 100% { transform: translateY(0) rotate(-5deg) scale(1); } }
@keyframes he-achilles-approach { 0% { transform: translateX(-20vw) scale(0.6); opacity:0.2; } 50% { transform: translateX(-5vw) scale(0.8); opacity:0.5; } 100% { transform: translateX(0) scale(1); opacity:0.7; } }

.scn-item-sumptuous-armour {
  background: linear-gradient(180deg, #7BA6D0 0%, #E8D4A0 40%, #D0A060 70%, #5A3E1F 100%),
              radial-gradient(ellipse at 50% 30%, #FFE8B0 0%, transparent 60%);
}
.scn-item-sumptuous-armour .sky-bright { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #A0C4F0 0%, #E8D4A0 100%); }
.scn-item-sumptuous-armour .sun-spot { position:absolute; top:15%; left:50%; width:50px; height:50px; background: radial-gradient(circle, #FFF8D0 0%, #FFD060 50%, transparent 80%); border-radius:50%; transform: translateX(-50%); box-shadow: 0 0 100px 50px rgba(255,208,96,0.5); animation: it-sun-spot 6s ease-in-out infinite alternate; }
.scn-item-sumptuous-armour .armour-body { position:absolute; bottom:25%; left:35%; width:80px; height:100px; background: linear-gradient(135deg, #D0A060 0%, #B08040 50%, #8A6020 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 10px 30px rgba(0,0,0,0.4), inset 0 -5px 15px rgba(0,0,0,0.3); transform: rotate(10deg); animation: it-armour-shine 4s ease-in-out infinite; }
.scn-item-sumptuous-armour .armour-shine { position:absolute; bottom:38%; left:40%; width:30px; height:40px; background: radial-gradient(circle, #FFF8E0 0%, transparent 80%); border-radius: 20%; opacity:0.6; animation: it-glint 2s ease-in-out infinite alternate; }
.scn-item-sumptuous-armour .armour-crest { position:absolute; bottom:50%; left:32%; width:20px; height:30px; background: linear-gradient(135deg, #E8C080 0%, #A06020 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 3px 6px rgba(0,0,0,0.5); }
.scn-item-sumptuous-armour .hunter-silhouette { position:absolute; bottom:20%; right:25%; width:40px; height:70px; background: linear-gradient(180deg, #0A0A1A 0%, #1A1A2A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: it-hunt 3s ease-in-out infinite alternate; }
.scn-item-sumptuous-armour .hunter-silhouette::before { content:''; position:absolute; top:-10px; left:~5px; width:20px; height:60px; background: #0A0A1A; border-radius: 0; transform: rotate(-30deg); animation: it-weapon 1.5s ease-in-out infinite alternate; }
.scn-item-sumptuous-armour .ground-blur { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5A3E1F 0%, #3A2A0A 100%); border-radius: 20% 0 0 0 / 40% 0 0 0; filter: blur(3px); }
.scn-item-sumptuous-armour .rock { position:absolute; bottom:22%; left:15%; width:50px; height:30px; background: linear-gradient(180deg, #7A6A5A 0%, #4A3A2A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-10deg); }
@keyframes it-sun-spot { 0% { transform: translateX(-50%) scale(1); opacity:0.8; } 50% { transform: translateX(-30%) scale(1.2); opacity:1; } 100% { transform: translateX(-70%) scale(0.9); opacity:0.7; } }
@keyframes it-armour-shine { 0% { box-shadow: 0 10px 30px rgba(0,0,0,0.4), inset 0 -5px 15px rgba(0,0,0,0.3); } 50% { box-shadow: 0 10px 30px rgba(0,0,0,0.3), inset 0 -5px 15px rgba(0,0,0,0.2), 0 0 40px rgba(255,208,96,0.3); } 100% { box-shadow: 0 10px 30px rgba(0,0,0,0.4), inset 0 -5px 15px rgba(0,0,0,0.3); } }
@keyframes it-glint { 0% { opacity:0.4; transform: scale(0.8); } 50% { opacity:0.8; transform: scale(1.3); } 100% { opacity:0.5; transform: scale(0.9); } }
@keyframes it-hunt { 0% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(-20px) rotate(-10deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes it-weapon { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(-45deg) scaleY(1.2); } 100% { transform: rotate(-30deg) scaleY(1); } }

.scn-achilles-ambush-plan {
  background: linear-gradient(180deg, #1B1B3A 0%, #2A2A5A 30%, #4A3A6E 60%, #1A1A2E 100%),
              radial-gradient(ellipse at 50% 80%, #2A2A5A 0%, transparent 70%);
}
.scn-achilles-ambush-plan .dusk-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2A2A5A 0%, #4A3A6E 50%, #3A2A4E 100%); }
.scn-achilles-ambush-plan .moon { position:absolute; top:15%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #C8D8F0 0%, #A0B8D8 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(160,184,216,0.3), 0 0 100px 40px rgba(100,130,180,0.2); animation: ac-moon-glow 8s ease-in-out infinite alternate; }
.scn-achilles-ambush-plan .torch-glow { position:absolute; bottom:40%; left:45%; width:80px; height:80px; background: radial-gradient(circle, #FFB060 0%, #D08030 40%, transparent 70%); border-radius:50%; animation: ac-torch 3s ease-in-out infinite alternate; }
.scn-achilles-ambush-plan .achilles-silhouette { position:absolute; bottom:25%; left:45%; width:45px; height:70px; background: linear-gradient(180deg, #0A0A1A 0%, #1A1A2A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ac-achilles-command 4s ease-in-out infinite; }
.scn-achilles-ambush-plan .achilles-silhouette::before { content:''; position:absolute; top:-5px; left:20px; width:20px; height:50px; background: #0A0A1A; border-radius: 0; transform: rotate(-40deg); animation: ac-sword-point 2s ease-in-out infinite alternate; }
.scn-achilles-ambush-plan .myrmidon-1 { position:absolute; bottom:20%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scale(0.9); animation: ac-creep 12s linear infinite; }
.scn-achilles-ambush-plan .myrmidon-2 { position:absolute; bottom:25%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scale(0.8); animation: ac-creep 12s linear infinite 4s; }
.scn-achilles-ambush-plan .myrmidon-3 { position:absolute; bottom:22%; left:65%; width:30px; height:50px; background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scale(0.85); animation: ac-creep 12s linear infinite 8s; }
.scn-achilles-ambush-plan .ground-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1A1A2E 0%, #0A0A1A 100%); border-radius: 30% 0 0 0 / 60% 0 0 0; }
@keyframes ac-moon-glow { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.05); opacity:0.9; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes ac-torch { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.7; } }
@keyframes ac-achilles-command { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(5deg); } 50% { transform: translateY(0) rotate(-5deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ac-sword-point { 0% { transform: rotate(-40deg) scaleY(1); } 50% { transform: rotate(-50deg) scaleY(1.1); } 100% { transform: rotate(-40deg) scaleY(1); } }
@keyframes ac-creep { 0% { transform: translateX(0) scale(0.9); opacity:0.3; } 25% { transform: translateX(-15px) scale(1); opacity:0.6; } 50% { transform: translateX(-30px) scale(1.1); opacity:0.9; } 75% { transform: translateX(-15px) scale(1); opacity:0.6; } 100% { transform: translateX(0) scale(0.9); opacity:0.3; } }

/* one block per scene id. Append to style.css. */
/* Scene: nestor-ulysses-agree (calm, sunlit) */
.scn-nestor-ulysses-agree {
  background: linear-gradient(180deg, #fef5e7 0%, #fce4c3 40%, #f5d6a8 100%), radial-gradient(ellipse at 50% 0%, #ffffff66 0%, transparent 60%);
}
.scn-nestor-ulysses-agree .tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0d9b5 0%, #d9b68a 50%, #c9a27c 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: nsa-tent 20s ease-in-out infinite alternate;
}
.scn-nestor-ulysses-agree .tent-fg {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, #e8d3b0 0%, #d1b08a 100%);
  border-radius: 30% 30% 0 0;
  animation: nsa-tent-fg 15s ease-in-out infinite alternate;
}
.scn-nestor-ulysses-agree .bed {
  position: absolute; bottom: 20%; left: 30%; width: 45%; height: 18%;
  background: linear-gradient(180deg, #d4b896 0%, #b89a78 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: nsa-bed 12s ease-in-out infinite;
}
.scn-nestor-ulysses-agree .figure-left {
  position: absolute; bottom: 22%; left: 32%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #c49a7a 0%, #8c6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nsa-fig-l 8s ease-in-out infinite;
}
.scn-nestor-ulysses-agree .figure-right {
  position: absolute; bottom: 22%; right: 32%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #b8895e 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nsa-fig-r 10s ease-in-out infinite reverse;
}
.scn-nestor-ulysses-agree .sunbeam {
  position: absolute; top: 0; left: 60%; width: 20%; height: 100%;
  background: linear-gradient(180deg, #ffffff60 0%, #ffffff20 60%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: nsa-beam 14s ease-in-out infinite alternate;
}
.scn-nestor-ulysses-agree .cup {
  position: absolute; bottom: 26%; left: 46%; width: 4%; height: 6%;
  background: radial-gradient(circle at 50% 20%, #f4d6a0 0%, #d4a868 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  animation: nsa-cup 6s ease-in-out infinite;
}
@keyframes nsa-tent {
  0%   { transform: scaleY(1); }
  50%  { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes nsa-tent-fg {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nsa-bed {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes nsa-fig-l {
  0%   { transform: rotate(-5deg) translateY(0); }
  50%  { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes nsa-fig-r {
  0%   { transform: rotate(3deg) translateY(0); }
  50%  { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes nsa-beam {
  0%   { opacity: 0.4; transform: skewX(-2deg); }
  50%  { opacity: 0.7; transform: skewX(1deg); }
  100% { opacity: 0.4; transform: skewX(-2deg); }
}
@keyframes nsa-cup {
  0%,100% { transform: scaleY(1) rotate(-2deg); }
  50% { transform: scaleY(1.1) rotate(2deg); }
}

/* Scene: ulyss-tells-mockery (tense, sunlit) */
.scn-ulyss-tells-mockery {
  background: linear-gradient(180deg, #fff8e7 0%, #f7e3c6 50%, #e8cba8 100%), radial-gradient(ellipse at 50% 100%, #ffebd0 0%, transparent 70%);
}
.scn-ulyss-tells-mockery .stage {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #d4b896 0%, #b29472 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
  animation: utm-stage 12s ease-in-out infinite alternate;
}
.scn-ulyss-tells-mockery .figure-ulysses {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #c4a07a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: utm-ulysses 4s ease-in-out infinite;
}
.scn-ulyss-tells-mockery .shadow-audience {
  position: absolute; bottom: 10%; right: 15%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: utm-shadow 6s ease-in-out infinite alternate;
}
.scn-ulyss-tells-mockery .spotlight {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, #ffffffee 0%, #ffffff40 50%, transparent 100%);
  clip-path: polygon(50% 0, 100% 100%, 0% 100%);
  animation: utm-spotlight 3s ease-in-out infinite alternate;
}
.scn-ulyss-tells-mockery .dialogue-board {
  position: absolute; bottom: 30%; left: 55%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #e0c8a0 0%, #b89a78 100%);
  border-radius: 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: utm-board 5s ease-in-out infinite;
}
@keyframes utm-stage {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(0); }
}
@keyframes utm-ulysses {
  0%   { transform: rotate(-8deg) translateY(0); }
  25%  { transform: rotate(3deg) translateY(-3px); }
  50%  { transform: rotate(-5deg) translateY(-1px); }
  75%  { transform: rotate(6deg) translateY(-4px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes utm-shadow {
  0%   { transform: scale(1); opacity: 0.7; }
  50%  { transform: scale(0.95) translateX(5px); opacity: 0.9; }
  100% { transform: scale(1); opacity: 0.7; }
}
@keyframes utm-spotlight {
  0%   { opacity: 0.6; transform: translateX(-10px); }
  50%  { opacity: 1; transform: translateX(10px); }
  100% { opacity: 0.6; transform: translateX(-10px); }
}
@keyframes utm-board {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(5deg); }
}

/* Scene: achilles-sport (funny, sunlit) */
.scn-achilles-sport {
  background: linear-gradient(180deg, #fde8c0 0%, #f5d6a8 40%, #ecc494 100%), radial-gradient(ellipse at 50% 0%, #ffffcc 0%, transparent 60%);
}
.scn-achilles-sport .tent-interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f5d6a8 0%, #d9b68a 50%, #c9a27c 100%);
  clip-path: polygon(5% 0, 95% 0, 100% 100%, 0% 100%);
  animation: asp-tent 15s ease-in-out infinite alternate;
}
.scn-achilles-sport .bed {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a07a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: asp-bed 10s ease-in-out infinite;
}
.scn-achilles-sport .figure-achilles {
  position: absolute; bottom: 28%; left: 30%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #c49a7a 0%, #8c6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: asp-achilles 3s ease-in-out infinite;
}
.scn-achilles-sport .figure-patroclus {
  position: absolute; bottom: 28%; right: 30%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #b8895e 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: asp-patroclus 5s ease-in-out infinite reverse;
}
.scn-achilles-sport .fake-beard {
  position: absolute; bottom: 42%; right: 33%; width: 8%; height: 5%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 20% 20%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: asp-beard 2s ease-in-out infinite;
}
.scn-achilles-sport .staff {
  position: absolute; bottom: 30%; left: 45%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%);
  border-radius: 20%;
  transform: rotate(15deg);
  animation: asp-staff 4s ease-in-out infinite alternate;
}
@keyframes asp-tent {
  0%   { transform: scale(1) rotate(0deg); }
  50%  { transform: scale(1.03) rotate(1deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes asp-bed {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
}
@keyframes asp-achilles {
  0%   { transform: rotate(-10deg) translateY(0) scale(1); }
  25%  { transform: rotate(5deg) translateY(-3px) scale(1.05); }
  50%  { transform: rotate(-5deg) translateY(-1px) scale(0.95); }
  75%  { transform: rotate(8deg) translateY(-4px) scale(1.05); }
  100% { transform: rotate(-10deg) translateY(0) scale(1); }
}
@keyframes asp-patroclus {
  0%   { transform: rotate(8deg) translateY(0) scale(1); }
  25%  { transform: rotate(-3deg) translateY(-2px) scale(0.95); }
  50%  { transform: rotate(5deg) translateY(0) scale(1.05); }
  75%  { transform: rotate(-6deg) translateY(-3px) scale(0.95); }
  100% { transform: rotate(8deg) translateY(0) scale(1); }
}
@keyframes asp-beard {
  0%,100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
}
@keyframes asp-staff {
  0%   { transform: rotate(10deg) scaleY(1); }
  50%  { transform: rotate(20deg) scaleY(1.1); }
  100% { transform: rotate(10deg) scaleY(1); }
}

/* Scene: ulyss-mocks-all (tense, sunlit) */
.scn-ulyss-mocks-all {
  background: linear-gradient(180deg, #fff5e0 0%, #f5d6a8 50%, #e8c494 100%), radial-gradient(ellipse at 50% 100%, #f0d0a0 0%, transparent 70%);
}
.scn-ulyss-mocks-all .tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d9b68a 0%, #c09a68 50%, #a87a4a 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: uma-bg 18s ease-in-out infinite alternate;
}
.scn-ulyss-mocks-all .figure-ajax {
  position: absolute; bottom: 20%; left: 15%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: uma-ajax 5s ease-in-out infinite;
}
.scn-ulyss-mocks-all .figure-thersites {
  position: absolute; bottom: 18%; left: 40%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uma-thersites 4s ease-in-out infinite alternate;
}
.scn-ulyss-mocks-all .figure-ulysses {
  position: absolute; bottom: 25%; right: 20%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #c49a7a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uma-ulysses 6s ease-in-out infinite;
}
.scn-ulyss-mocks-all .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #b89a78 0%, #8a6a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: uma-table 8s ease-in-out infinite alternate;
}
.scn-ulyss-mocks-all .wine-cups {
  position: absolute; bottom: 20%; left: 35%; width: 4%; height: 6%;
  background: radial-gradient(circle at 50% 20%, #e0c890 0%, #b89850 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  box-shadow: 0 0 4px rgba(0,0,0,0.2);
  animation: uma-cup 3s ease-in-out infinite;
}
.scn-ulyss-mocks-all .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.3) 100%);
  animation: uma-shadow 10s ease-in-out infinite alternate;
}
@keyframes uma-bg {
  0%   { transform: scaleX(1); }
  50%  { transform: scaleX(1.02) translateX(3px); }
  100% { transform: scaleX(1); }
}
@keyframes uma-ajax {
  0%   { transform: rotate(10deg) translateY(0) scale(1); }
  25%  { transform: rotate(5deg) translateY(-5px) scale(1.05); }
  50%  { transform: rotate(15deg) translateY(-2px) scale(0.95); }
  75%  { transform: rotate(8deg) translateY(-4px) scale(1.02); }
  100% { transform: rotate(10deg) translateY(0) scale(1); }
}
@keyframes uma-thersites {
  0%   { transform: translateX(0) translateY(0) rotate(-2deg); }
  50%  { transform: translateX(8px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes uma-ulysses {
  0%   { transform: rotate(-5deg) translateY(0); }
  50%  { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes uma-table {
  0%   { transform: translateY(0) skewX(0deg); }
  50%  { transform: translateY(-2px) skewX(2deg); }
  100% { transform: translateY(0) skewX(0deg); }
}
@keyframes uma-cup {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  75% { transform: rotate(-8deg); }
}
@keyframes uma-shadow {
  0%   { opacity: 0.3; }
  50%  { opacity: 0.6; }
  100% { opacity: 0.3; }
}

.scn-ulysses-oppose-achilles {
  background:
    linear-gradient(165deg, #f5e6c8 0%, #d4a84b 40%, #b8832a 100%),
    radial-gradient(ellipse at 70% 30%, #fff5e0 0%, transparent 60%);
}
.scn-ulysses-oppose-achilles .tent-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #c49a6c 0%, #8b6914 100%);
  animation: uoa-wall 8s ease-in-out infinite alternate;
}
.scn-ulysses-oppose-achilles .tent-opening {
  position:absolute; top:5%; left:40%; width:20%; height:70%;
  background: linear-gradient(135deg, #e5d6b3 0%, #d4a84b 70%, transparent 100%);
  transform: skewX(-5deg);
  animation: uoa-open 12s ease-in-out infinite;
}
.scn-ulysses-oppose-achilles .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #8b6914 0%, #5a4510 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-ulysses-oppose-achilles .table {
  position:absolute; bottom:20%; left:30%; width:40%; height:5%;
  background: linear-gradient(90deg, #6a5220, #8b6914, #6a5220);
  border-radius: 20% 20% 0 0;
  animation: uoa-bob 7s ease-in-out infinite;
}
.scn-ulysses-oppose-achilles .ware {
  position:absolute; bottom:22%; left:42%; width:8%; height:6%;
  background: radial-gradient(circle, #f5e6c8, #c49a6c, #a67c34);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-ulysses-oppose-achilles .gleam {
  position:absolute; bottom:23%; left:43%; width:4%; height:4%;
  background: radial-gradient(circle, #fff5e0 0%, #f5e6c8 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #f5e6c8, 0 0 40px 12px rgba(245,230,200,.5);
  animation: uoa-gleam 3s ease-in-out infinite alternate;
}
.scn-ulysses-oppose-achilles .figure-ulysses {
  position:absolute; bottom:18%; left:18%; width:10%; height:35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 60%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uoa-figure1 6s ease-in-out infinite;
}
.scn-ulysses-oppose-achilles .figure-agamemnon {
  position:absolute; bottom:18%; right:18%; width:12%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uoa-figure2 6s ease-in-out infinite reverse;
}
.scn-ulysses-oppose-achilles .sun-ray {
  position:absolute; top:10%; left:45%; width:10%; height:80%;
  background: linear-gradient(180deg, rgba(255,245,224,.3), transparent 60%);
  transform: rotate(-15deg);
  filter: blur(4px);
  animation: uoa-ray 9s ease-in-out infinite alternate;
}
@keyframes uoa-wall { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes uoa-open { 0% { transform: skewX(-5deg) } 50% { transform: skewX(-8deg) } 100% { transform: skewX(-5deg) } }
@keyframes uoa-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes uoa-gleam { 0% { box-shadow: 0 0 20px 6px #f5e6c8, 0 0 40px 12px rgba(245,230,200,.5); opacity:.8 } 50% { box-shadow: 0 0 35px 12px #fff, 0 0 70px 24px rgba(255,255,255,.4); opacity:1 } 100% { box-shadow: 0 0 20px 6px #f5e6c8, 0 0 40px 12px rgba(245,230,200,.5); opacity:.85 } }
@keyframes uoa-figure1 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes uoa-figure2 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes uoa-ray { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-ulysses-ajax-scheme {
  background:
    linear-gradient(180deg, #f0d9a0 0%, #d4a84b 30%, #a67c34 60%, #6a5220 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 50%);
}
.scn-ulysses-ajax-scheme .sky-heat {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #fce4b0 0%, #f0d9a0 100%);
  animation: uas-heat 4s infinite alternate;
}
.scn-ulysses-ajax-scheme .sun-disk {
  position:absolute; top:8%; left:42%; width:16%; height:16%;
  background: radial-gradient(circle, #fff5e0 0%, #f0d060 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px #f0d060;
  animation: uas-sun 10s ease-in-out infinite;
}
.scn-ulysses-ajax-scheme .dune-back {
  position:absolute; bottom:35%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #d4a84b 0%, #a67c34 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-ulysses-ajax-scheme .dune-front {
  position:absolute; bottom:15%; left:-10%; right:-10%; height:30%;
  background: linear-gradient(180deg, #c49a6c 0%, #8b6914 100%);
  border-radius: 40% 60% 0 0 / 70% 30% 0 0;
  animation: uas-dune 20s ease-in-out infinite alternate;
}
.scn-ulysses-ajax-scheme .urn {
  position:absolute; bottom:25%; left:38%; width:12%; height:18%;
  background: linear-gradient(90deg, #6a5220, #8b6914, #6a5220);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: uas-urn 7s ease-in-out infinite;
}
.scn-ulysses-ajax-scheme .lot-ticket {
  position:absolute; bottom:32%; left:40%; width:8%; height:6%;
  background: #f5e6c8;
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: uas-ticket 12s ease-in-out infinite;
}
.scn-ulysses-ajax-scheme .figure-ulysses {
  position:absolute; bottom:15%; left:22%; width:8%; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0808 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uas-figure1 5s ease-in-out infinite;
}
.scn-ulysses-ajax-scheme .figure-ajax {
  position:absolute; bottom:12%; right:22%; width:14%; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #0a0808 50%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(1.2);
  animation: uas-figure2 5s ease-in-out infinite alternate;
}
.scn-ulysses-ajax-scheme .heat-shimmer {
  position:absolute; top:20%; left:10%; width:80%; height:30%;
  background: linear-gradient(180deg, transparent 0%, rgba(255,245,224,.15) 50%, transparent 100%);
  filter: blur(6px);
  animation: uas-shimmer 3s ease-in-out infinite;
}
@keyframes uas-heat { 0% { opacity:.7 } 100% { opacity:1 } }
@keyframes uas-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.08) } }
@keyframes uas-dune { 0% { transform: translateX(0) } 100% { transform: translateX(20px) } }
@keyframes uas-urn { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes uas-ticket { 0% { opacity:0; transform: translateY(10px) } 25% { opacity:1; transform: translateY(0) } 75% { opacity:1 } 100% { opacity:0; transform: translateY(10px) } }
@keyframes uas-figure1 { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(2deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes uas-figure2 { 0% { transform: scaleX(1.2) rotate(0deg) } 50% { transform: scaleX(1.15) rotate(3deg) } 100% { transform: scaleX(1.2) rotate(-2deg) } }
@keyframes uas-shimmer { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(5px) } 100% { opacity:.3; transform: translateY(0) } }

.scn-ulysses-concludes-scheme {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #d4a84b 40%, #a67c34 100%),
    radial-gradient(ellipse at 60% 50%, #fff5e0 0%, transparent 60%);
}
.scn-ulysses-concludes-scheme .path {
  position:absolute; bottom:20%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #8b6914 0%, #5a4510 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: ucs-path 10s ease-in-out infinite alternate;
}
.scn-ulysses-concludes-scheme .sky-sunlight {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #fff5e0 0%, #f0d9a0 50%, #d4a84b 100%);
  animation: ucs-sky 8s ease-in-out infinite alternate;
}
.scn-ulysses-concludes-scheme .sun-beam {
  position:absolute; top:5%; left:45%; width:15%; height:80%;
  background: linear-gradient(180deg, rgba(255,245,224,.4) 0%, transparent 80%);
  transform: rotate(-10deg);
  filter: blur(5px);
  animation: ucs-beam 6s ease-in-out infinite;
}
.scn-ulysses-concludes-scheme .tent-left {
  position:absolute; bottom:15%; left:5%; width:20%; height:70%;
  background: linear-gradient(180deg, #c49a6c 0%, #8b6914 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: ucs-tent-l 20s ease-in-out infinite alternate;
}
.scn-ulysses-concludes-scheme .tent-right {
  position:absolute; bottom:15%; right:5%; width:20%; height:70%;
  background: linear-gradient(180deg, #c49a6c 0%, #8b6914 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 20% 100%);
  animation: ucs-tent-r 20s ease-in-out infinite alternate-reverse;
}
.scn-ulysses-concludes-scheme .figure-ulysses {
  position:absolute; bottom:18%; left:35%; width:10%; height:35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0808 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ucs-figure1 8s ease-in-out infinite;
}
.scn-ulysses-concludes-scheme .figure-agamemnon {
  position:absolute; bottom:18%; right:35%; width:11%; height:38%;
  background: linear-gradient(180deg, #3a2a1a 0%, #0a0808 50%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ucs-figure2 8s ease-in-out infinite reverse;
}
.scn-ulysses-concludes-scheme .shadow-long {
  position:absolute; bottom:15%; left:30%; width:35%; height:5%;
  background: linear-gradient(90deg, rgba(0,0,0,.2), rgba(0,0,0,.05) 60%, transparent);
  filter: blur(3px);
  animation: ucs-shadow 12s ease-in-out infinite;
}
@keyframes ucs-path { 0% { transform: scaleY(1) } 100% { transform: scaleY(.95) } }
@keyframes ucs-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ucs-beam { 0%,100% { opacity:.3 } 50% { opacity:.6 } }
@keyframes ucs-tent-l { 0% { transform: translateX(0) } 100% { transform: translateX(-10px) } }
@keyframes ucs-tent-r { 0% { transform: translateX(0) } 100% { transform: translateX(10px) } }
@keyframes ucs-figure1 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ucs-figure2 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ucs-shadow { 0% { opacity:.5; transform: translateX(0) } 50% { opacity:.8; transform: translateX(5px) } 100% { opacity:.5; transform: translateX(0) } }

.scn-ajax-beats-thersites {
  background:
    linear-gradient(160deg, #f5d6a0 0%, #d4a84b 40%, #a67c34 80%),
    radial-gradient(ellipse at 30% 40%, #fff5e0 0%, transparent 50%);
}
.scn-ajax-beats-thersites .ground-dust {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #8b6914 0%, #5a4510 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-ajax-beats-thersites .sun-back {
  position:absolute; top:10%; left:50%; width:20%; height:20%;
  background: radial-gradient(circle, #fff5e0 0%, #f0d060 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 100px 50px #f0d060;
  transform: translateX(-50%);
  animation: abt-sun 6s ease-in-out infinite alternate;
}
.scn-ajax-beats-thersites .shadow-ajax {
  position:absolute; bottom:20%; left:25%; width:30%; height:10%;
  background: linear-gradient(90deg, rgba(0,0,0,.4), transparent);
  border-radius: 50%;
  filter: blur(5px);
  animation: abt-shadow 1.6s ease-in-out infinite alternate;
}
.scn-ajax-beats-thersites .figure-ajax {
  position:absolute; bottom:18%; left:30%; width:14%; height:42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #0a0808 50%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: abt-ajax 1.6s ease-in-out infinite;
}
.scn-ajax-beats-thersites .arm-ajax {
  position:absolute; bottom:40%; left:38%; width:20%; height:6%;
  background: linear-gradient(90deg, #2a1a0a, #0a0808);
  border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%;
  transform-origin: left center;
  animation: abt-arm 1.6s ease-in-out infinite alternate;
}
.scn-ajax-beats-thersites .fist {
  position:absolute; bottom:40%; left:55%; width:5%; height:5%;
  background: radial-gradient(circle, #2a1a0a, #0a0808);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.4);
  animation: abt-fist 1.6s ease-in-out infinite alternate;
}
.scn-ajax-beats-thersites .figure-thersites {
  position:absolute; bottom:12%; right:22%; width:10%; height:30%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0808 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: abt-thersites 1.6s ease-in-out infinite;
}
.scn-ajax-beats-thersites .dust-puff {
  position:absolute; bottom:15%; left:35%; width:10%; height:10%;
  background: radial-gradient(circle, rgba(139,105,20,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: abt-dust 1.6s ease-in-out infinite alternate;
}
.scn-ajax-beats-thersites .impact-line {
  position:absolute; bottom:38%; left:50%; width:15%; height:2%;
  background: linear-gradient(90deg, transparent, rgba(200,85,61,.6), transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: abt-impact 1.6s ease-in-out infinite alternate;
}
@keyframes abt-sun { 0% { transform: translateX(-50%) scale(1) } 100% { transform: translateX(-50%) scale(1.05) } }
@keyframes abt-shadow { 0% { transform: scaleX(1); opacity:.5 } 100% { transform: scaleX(1.1); opacity:.7 } }
@keyframes abt-ajax { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes abt-arm { 0% { transform: rotate(0deg) } 100% { transform: rotate(30deg) } }
@keyframes abt-fist { 0% { transform: translate(0,0) } 100% { transform: translate(10px,-5px) } }
@keyframes abt-thersites { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes abt-dust { 0% { opacity:.5; transform: scale(1) } 100% { opacity:1; transform: scale(1.5) } }
@keyframes abt-impact { 0% { opacity:0 } 100% { opacity:1 } }

/* scene 1: ulysses-troilus-converse */
.scn-ulysses-troilus-converse {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 60%, #6a5a3a 0%, transparent 70%);
}
.scn-ulysses-troilus-converse .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.6);
}
.scn-ulysses-troilus-converse .tent {
  position: absolute;
  bottom: 30%; left: 20%; width: 60%; height: 55%;
  background: linear-gradient(135deg, #5a3a2a 0%, #2a1a1a 100%);
  clip-path: polygon(0% 100%, 12% 10%, 50% 0%, 88% 10%, 100% 100%);
  box-shadow: 0 0 30px 10px rgba(120,80,30,.3);
  animation: ut-tent 5s ease-in-out infinite;
}
.scn-ulysses-troilus-converse .fire-glow {
  position: absolute;
  bottom: 30%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, #c08040 0%, #8a6020 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ut-fire-glow 3s ease-in-out infinite alternate;
}
.scn-ulysses-troilus-converse .fire-core {
  position: absolute;
  bottom: 28%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #ffd060 0%, #b08030 100%);
  border-radius: 40% 40% 60% 60%;
  filter: blur(2px);
  animation: ut-fire-core 2s ease-in-out infinite alternate;
}
.scn-ulysses-troilus-converse .figure-left {
  position: absolute;
  bottom: 30%; left: 30%; 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: ut-figure-left 4s ease-in-out infinite;
}
.scn-ulysses-troilus-converse .figure-right {
  position: absolute;
  bottom: 30%; left: 55%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ut-figure-right 4.5s ease-in-out infinite;
}
@keyframes ut-tent {
  0% { transform: translateY(0) skewX(0); }
  50% { transform: translateY(-3px) skewX(1deg); }
  100% { transform: translateY(0) skewX(0); }
}
@keyframes ut-fire-glow {
  0% { opacity: .8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
  100% { opacity: .85; transform: scale(0.98); }
}
@keyframes ut-fire-core {
  0% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.12) rotate(3deg); }
  100% { transform: scaleY(0.95) rotate(-2deg); }
}
@keyframes ut-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-1px) translateY(0) rotate(-1deg); }
}
@keyframes ut-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(-4px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(1px) translateY(0) rotate(1deg); }
}

/* scene 2: achilles-tent-night */
.scn-achilles-tent-night {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 30%, #4a3a2a 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 60% 50%, #5a4a3a 0%, transparent 70%);
}
.scn-achilles-tent-night .tent-wall {
  position: absolute;
  inset: 10% 5% 20% 5%;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 20px rgba(60,30,10,.5);
  animation: at-tent-wall 4s ease-in-out infinite;
}
.scn-achilles-tent-night .table {
  position: absolute;
  bottom: 20%; left: 15%; width: 70%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
.scn-achilles-tent-night .goblet {
  position: absolute;
  bottom: 28%; left: 40%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #b08040 0%, #8a6020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 12px 2px #c08040;
  animation: at-goblet 2s ease-in-out infinite;
}
.scn-achilles-tent-night .wine-spill {
  position: absolute;
  bottom: 22%; left: 38%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, #8a2020 0%, #4a1010 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: at-wine-spill 3s ease-in-out infinite alternate;
}
.scn-achilles-tent-night .figure-achilles {
  position: absolute;
  bottom: 20%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-figure-achilles 2.5s ease-in-out infinite;
}
.scn-achilles-tent-night .figure-patroclus {
  position: absolute;
  bottom: 20%; left: 35%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-figure-patroclus 2.8s ease-in-out infinite;
}
.scn-achilles-tent-night .figure-thersites {
  position: absolute;
  bottom: 20%; left: 60%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-figure-thersites 2s ease-in-out infinite;
}
@keyframes at-tent-wall { 0% { opacity:.9; } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(0,0,0,.8); } 100% { opacity:.92; } }
@keyframes at-goblet { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes at-wine-spill { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.3); } 100% { opacity:.5; transform: scaleX(.9); } }
@keyframes at-figure-achilles { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes at-figure-patroclus { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes at-figure-thersites { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(8px) translateY(-3px); } 100% { transform: translateX(-4px) translateY(0); } }

/* scene 3: item-hecuba-letter */
.scn-item-hecuba-letter {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #5a4a3a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 70%, #7a6a4a 0%, transparent 70%);
}
.scn-item-hecuba-letter .desk-bg {
  position: absolute;
  bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-item-hecuba-letter .figure-reader {
  position: absolute;
  bottom: 20%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hl-figure-reader 3s ease-in-out infinite;
}
.scn-item-hecuba-letter .letter {
  position: absolute;
  bottom: 35%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 5% 5% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: hl-letter 4s ease-in-out infinite;
}
.scn-item-hecuba-letter .quail {
  position: absolute;
  bottom: 15%; left: 55%; width: 20px; height: 18px;
  background: radial-gradient(circle at 30% 30%, #c8a060 0%, #8a6a30 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.3);
  animation: hl-quail 2.5s ease-in-out infinite;
}
.scn-item-hecuba-letter .candle {
  position: absolute;
  bottom: 25%; left: 70%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 6px #c08040;
  animation: hl-candle 3s ease-in-out infinite alternate;
}
.scn-item-hecuba-letter .inkpot {
  position: absolute;
  bottom: 22%; left: 50%; width: 14px; height: 12px;
  background: radial-gradient(circle, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 6px rgba(0,0,0,.6);
  animation: hl-inkpot 6s ease-in-out infinite;
}
.scn-item-hecuba-letter .shadow {
  position: absolute;
  bottom: 10%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: hl-shadow 4s ease-in-out infinite;
}
@keyframes hl-figure-reader { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes hl-letter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes hl-quail { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes hl-candle { 0% { transform: scaleY(1) rotate(0); opacity:.9; } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(-1deg); opacity:.85; } }
@keyframes hl-inkpot { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes hl-shadow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.4; } }

/* scene 4: achilles-tent-banquet */
.scn-achilles-tent-banquet {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #5a3a2a 20%, #6a4a3a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 40%, #8a6a4a 0%, transparent 70%);
}
.scn-achilles-tent-banquet .backdrop {
  position: absolute;
  inset: 5% 5% 15% 5%;
  background: linear-gradient(135deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-achilles-tent-banquet .table {
  position: absolute;
  bottom: 15%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 -6px 12px rgba(0,0,0,.5);
}
.scn-achilles-tent-banquet .torches {
  position: absolute;
  bottom: 40%; left: 30%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 20%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.4);
  animation: ab-torches 3s ease-in-out infinite alternate;
}
.scn-achilles-tent-banquet .figure-hector {
  position: absolute;
  bottom: 15%; left: 20%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-figure-hector 4s ease-in-out infinite;
}
.scn-achilles-tent-banquet .figure-achilles {
  position: absolute;
  bottom: 15%; left: 40%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-figure-achilles 4.5s ease-in-out infinite;
}
.scn-achilles-tent-banquet .figure-group {
  position: absolute;
  bottom: 15%; left: 55%; width: 15px; 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: ab-figure-group 3.5s ease-in-out infinite;
}
.scn-achilles-tent-banquet .welcome-hand {
  position: absolute;
  bottom: 30%; left: 28%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: left center;
  animation: ab-welcome-hand 2s ease-in-out infinite;
}
@keyframes ab-torches { 0% { transform: scaleY(1) rotate(0); opacity:.8; } 50% { transform: scaleY(1.12) rotate(3deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(-2deg); opacity:.85; } }
@keyframes ab-figure-hector { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ab-figure-achilles { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes ab-figure-group { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ab-welcome-hand { 0% { transform: rotate(-10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-5deg); } }

/* hector-waste-of-war */
.scn-hector-waste-of-war {
  background: 
    linear-gradient(180deg, #f5d6a8 0%, #c9a06a 40%, #8b6f4f 100%),
    radial-gradient(ellipse at 50% 80%, #f5d6a8 0%, transparent 60%);
}
.scn-hector-waste-of-war .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #f5d6a8 100%); animation: hww-sky 10s ease-in-out infinite alternate; }
.scn-hector-waste-of-war .sun { position: absolute; bottom: 45%; left: 70%; width: 50px; height: 50px; background: radial-gradient(circle, #ffe680 0%, #d4a030 60%, transparent 100%); border-radius: 50%; animation: hww-sun 6s ease-in-out infinite alternate; }
.scn-hector-waste-of-war .hills { position: absolute; bottom: 30%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #7a5d3a 0%, #4a3520 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: hww-hills 14s ease-in-out infinite alternate; }
.scn-hector-waste-of-war .figure { position: absolute; bottom: 25%; left: 30%; width: 22px; height: 60px; background: linear-gradient(180deg, #3e2a1a 0%, #1e140d 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hww-figure 2s ease-in-out infinite; }
.scn-hector-waste-of-war .spear { position: absolute; bottom: 30%; left: calc(30% + 18px); width: 3px; height: 80px; background: linear-gradient(180deg, #c9a06a 0%, #8b6f4f 100%); transform: rotate(-10deg); transform-origin: bottom; animation: hww-spear 1.5s ease-in-out infinite; }
.scn-hector-waste-of-war .helmet { position: absolute; bottom: 24%; left: 45%; width: 30px; height: 18px; background: radial-gradient(ellipse, #8b6f4f 0%, #4a3520 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 3px 6px rgba(0,0,0,0.4); animation: hww-helmet 4s ease-in-out infinite; }
.scn-hector-waste-of-war .cloud-a { position: absolute; top: 15%; left: 10%; width: 90px; height: 20px; background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(8px); animation: hww-drift 40s linear infinite; }
.scn-hector-waste-of-war .cloud-b { position: absolute; top: 25%; right: 5%; width: 70px; height: 15px; background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(6px); animation: hww-drift 30s linear infinite reverse; }
@keyframes hww-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hww-sun { 0% { transform: scale(1); opacity: 0.9 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(0.98); opacity: 0.85 } }
@keyframes hww-hills { 0% { transform: translateY(0px) } 50% { transform: translateY(4px) } 100% { transform: translateY(-2px) } }
@keyframes hww-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hww-spear { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-8deg) } }
@keyframes hww-helmet { 0% { transform: translateY(0px) rotate(0deg) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0px) rotate(0deg) } }
@keyframes hww-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* paris-defends-his-choice */
.scn-paris-defends-his-choice {
  background: 
    linear-gradient(180deg, #c9a06a 0%, #8b6f4f 40%, #4a3520 100%),
    radial-gradient(ellipse at 50% 30%, #f5d6a8 0%, transparent 60%);
}
.scn-paris-defends-his-choice .back-wall { position: absolute; inset: 0; background: linear-gradient(90deg, #4a3520 0%, #6a4f30 50%, #4a3520 100%); animation: pdc-wall 8s ease-in-out infinite alternate; }
.scn-paris-defends-his-choice .window { position: absolute; top: 20%; left: 20%; width: 100px; height: 130px; background: linear-gradient(180deg, #f5d6a8 0%, #e3c28a 100%); border: 6px solid #3e2a1a; border-radius: 4px; box-shadow: inset 0 0 30px #ffe680; animation: pdc-window 6s ease-in-out infinite alternate; }
.scn-paris-defends-his-choice .light-beam { position: absolute; top: 35%; left: 30%; width: 200px; height: 40px; background: linear-gradient(90deg, rgba(255,230,128,0.3) 0%, transparent 100%); transform: rotate(-20deg); filter: blur(10px); animation: pdc-light 5s ease-in-out infinite; }
.scn-paris-defends-his-choice .figure { position: absolute; bottom: 30%; left: 35%; width: 24px; height: 70px; background: linear-gradient(180deg, #1e140d 0%, #0d0906 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pdc-figure 3s ease-in-out infinite; }
.scn-paris-defends-his-choice .wreath { position: absolute; bottom: 68%; left: calc(35% + 2px); width: 20px; height: 12px; background: radial-gradient(ellipse, #7a5d3a 0%, #4a3520 100%); border-radius: 50%; opacity: 0.8; animation: pdc-wreath 4s ease-in-out infinite; }
.scn-paris-defends-his-choice .chair { position: absolute; bottom: 22%; left: 50%; width: 30px; height: 40px; background: linear-gradient(180deg, #6a4f30 0%, #3e2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: pdc-chair 7s ease-in-out infinite; }
.scn-paris-defends-his-choice .shadow-fig { position: absolute; bottom: 28%; left: 60%; width: 18px; height: 50px; background: linear-gradient(180deg, #0d0906 0%, #000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; opacity: 0.6; animation: pdc-shadow 2.5s ease-in-out infinite; }
@keyframes pdc-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pdc-window { 0% { box-shadow: inset 0 0 20px #ffe680 } 50% { box-shadow: inset 0 0 50px #ffe680 } 100% { box-shadow: inset 0 0 30px #ffe680 } }
@keyframes pdc-light { 0% { opacity: 0.3; transform: rotate(-18deg) } 50% { opacity: 0.6; transform: rotate(-22deg) } 100% { opacity: 0.4; transform: rotate(-18deg) } }
@keyframes pdc-figure { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(-2deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes pdc-wreath { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes pdc-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pdc-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }

/* paris-account-of-war */
.scn-paris-account-of-war {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f5d6a8 40%, #c9a06a 100%),
    radial-gradient(ellipse at 50% 70%, #f5d6a8 0%, transparent 60%);
}
.scn-paris-account-of-war .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b0d4f0 0%, #f5d6a8 100%); animation: paw-sky 10s ease-in-out infinite alternate; }
.scn-paris-account-of-war .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a5a4a 0%, #1a3a2a 100%); animation: paw-sea 5s ease-in-out infinite; }
.scn-paris-account-of-war .ship-hull { position: absolute; bottom: 30%; left: 30%; width: 120px; height: 30px; background: linear-gradient(180deg, #6a4f30 0%, #4a3520 100%); border-radius: 0 80% 0 0 / 0 100% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: paw-ship 3s ease-in-out infinite; }
.scn-paris-account-of-war .sail-fore { position: absolute; bottom: 50%; left: 35%; width: 40px; height: 70px; background: linear-gradient(135deg, #f0e8d0 0%, #d4c8a8 100%); clip-path: polygon(0 100%, 50% 0, 100% 100%); transform-origin: bottom center; animation: paw-sail 3s ease-in-out infinite; }
.scn-paris-account-of-war .sail-aft { position: absolute; bottom: 50%; left: 45%; width: 30px; height: 55px; background: linear-gradient(135deg, #f0e8d0 0%, #d4c8a8 100%); clip-path: polygon(0 100%, 50% 0, 100% 100%); transform-origin: bottom center; animation: paw-sail 3s ease-in-out infinite reverse; }
.scn-paris-account-of-war .wave-1 { position: absolute; bottom: 20%; left: 0; width: 200%; height: 20px; background: linear-gradient(90deg, transparent 0%, #3a7a5a 20%, transparent 40%, #3a7a5a 60%, transparent 80%, #3a7a5a 100%); border-radius: 50%; animation: paw-wave 6s linear infinite; }
.scn-paris-account-of-war .wave-2 { position: absolute; bottom: 15%; left: 0; width: 200%; height: 15px; background: linear-gradient(90deg, transparent 0%, #2a5a4a 30%, transparent 60%, #2a5a4a 90%, transparent 100%); border-radius: 50%; animation: paw-wave 8s linear infinite reverse; }
.scn-paris-account-of-war .cliff { position: absolute; right: 5%; bottom: 30%; width: 50px; height: 100px; background: linear-gradient(90deg, #4a3520 0%, #3e2a1a 100%); border-radius: 40% 40% 0 0; box-shadow: -10px 0 20px rgba(0,0,0,0.4); animation: paw-cliff 12s ease-in-out infinite alternate; }
@keyframes paw-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes paw-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes paw-ship { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes paw-sail { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(5deg) scale(1.02) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes paw-wave { 0% { transform: translateX(0) } 100% { transform: translateX(-50%) } }
@keyframes paw-cliff { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }

/* paris-challenges-council */
.scn-paris-challenges-council {
  background: 
    linear-gradient(180deg, #8b6f4f 0%, #5a4028 50%, #3e2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #f5d6a8 0%, transparent 60%);
}
.scn-paris-challenges-council .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #6a4f30 0%, #4a3520 100%); animation: pcc-floor 8s ease-in-out infinite; }
.scn-paris-challenges-council .wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #5a4028 0%, #3e2a1a 100%); }
.scn-paris-challenges-council .sunbeam { position: absolute; top: 10%; left: 10%; width: 8px; height: 200px; background: linear-gradient(180deg, rgba(255,230,128,0.4) 0%, transparent 100%); transform: rotate(-15deg); filter: blur(4px); animation: pcc-beam 7s ease-in-out infinite alternate; }
.scn-paris-challenges-council .figure { position: absolute; bottom: 20%; left: 45%; width: 22px; height: 55px; background: linear-gradient(180deg, #1e140d 0%, #0d0906 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pcc-figure 3s ease-in-out infinite; }
.scn-paris-challenges-council .crowd-left { position: absolute; bottom: 18%; left: 10%; width: 80px; height: 50px; background: radial-gradient(ellipse, #1e140d 20%, transparent 80%); filter: blur(2px); animation: pcc-crowd 4s ease-in-out infinite; }
.scn-paris-challenges-council .crowd-right { position: absolute; bottom: 18%; right: 10%; width: 80px; height: 50px; background: radial-gradient(ellipse, #1e140d 20%, transparent 80%); filter: blur(2px); animation: pcc-crowd 4s ease-in-out infinite reverse; }
.scn-paris-challenges-council .column-l { position: absolute; top: 5%; left: 5%; width: 12px; height: 70%; background: linear-gradient(180deg, #8b6f4f 0%, #5a4028 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.5); animation: pcc-column 6s ease-in-out infinite; }
.scn-paris-challenges-council .column-r { position: absolute; top: 5%; right: 5%; width: 12px; height: 70%; background: linear-gradient(180deg, #8b6f4f 0%, #5a4028 100%); border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,0.5); animation: pcc-column 6s ease-in-out infinite reverse; }
@keyframes pcc-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pcc-beam { 0% { opacity: 0.3; transform: rotate(-12deg) } 50% { opacity: 0.6; transform: rotate(-18deg) } 100% { opacity: 0.4; transform: rotate(-12deg) } }
@keyframes pcc-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes pcc-crowd { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes pcc-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }

/* thersites-rails-ajax */
.scn-thersites-rails-ajax {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 50%, #FFD700 100%), radial-gradient(ellipse at 20% 30%, #FFF8DC 0%, transparent 60%);
}
.scn-thersites-rails-ajax .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(135,206,235,0.6) 0%, transparent 100%);
  animation: tr1-sky 20s ease-in-out infinite alternate;
}
.scn-thersites-rails-ajax .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: tr1-ground 9s ease-in-out infinite;
}
.scn-thersites-rails-ajax .figure-thersites {
  position: absolute; bottom: 34%; left: 22%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 50%, #8B4513 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tr1-thersites 3s ease-in-out infinite;
}
.scn-thersites-rails-ajax .figure-ajax {
  position: absolute; bottom: 32%; right: 20%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #CD853F 0%, #8B5A2B 50%, #5C4033 100%);
  border-radius: 45% 45% 20% 20% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: tr1-ajax 4s ease-in-out infinite;
}
.scn-thersites-rails-ajax .horse {
  position: absolute; bottom: 36%; left: 44%; width: 60px; height: 40px;
  background: #A0522D;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: tr1-horse 6s ease-in-out infinite;
}
.scn-thersites-rails-ajax .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 15px;
  background: rgba(255,255,255,0.6); border-radius: 50%;
  filter: blur(6px);
  animation: tr1-drift-a 40s linear infinite;
}
.scn-thersites-rails-ajax .cloud-b {
  position: absolute; top: 18%; right: 8%; width: 60px; height: 12px;
  background: rgba(255,255,255,0.4); border-radius: 50%;
  filter: blur(5px);
  animation: tr1-drift-b 50s linear infinite reverse;
}
.scn-thersites-rails-ajax .dust {
  position: absolute; bottom: 40%; left: 30%; width: 4px; height: 4px;
  background: #D2B48C; border-radius: 50%;
  animation: tr1-dust 5s ease-in-out infinite;
  box-shadow: 10px -5px 0 #D2B48C, -8px -8px 0 #C4A882, 15px 0 0 #B8976A;
}
@keyframes tr1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tr1-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes tr1-thersites { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes tr1-ajax { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes tr1-horse { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-2px) } }
@keyframes tr1-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(110vw) } }
@keyframes tr1-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-90vw) } }
@keyframes tr1-dust { 0%,100% { transform: translate(0,0) scale(0.8); opacity:0.6 } 50% { transform: translate(8px,-12px) scale(1.2); opacity:0.2 } }

/* thersites-continues-rail */
.scn-thersites-continues-rail {
  background: linear-gradient(180deg, #B0C4DE 0%, #F0E68C 40%, #FFD700 100%), radial-gradient(ellipse at 70% 10%, #FFF8DC 0%, transparent 50%);
}
.scn-thersites-continues-rail .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEFA 0%, transparent 100%);
  animation: tr2-sky 15s ease-in-out infinite alternate;
}
.scn-thersites-continues-rail .sun {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #FFD700;
  animation: tr2-sun 12s ease-in-out infinite;
}
.scn-thersites-continues-rail .tent {
  position: absolute; bottom: 28%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #DEB887 0%, #B8860B 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: tr2-tent 8s ease-in-out infinite;
}
.scn-thersites-continues-rail .figure-thersites {
  position: absolute; bottom: 32%; left: 35%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #D2B48C 0%, #8B4513 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tr2-thersites 3s ease-in-out infinite;
}
.scn-thersites-continues-rail .figure-ajax {
  position: absolute; bottom: 30%; right: 20%; width: 50px; height: 85px;
  background: linear-gradient(180deg, #CD853F 0%, #5C4033 100%);
  border-radius: 45% 45% 20% 20% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: tr2-ajax 4.5s ease-in-out infinite;
}
.scn-thersites-continues-rail .scroll {
  position: absolute; bottom: 34%; left: 45%; width: 20px; height: 8px;
  background: #F5DEB3; border-radius: 20% 20% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: tr2-scroll 7s ease-in-out infinite;
}
.scn-thersites-continues-rail .cloud-a {
  position: absolute; top: 10%; left: 5%; width: 70px; height: 10px;
  background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(5px);
  animation: tr2-drift-a 35s linear infinite;
}
.scn-thersites-continues-rail .cloud-b {
  position: absolute; top: 20%; right: 5%; width: 50px; height: 8px;
  background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(4px);
  animation: tr2-drift-b 45s linear infinite reverse;
}
@keyframes tr2-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tr2-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes tr2-tent { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tr2-thersites { 0%,100% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes tr2-ajax { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-1deg) } }
@keyframes tr2-scroll { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(5deg) } }
@keyframes tr2-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(100vw) } }
@keyframes tr2-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-80vw) } }

/* thersites-insults-ajax */
.scn-thersites-insults-ajax {
  background: linear-gradient(180deg, #B0C4DE 0%, #F0E68C 50%, #FFD700 100%), radial-gradient(ellipse at 50% 20%, #FFF8DC 0%, transparent 60%);
}
.scn-thersites-insults-ajax .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87CEFA 0%, transparent 100%);
  animation: tr3-sky 18s ease-in-out infinite alternate;
}
.scn-thersites-insults-ajax .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 40% 60% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
  animation: tr3-ground 10s ease-in-out infinite;
}
.scn-thersites-insults-ajax .figure-ajax-big {
  position: absolute; bottom: 25%; left: 55%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #CD853F 0%, #5C4033 80%);
  border-radius: 40% 40% 15% 15% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  clip-path: polygon(10% 0%, 90% 0%, 100% 80%, 50% 100%, 0% 80%);
  animation: tr3-ajax-big 5s ease-in-out infinite;
}
.scn-thersites-insults-ajax .figure-thersites-small {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #D2B48C 0%, #8B4513 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tr3-thersites 3s ease-in-out infinite;
}
.scn-thersites-insults-ajax .bush {
  position: absolute; bottom: 28%; left: 10%; width: 40px; height: 30px;
  background: #228B22;
  border-radius: 50% 50% 30% 30%;
  box-shadow: 20px 0 0 #2E8B57, -10px -5px 0 #006400;
  animation: tr3-bush 12s ease-in-out infinite;
}
.scn-thersites-insults-ajax .cloud-a {
  position: absolute; top: 8%; left: 10%; width: 90px; height: 12px;
  background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(6px);
  animation: tr3-drift-a 35s linear infinite;
}
.scn-thersites-insults-ajax .cloud-b {
  position: absolute; top: 20%; right: 5%; width: 60px; height: 10px;
  background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(5px);
  animation: tr3-drift-b 45s linear infinite reverse;
}
@keyframes tr3-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tr3-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tr3-ajax-big { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(1deg) } }
@keyframes tr3-thersites { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } }
@keyframes tr3-bush { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes tr3-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes tr3-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-90vw) } }

/* achilles-stops-fight */
.scn-achilles-stops-fight {
  background: linear-gradient(180deg, #FFD700 0%, #FF8C00 40%, #FF6347 100%), radial-gradient(ellipse at 30% 20%, #FFF8DC 0%, transparent 50%);
}
.scn-achilles-stops-fight .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #FFD700 100%);
  animation: ac1-sky 20s ease-in-out infinite alternate;
}
.scn-achilles-stops-fight .sun {
  position: absolute; top: 10%; left: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #FFD700;
  animation: ac1-sun 15s ease-in-out infinite;
}
.scn-achilles-stops-fight .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8B4513 0%, #556B2F 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 12px 25px rgba(0,0,0,0.5);
  animation: ac1-ground 12s ease-in-out infinite;
}
.scn-achilles-stops-fight .figure-achilles {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 50%, #8B4513 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: ac1-achilles 6s ease-in-out infinite;
}
.scn-achilles-stops-fight .figure-ajax {
  position: absolute; bottom: 28%; left: 30%; width: 45px; height: 95px;
  background: linear-gradient(180deg, #CD853F 0%, #5C4033 100%);
  border-radius: 45% 45% 20% 20% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: ac1-ajax 5s ease-in-out infinite;
}
.scn-achilles-stops-fight .figure-thersites {
  position: absolute; bottom: 32%; right: 28%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #D2B48C 0%, #8B4513 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ac1-thersites 4s ease-in-out infinite;
}
.scn-achilles-stops-fight .cloud {
  position: absolute; top: 15%; right: 10%; width: 70px; height: 10px;
  background: rgba(255,255,255,0.4); border-radius: 50%;
  filter: blur(5px);
  animation: ac1-cloud 40s linear infinite;
}
@keyframes ac1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ac1-sun { 0%,100% { transform: scale(0.9) } 50% { transform: scale(1.1) } }
@keyframes ac1-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ac1-achilles { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes ac1-ajax { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes ac1-thersites { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes ac1-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* Scene: ajax-and-thersites (tense, sunlit) */
.scn-ajax-and-thersites {
  background: linear-gradient(180deg, #87ceeb 0%, #f4d03f 50%, #c8a951 100%), radial-gradient(ellipse at 50% 100%, #e0b85a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-ajax-and-thersites .tent-roof {
  position: absolute; top: 0; left: 20%; width: 60%; height: 45%;
  background: linear-gradient(135deg, #d4a55a 0%, #b8863a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: ajt-roof 6s ease-in-out infinite alternate;
}
.scn-ajax-and-thersites .tent-wall {
  position: absolute; top: 30%; left: 25%; width: 50%; height: 50%;
  background: linear-gradient(90deg, #c8964a 0%, #a67c3a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  border-radius: 4px;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-ajax-and-thersites .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a6e3a 0%, #3a4a2a 100%);
  border-radius: 40% 40% 0% 0% / 20% 20% 0% 0%;
  animation: ajt-ground 12s ease-in-out infinite;
}
.scn-ajax-and-thersites .figure-left {
  position: absolute; bottom: 22%; left: 30%; width: 20px; 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: ajt-figure-left 2s ease-in-out infinite;
}
.scn-ajax-and-thersites .figure-right {
  position: absolute; bottom: 22%; right: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ajt-figure-right 2.6s ease-in-out infinite reverse;
}
.scn-ajax-and-thersites .torch {
  position: absolute; bottom: 35%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(0deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-10deg);
  animation: ajt-torch 1.5s ease-in-out infinite alternate;
}
.scn-ajax-and-thersites .torch-glow {
  position: absolute; bottom: 38%; left: 46%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd060 0%, #e0a020 40%, transparent 70%);
  border-radius: 50%;
  animation: ajt-glow 1.5s ease-in-out infinite alternate;
}
.scn-ajax-and-thersites .dust.motes-a {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(255, 255, 200, 0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: ajt-dust 8s linear infinite;
}
.scn-ajax-and-thersites .dust.motes-b {
  position: absolute; top: 35%; left: 70%; width: 3px; height: 3px;
  background: rgba(255, 255, 200, 0.4);
  border-radius: 50%;
  filter: blur(1.5px);
  animation: ajt-dust 10s linear infinite reverse;
}
@keyframes ajt-roof {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes ajt-ground {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.9; transform: translateY(1px); }
}
@keyframes ajt-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(-3px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes ajt-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  30% { transform: translateX(4px) translateY(-2px) rotate(-1deg); }
  60% { transform: translateX(-2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes ajt-torch {
  0% { transform: rotate(-12deg); opacity: 0.9; }
  50% { transform: rotate(-8deg); opacity: 1; }
  100% { transform: rotate(-10deg); opacity: 0.8; }
}
@keyframes ajt-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes ajt-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 1; }
  80% { opacity: 0.5; }
  100% { transform: translate(100px, -50px) scale(1.5); opacity: 0; }
}

/* Scene: brain-versus-brawn (tense, sunlit) */
.scn-brain-versus-brawn {
  background: linear-gradient(180deg, #f8d56c 0%, #e0b85a 40%, #c8a040 100%), radial-gradient(ellipse at 50% 100%, #e0b85a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-brain-versus-brawn .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #ffea80 0%, #f4c840 100%);
  animation: brb-sky 10s ease-in-out infinite alternate;
}
.scn-brain-versus-brawn .wall {
  position: absolute; bottom: 25%; left: 55%; width: 40%; height: 60%;
  background: linear-gradient(90deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0% 0% / 30% 30% 0% 0%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  transform: skewX(-5deg);
  animation: brb-wall 8s ease-in-out infinite;
}
.scn-brain-versus-brawn .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 20% 20% 0% 0% / 10% 10% 0% 0%;
  animation: brb-ground 12s ease-in-out infinite;
}
.scn-brain-versus-brawn .ram {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 12%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 50% 10% 10% 50% / 30% 20% 20% 30%;
  transform: rotate(-2deg);
  animation: brb-ram 4s ease-in-out infinite alternate;
}
.scn-brain-versus-brawn .figure-brain {
  position: absolute; bottom: 20%; left: 15%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: brb-figure-brain 3s ease-in-out infinite;
}
.scn-brain-versus-brawn .figure-brawn {
  position: absolute; bottom: 20%; right: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: brb-figure-brawn 2.5s ease-in-out infinite reverse;
}
.scn-brain-versus-brawn .sunrays {
  position: absolute; top: 8%; left: 30%; width: 120px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,200,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: brb-sunrays 6s ease-in-out infinite alternate;
}
.scn-brain-versus-brawn .dust {
  position: absolute; top: 40%; left: 10%; width: 5px; height: 5px;
  background: rgba(240,220,150,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: brb-dust 15s linear infinite;
}
@keyframes brb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes brb-wall {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-5deg) translateY(-4px); }
  100% { transform: skewX(-5deg) translateY(2px); }
}
@keyframes brb-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes brb-ram {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(5px); }
  100% { transform: rotate(-2deg) translateX(2px); }
}
@keyframes brb-figure-brain {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  30% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); }
  60% { transform: translateX(2px) translateY(-1px) rotate(0); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes brb-figure-brawn {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes brb-sunrays {
  0% { opacity: 0.3; transform: scale(0.8) rotate(0deg); }
  50% { opacity: 0.6; transform: scale(1.1) rotate(3deg); }
  100% { opacity: 0.4; transform: scale(0.9) rotate(-2deg); }
}
@keyframes brb-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 0.8; }
  80% { opacity: 0.3; }
  100% { transform: translate(80px, -60px) scale(2); opacity: 0; }
}

/* Scene: aeneas-at-camp (calm, sunlit) */
.scn-aeneas-at-camp {
  background: linear-gradient(180deg, #a0d8ef 0%, #cfe7f5 30%, #f5e6c8 100%), radial-gradient(ellipse at 50% 100%, #f5e6c8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-aeneas-at-camp .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #b0e0f0 0%, #e0f0f8 100%);
  animation: aec-sky 15s ease-in-out infinite alternate;
}
.scn-aeneas-at-camp .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%);
  border-radius: 40% 20% 0% 0% / 20% 10% 0% 0%;
  animation: aec-ground 20s ease-in-out infinite;
}
.scn-aeneas-at-camp .tent {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(135deg, #e0c890 0%, #c8a868 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: aec-tent 12s ease-in-out infinite alternate;
}
.scn-aeneas-at-camp .tent-flap {
  position: absolute; bottom: 30%; left: 38%; width: 24%; height: 30%;
  background: linear-gradient(90deg, #d4b070 0%, #b89050 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  border-radius: 0% 0% 20% 20%;
  animation: aec-flap 8s ease-in-out infinite;
}
.scn-aeneas-at-camp .figure-aeneas {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aec-figure-aeneas 5s ease-in-out infinite;
}
.scn-aeneas-at-camp .figure-guard {
  position: absolute; bottom: 24%; left: 25%; width: 22px; 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: aec-figure-guard 6s ease-in-out infinite reverse;
}
.scn-aeneas-at-camp .cloud {
  position: absolute; top: 12%; right: 20%; width: 80px; height: 20px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: aec-cloud 40s linear infinite;
}
.scn-aeneas-at-camp .sun {
  position: absolute; top: 8%; left: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff5c0 0%, #ffe680 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,230,128,0.4);
  animation: aec-sun 8s ease-in-out infinite alternate;
}
@keyframes aec-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes aec-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(1px); }
}
@keyframes aec-tent {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes aec-flap {
  0% { transform: perspective(300px) rotateX(0deg); }
  50% { transform: perspective(300px) rotateX(5deg); }
  100% { transform: perspective(300px) rotateX(-2deg); }
}
@keyframes aec-figure-aeneas {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(15px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0); }
}
@keyframes aec-figure-guard {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(-5px) translateY(-1px) rotate(1deg); }
  60% { transform: translateX(-10px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(-15px) translateY(0) rotate(0); }
}
@keyframes aec-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes aec-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: aeneas-asks-agamemnon (calm, sunlit) */
.scn-aeneas-asks-agamemnon {
  background: linear-gradient(180deg, #b8d8ef 0%, #d8e8f5 30%, #f0d8a0 100%), radial-gradient(ellipse at 50% 100%, #f0d8a0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-aeneas-asks-agamemnon .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c0e0f0 0%, #e0f0f8 100%);
  animation: aaa-sky 18s ease-in-out infinite alternate;
}
.scn-aeneas-asks-agamemnon .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%);
  border-radius: 30% 40% 0% 0% / 15% 20% 0% 0%;
  animation: aaa-ground 22s ease-in-out infinite;
}
.scn-aeneas-asks-agamemnon .tent-main {
  position: absolute; bottom: 28%; left: 40%; width: 120px; height: 100px;
  background: linear-gradient(135deg, #d4b070 0%, #b89050 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 0 10px 25px rgba(0,0,0,0.25);
  animation: aaa-tent-main 14s ease-in-out infinite alternate;
}
.scn-aeneas-asks-agamemnon .tent-small-1 {
  position: absolute; bottom: 32%; left: 20%; width: 70px; height: 60px;
  background: linear-gradient(135deg, #c8a868 0%, #a08040 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 0 5px 15px rgba(0,0,0,0.2);
  animation: aaa-tent-small 10s ease-in-out infinite;
}
.scn-aeneas-asks-agamemnon .tent-small-2 {
  position: absolute; bottom: 30%; left: 65%; width: 60px; height: 55px;
  background: linear-gradient(135deg, #c0a060 0%, #a08040 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 0 5px 15px rgba(0,0,0,0.2);
  animation: aaa-tent-small 12s ease-in-out infinite reverse;
}
.scn-aeneas-asks-agamemnon .figure-aeneas {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aaa-figure-aeneas 6s ease-in-out infinite;
}
.scn-aeneas-asks-agamemnon .figure-agamemnon {
  position: absolute; bottom: 24%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aaa-figure-agamemnon 7s ease-in-out infinite reverse;
}
.scn-aeneas-asks-agamemnon .sun {
  position: absolute; top: 6%; right: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff5c0 0%, #ffe680 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(255,230,128,0.4);
  animation: aaa-sun 9s ease-in-out infinite alternate;
}
.scn-aeneas-asks-agamemnon .dust {
  position: absolute; top: 45%; left: 30%; width: 4px; height: 4px;
  background: rgba(240,220,150,0.5);
  border-radius: 50%;
  filter: blur(2px);
  animation: aaa-dust 20s linear infinite;
}
@keyframes aaa-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes aaa-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes aaa-tent-main {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.03); }
  100% { transform: translateY(2px) scaleY(0.97); }
}
@keyframes aaa-tent-small {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes aaa-figure-aeneas {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(6px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(12px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(18px) translateY(0) rotate(0); }
}
@keyframes aaa-figure-agamemnon {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(-4px) translateY(-1px) rotate(1deg); }
  60% { transform: translateX(-8px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(-12px) translateY(0) rotate(0); }
}
@keyframes aaa-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.9; }
}
@keyframes aaa-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.2; }
  100% { transform: translate(90px, -70px) scale(2); opacity: 0; }
}

/* ulysses-degree-speech */
.scn-ulysses-degree-speech {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b882 30%, #b89a6a 60%, #8c6e4a 100%),
              radial-gradient(ellipse at 40% 20%, rgba(255,230,140,.3) 0%, transparent 70%);
}
.scn-ulysses-degree-speech .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fce39e 0%, #f5d080 50%, #d4a85a 100%);
  animation: ds-sky 12s ease-in-out infinite alternate;
}
.scn-ulysses-degree-speech .sun {
  position: absolute; top: 12%; right: 22%; width: 60px; height: 120px;
  background: radial-gradient(circle, #ffe380 0%, #e6b800 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 80px 20px rgba(230,184,0,.5);
  animation: ds-sunpulse 9s ease-in-out infinite alternate;
}
.scn-ulysses-degree-speech .mask {
  position: absolute; bottom: 30%; left: 25%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #a08060 0%, #604830 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 50%;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 80% 100%, 20% 100%, 0% 70%);
  animation: ds-maskturn 15s ease-in-out infinite alternate;
}
.scn-ulysses-degree-speech .shadow {
  position: absolute; bottom: 28%; left: 20%; width: 110px; height: 20px;
  background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(6px);
  animation: ds-shadow 15s ease-in-out infinite alternate;
}
.scn-ulysses-degree-speech .rayleft, .scn-ulysses-degree-speech .rayright {
  position: absolute; top: 10%; width: 30px; height: 60%;
  background: linear-gradient(180deg, rgba(255,220,100,.6) 0%, transparent 100%);
  transform-origin: top center;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
.scn-ulysses-degree-speech .rayleft {
  left: 25%; animation: ds-rayrotl 20s linear infinite;
}
.scn-ulysses-degree-speech .rayright {
  right: 25%; animation: ds-rayrotr 20s linear infinite reverse;
}
@keyframes ds-sky {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .8; transform: scaleY(1); }
}
@keyframes ds-sunpulse {
  0% { transform: scale(1); box-shadow: 0 0 80px 20px rgba(230,184,0,.5); }
  50% { transform: scale(1.05); box-shadow: 0 0 100px 30px rgba(230,184,0,.7); }
  100% { transform: scale(1); box-shadow: 0 0 80px 20px rgba(230,184,0,.5); }
}
@keyframes ds-maskturn {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(5px); }
  100% { transform: rotate(-1deg) translateX(-2px); }
}
@keyframes ds-shadow {
  0% { transform: scaleX(1); opacity: .15; }
  50% { transform: scaleX(1.2); opacity: .25; }
  100% { transform: scaleX(.9); opacity: .15; }
}
@keyframes ds-rayrotl {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes ds-rayrotr {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(20deg); }
}

/* ulysses-chaos-prophesy */
.scn-ulysses-chaos-prophesy {
  background: linear-gradient(180deg, #3a4a5e 0%, #2a3a4e 40%, #1a2a3e 100%),
              radial-gradient(ellipse at 50% 80%, #4a6a8e 0%, transparent 70%);
}
.scn-ulysses-chaos-prophesy .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a5a6e 0%, #2a3a4e 100%);
  animation: cp-skyturb 10s ease-in-out infinite alternate;
}
.scn-ulysses-chaos-prophesy .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a2a3e 0%, #2a4a5e 50%, #3a5a6e 100%);
  animation: cp-seachurn 6s ease-in-out infinite alternate;
}
.scn-ulysses-chaos-prophesy .planet-one, .scn-ulysses-chaos-prophesy .planet-two {
  position: absolute; width: 50px; height: 50px; border-radius: 50%;
  background: radial-gradient(circle, #a07050 0%, #603820 100%);
  box-shadow: 0 0 30px 10px rgba(160,112,80,.5);
}
.scn-ulysses-chaos-prophesy .planet-one {
  top: 15%; left: 20%;
  animation: cp-planetdrift1 25s linear infinite;
}
.scn-ulysses-chaos-prophesy .planet-two {
  top: 25%; right: 30%;
  animation: cp-planetdrift2 30s linear infinite reverse;
}
.scn-ulysses-chaos-prophesy .lightning {
  position: absolute; width: 4px; height: 80px;
  background: linear-gradient(180deg, #b0d0ff 0%, transparent 100%);
  border-radius: 2px;
  animation: cp-lightning 7s ease-in-out infinite;
}
.scn-ulysses-chaos-prophesy .bolt1 { top: 5%; left: 40%; transform: rotate(-10deg); }
.scn-ulysses-chaos-prophesy .bolt2 { top: 8%; right: 45%; transform: rotate(15deg); animation-delay: 2s; }
.scn-ulysses-chaos-prophesy .wave {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(60,100,120,.6) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: cp-wavelift 6s ease-in-out infinite alternate;
}
@keyframes cp-skyturb {
  0% { opacity: .6; transform: scaleY(1); }
  50% { opacity: .9; transform: scaleY(1.03); }
  100% { opacity: .7; transform: scaleY(1); }
}
@keyframes cp-seachurn {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(5px) scaleY(1.05); }
  100% { transform: translateY(-3px) scaleY(.95); }
}
@keyframes cp-planetdrift1 {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(30px, -20px) rotate(10deg); }
  50% { transform: translate(-40px, 10px) rotate(-5deg); }
  75% { transform: translate(20px, -30px) rotate(8deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes cp-planetdrift2 {
  0% { transform: translate(0,0) scale(1); }
  33% { transform: translate(-20px, 25px) scale(1.1); }
  66% { transform: translate(40px, -15px) scale(.9); }
  100% { transform: translate(0,0) scale(1); }
}
@keyframes cp-lightning {
  0%, 90%, 100% { opacity: 0; }
  5% { opacity: .9; }
  10% { opacity: 0; }
  15% { opacity: .6; }
  20% { opacity: 0; }
}
@keyframes cp-wavelift {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-20px) scaleY(1.3); }
  100% { transform: translateY(10px) scaleY(.8); }
}

/* ulysses-future-chaos */
.scn-ulysses-future-chaos {
  background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2e 60%, #020818 100%),
              radial-gradient(ellipse at 50% 40%, #3a5a7e 0%, transparent 70%);
}
.scn-ulysses-future-chaos .bg-deep { /* additional depth layer - already covered by .scn */ display: none; }
.scn-ulysses-future-chaos .globe {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 140px;
  margin-left: -70px;
  background: radial-gradient(circle at 40% 40%, #7a9a8a 0%, #3a5a4a 50%, #1a2a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 15px rgba(100,140,120,.4);
  animation: fc-globerotate 18s linear infinite;
}
.scn-ulysses-future-chaos .wave-rise {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #1a3a4a 0%, #2a5a6a 40%, transparent 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: fc-waverise 8s ease-in-out infinite alternate;
}
.scn-ulysses-future-chaos .string {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 3px;
  background: #b09070;
  border-radius: 2px;
  transform-origin: left center;
  animation: fc-stringshake 4s ease-in-out infinite;
}
.scn-ulysses-future-chaos .splash {
  position: absolute; bottom: 45%; left: 45%; width: 40px; height: 30px;
  background: radial-gradient(circle, rgba(200,220,230,.7) 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  animation: fc-splash 6s ease-in-out infinite alternate;
}
.scn-ulysses-future-chaos .cloud {
  position: absolute; top: 15%; right: 20%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(180,190,200,.4) 0%, transparent 100%);
  filter: blur(5px);
  animation: fc-clouddrift 50s linear infinite;
}
@keyframes fc-globerotate {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.03); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes fc-waverise {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-20px) scaleY(1.2); }
  100% { transform: translateY(10px) scaleY(.9); }
}
@keyframes fc-stringshake {
  0% { transform: rotate(-2deg) scaleX(1); }
  25% { transform: rotate(3deg) scaleX(1.02); }
  50% { transform: rotate(-1deg) scaleX(.98); }
  75% { transform: rotate(4deg) scaleX(1.01); }
  100% { transform: rotate(-2deg) scaleX(1); }
}
@keyframes fc-splash {
  0% { transform: translateY(0) scale(1); opacity: .7; }
  50% { transform: translateY(-10px) scale(1.5); opacity: 1; }
  100% { transform: translateY(0) scale(.8); opacity: .5; }
}
@keyframes fc-clouddrift {
  0% { transform: translateX(0); }
  50% { transform: translateX(-80px); }
  100% { transform: translateX(0); }
}

/* ulysses-concludes-degree */
.scn-ulysses-concludes-degree {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 10%, #b09060 0%, transparent 60%);
}
.scn-ulysses-concludes-degree .bg-tower {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(180,140,80,.15) 0%, transparent 50%);
  animation: cd-bgbreath 20s ease-in-out infinite alternate;
}
.scn-ulysses-concludes-degree .light-well {
  position: absolute; top: 5%; left: 45%; width: 30px; height: 60px;
  background: radial-gradient(circle, #e6c080 0%, transparent 100%);
  box-shadow: 0 0 60px 30px rgba(230,192,128,.3);
  animation: cd-lightflicker 4s ease-in-out infinite alternate;
}
.scn-ulysses-concludes-degree .rail {
  position: absolute; bottom: 0; left: 20%; width: 8px; height: 80%;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  animation: cd-railsway 11s ease-in-out infinite;
}
.scn-ulysses-concludes-degree .step { position: absolute; left: 20%; width: 60%; height: 10px; background: #5a3a2a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-ulysses-concludes-degree .step-a { bottom: 20%; animation: cd-stepmovea 15s ease-in-out infinite; }
.scn-ulysses-concludes-degree .step-b { bottom: 40%; animation: cd-stepmoveb 18s ease-in-out infinite; }
.scn-ulysses-concludes-degree .figure {
  position: absolute; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 30% 40%;
}
.scn-ulysses-concludes-degree .f-up {
  bottom: 22%; left: 25%;
  animation: cd-figureup 12s ease-in-out infinite;
}
.scn-ulysses-concludes-degree .f-down {
  bottom: 42%; left: 40%;
  animation: cd-figuredown 14s ease-in-out infinite;
}
@keyframes cd-bgbreath {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes cd-lightflicker {
  0% { box-shadow: 0 0 60px 30px rgba(230,192,128,.3); opacity: .8; }
  50% { box-shadow: 0 0 80px 40px rgba(230,192,128,.5); opacity: 1; }
  100% { box-shadow: 0 0 40px 20px rgba(230,192,128,.2); opacity: .7; }
}
@keyframes cd-railsway {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes cd-stepmovea {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(3px) scaleX(1.02); }
  100% { transform: translateY(-2px) scaleX(.98); }
}
@keyframes cd-stepmoveb {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(.98); }
  100% { transform: translateY(3px) scaleX(1.02); }
}
@keyframes cd-figureup {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-10px) rotate(1deg); }
  100% { transform: translateY(2px) rotate(0deg); }
}
@keyframes cd-figuredown {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(10px) rotate(-1deg); }
  100% { transform: translateY(-2px) rotate(0deg); }
}

/* ---------- scene: item-cressida-kisses ---------- */
.scn-item-cressida-kisses {
  background:
    linear-gradient(180deg, #f9d98e 0%, #f5c26a 30%, #d4944a 70%, #b07030 100%),
    radial-gradient(ellipse at 30% 20%, #fff8d0 0%, transparent 60%);
}
.scn-item-cressida-kisses .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ffe9b0 0%, #f9c27a 100%);
  animation: skiss-sky 12s ease-in-out infinite alternate;
}
.scn-item-cressida-kisses .sun {
  position: absolute; left: 45%; top: 12%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4d0 0%, #f7d08a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,220,120,0.5);
  animation: skiss-sun 4s ease-in-out infinite alternate;
}
.scn-item-cressida-kisses .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 50px; height: 100px;
  background: linear-gradient(90deg, #4a2e1a 0%, #2f1c0c 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 40% 60%;
  transform-origin: bottom center;
  animation: skiss-fig 3s ease-in-out infinite alternate;
}
.scn-item-cressida-kisses .figure-right {
  position: absolute; bottom: 28%; right: 25%; width: 50px; height: 100px;
  background: linear-gradient(-90deg, #4a2e1a 0%, #2f1c0c 100%);
  border-radius: 60% 40% 50% 50% / 40% 60% 60% 40%;
  transform-origin: bottom center;
  animation: skiss-fig 3s ease-in-out infinite alternate-reverse;
}
.scn-item-cressida-kisses .drapery {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #c8855a 0%, #8f5530 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%;
  opacity: 0.6;
  filter: blur(8px);
  animation: skiss-drape 8s ease-in-out infinite alternate;
}
.scn-item-cressida-kisses .petals {
  position: absolute; top: 40%; left: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e0a070 0%, #b06030 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 20px 30px 0 #d08850, -15px 45px 0 #c07840, 40px 10px 0 #b86830;
  animation: skiss-petal 9s linear infinite;
}
.scn-item-cressida-kisses .arch {
  position: absolute; bottom: 35%; left: 15%; right: 15%; height: 40%;
  border: 6px solid #b8855a;
  border-top: none;
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  opacity: 0.3;
  animation: skiss-arch 5s ease-in-out infinite alternate;
}
@keyframes skiss-sky    { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes skiss-sun    { 0% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(1.1); filter: brightness(1.2); } 100% { transform: scale(0.95); filter: brightness(0.9); } }
@keyframes skiss-fig   { 0% { transform: translateY(0) rotate(-2deg) scaleY(1); } 50% { transform: translateY(-4px) rotate(1deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(1deg) scaleY(1); } }
@keyframes skiss-drape { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.98); } 100% { transform: translateY(2px) scaleX(1.01); } }
@keyframes skiss-petal { 0% { transform: translate(0,0) rotate(0deg); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translate(-30px, -60px) rotate(180deg); opacity: 0; } }
@keyframes skiss-arch  { 0% { opacity: 0.2; border-color: #b8855a; } 50% { opacity: 0.4; border-color: #d8a57a; } 100% { opacity: 0.3; border-color: #a07050; } }

/* ---------- scene: trojans-arrive-camp ---------- */
.scn-trojans-arrive-camp {
  background:
    linear-gradient(0deg, #c8a26e 0%, #e0c090 30%, #f0d8a0 60%, #ffe8c0 100%),
    radial-gradient(ellipse at 60% 20%, #ffedc0 0%, transparent 60%);
}
.scn-trojans-arrive-camp .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #f0c880 100%);
  animation: tarr-sky 10s ease-in-out infinite alternate;
}
.scn-trojans-arrive-camp .sun {
  position: absolute; left: 70%; top: 8%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff4d0 0%, #f0c860 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,200,80,0.6);
  animation: tarr-sun 5s ease-in-out infinite alternate;
}
.scn-trojans-arrive-camp .tent-bg {
  position: absolute; bottom: 20%; left: 5%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #d8b080 0%, #a07a50 100%);
  clip-path: polygon(0% 100%, 5% 10%, 95% 10%, 100% 100%);
  animation: tarr-tent 8s ease-in-out infinite alternate;
}
.scn-trojans-arrive-camp .banner {
  position: absolute; bottom: 45%; width: 12px; height: 40px;
  background: #b85a3a; /* terracotta, not crimson */
  border-radius: 2px;
  transform-origin: bottom center;
}
.scn-trojans-arrive-camp .banner-1 { left: 25%; animation: tarr-banner 3.5s ease-in-out infinite; }
.scn-trojans-arrive-camp .banner-2 { left: 50%; animation: tarr-banner 3.5s ease-in-out infinite 1.75s; }
.scn-trojans-arrive-camp .warrior {
  position: absolute; bottom: 15%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1410 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
}
.scn-trojans-arrive-camp .warrior-1 { left: 10%; animation: tarr-march 6s linear infinite; }
.scn-trojans-arrive-camp .warrior-2 { left: 30%; animation: tarr-march 6s linear infinite -2s; }
.scn-trojans-arrive-camp .warrior-3 { left: 50%; animation: tarr-march 6s linear infinite -4s; }
.scn-trojans-arrive-camp .dust {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #d0a880 0%, transparent 70%);
  opacity: 0.4;
  filter: blur(10px);
  animation: tarr-dust 4s ease-in-out infinite alternate;
}
@keyframes tarr-sky   { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tarr-sun   { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(0.95) rotate(-5deg); } }
@keyframes tarr-tent  { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(1px) scaleX(0.98); } }
@keyframes tarr-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-8deg); } }
@keyframes tarr-march { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes tarr-dust  { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.1); opacity: 0.5; } 100% { transform: scale(1.2); opacity: 0.2; } }

/* ---------- scene: ajax-hector-combat ---------- */
.scn-ajax-hector-combat {
  background:
    linear-gradient(0deg, #b89060 0%, #d0a870 30%, #e8c890 60%, #fce0b0 100%),
    radial-gradient(ellipse at 50% 15%, #fff0c0 0%, transparent 50%);
}
.scn-ajax-hector-combat .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fce0b0 0%, #e0b880 100%);
  animation: ajax-sky 8s ease-in-out infinite alternate;
}
.scn-ajax-hector-combat .sun {
  position: absolute; left: 20%; top: 8%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0c0 0%, #e0a850 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(240,180,60,0.6);
  animation: ajax-sun 4s ease-in-out infinite alternate;
}
.scn-ajax-hector-combat .ajax-body {
  position: absolute; bottom: 10%; left: 20%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ajax-advance 2s ease-in-out infinite alternate;
}
.scn-ajax-hector-combat .hector-body {
  position: absolute; bottom: 10%; right: 20%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 40% 20% 20% / 50% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ajax-advance 2s ease-in-out infinite alternate-reverse;
}
.scn-ajax-hector-combat .ajax-shield {
  position: absolute; bottom: 30%; left: 28%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, #5a4a6a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: center left;
  animation: ajax-shield 1.5s ease-in-out infinite alternate;
}
.scn-ajax-hector-combat .hector-spear {
  position: absolute; bottom: 40%; right: 25%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ajax-spear 1.5s ease-in-out infinite alternate;
}
.scn-ajax-hector-combat .dust {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #c8a070 0%, transparent 60%);
  opacity: 0.3;
  filter: blur(12px);
  animation: ajax-dust 3s ease-in-out infinite alternate;
}
.scn-ajax-hector-combat .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #b89060 0%, #8a6830 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
@keyframes ajax-sky   { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes ajax-sun   { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.9) rotate(-5deg); } }
@keyframes ajax-advance { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(0) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes ajax-shield { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.1); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes ajax-spear  { 0% { transform: rotate(15deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(20deg); } }
@keyframes ajax-dust   { 0% { transform: scale(1); opacity: 0.2; } 50% { transform: scale(1.3); opacity: 0.4; } 100% { transform: scale(0.9); opacity: 0.3; } }

/* ---------- scene: greek-tents-honor-hector ---------- */
.scn-greek-tents-honor-hector {
  background:
    linear-gradient(180deg, #d8b080 0%, #c09868 30%, #a08050 70%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 100%, #e0c090 0%, transparent 70%);
}
.scn-greek-tents-honor-hector .tent-fabric {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(200,170,120,0.8) 0%, rgba(130,100,60,0.9) 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: gth-fabric 6s ease-in-out infinite alternate;
}
.scn-greek-tents-honor-hector .tent-pole {
  position: absolute; top: 0; width: 8px; height: 60%;
  background: linear-gradient(90deg, #5a3a1a 0%, #8a5a2a 50%, #5a3a1a 100%);
  border-radius: 4px;
}
.scn-greek-tents-honor-hector .pole-l { left: 15%; animation: gth-pole 5s ease-in-out infinite; }
.scn-greek-tents-honor-hector .pole-r { right: 15%; animation: gth-pole 5s ease-in-out infinite -2.5s; }
.scn-greek-tents-honor-hector .achilles {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  transform-origin: center bottom;
  animation: gth-achilles 4s ease-in-out infinite alternate;
}
.scn-greek-tents-honor-hector .greek-soldier {
  position: absolute; bottom: 15%; left: 70%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: gth-soldier 6s ease-in-out infinite alternate;
}
.scn-greek-tents-honor-hector .hector-profile {
  position: absolute; bottom: 20%; left: 25%; width: 35px; height: 80px;
  background: linear-gradient(90deg, #7a4a2a 0%, #4a2a1a 100%);
  border-radius: 50% 20% 30% 30% / 60% 40% 30% 30%;
  transform-origin: bottom center;
  animation: gth-hector 5s ease-in-out infinite alternate;
}
.scn-greek-tents-honor-hector .fire {
  position: absolute; bottom: 10%; left: 45%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #ffb040 0%, #d08020 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,160,40,0.5);
  animation: gth-fire 2s ease-in-out infinite alternate;
}
.scn-greek-tents-honor-hector .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: gth-shadow 7s ease-in-out infinite alternate;
}
@keyframes gth-fabric    { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(0.5deg); } 100% { transform: scaleY(0.98) rotate(-0.5deg); } }
@keyframes gth-pole      { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes gth-achilles  { 0% { transform: translateX(-50%) translateY(0) scaleY(1); } 50% { transform: translateX(-50%) translateY(-4px) scaleY(1.03); } 100% { transform: translateX(-50%) translateY(0) scaleY(0.97); } }
@keyframes gth-soldier   { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(2deg); } }
@keyframes gth-hector    { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes gth-fire      { 0% { transform: scale(1) rotate(0deg); filter: brightness(1); } 50% { transform: scale(1.1) rotate(10deg); filter: brightness(1.2); } 100% { transform: scale(0.95) rotate(-5deg); filter: brightness(0.9); } }
@keyframes gth-shadow    { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* Scene 1: paris-menelaus-fight (funny, dusk) */
.scn-paris-menelaus-fight {
  background: linear-gradient(180deg, #2d1b16 0%, #6b3a2a 30%, #d4793a 60%, #e89f5c 80%, #f4c28e 100%),
              radial-gradient(ellipse at 50% 100%, #b85c32 0%, transparent 70%);
}
.scn-paris-menelaus-fight .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #3f1e1a 0%, transparent 100%); animation: pmf-sky 10s ease-in-out infinite alternate; }
.scn-paris-menelaus-fight .sun { position:absolute; top:30%; left:75%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fce9a8 0%, #e89f5c 70%, transparent 100%); box-shadow: 0 0 40px 20px #e89f5c, 0 0 80px 40px rgba(232,159,92,.5); animation: pmf-sun 15s ease-in-out infinite; }
.scn-paris-menelaus-fight .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a2b1a 0%, #2a1508 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: pmf-ground 5s ease-in-out infinite alternate; }
.scn-paris-menelaus-fight .fighter-left { position:absolute; bottom:35%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #1a0f0a 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmf-fightLeft 1.8s ease-in-out infinite; }
.scn-paris-menelaus-fight .fighter-right { position:absolute; bottom:35%; right:30%; width:28px; height:60px; background: linear-gradient(180deg, #1a0f0a 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmf-fightRight 1.8s ease-in-out infinite .3s; }
.scn-paris-menelaus-fight .dust-1 { position:absolute; bottom:38%; left:25%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,150,100,.6) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: pmf-dust1 2.4s ease-in-out infinite; }
.scn-paris-menelaus-fight .dust-2 { position:absolute; bottom:36%; right:25%; width:30px; height:15px; background: radial-gradient(ellipse, rgba(200,150,100,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: pmf-dust2 1.6s ease-in-out infinite .4s; }
.scn-paris-menelaus-fight .sparrow { position:absolute; top:40%; left:50%; width:12px; height:8px; background: #1a0f0a; border-radius: 0 50% 50% 50%; transform: rotate(45deg); animation: pmf-sparrow 2s ease-in-out infinite; }
.scn-paris-menelaus-fight .shadow { position:absolute; bottom:0; left:10%; right:10%; height:10%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(6px); animation: pmf-shadow 3s ease-in-out infinite alternate; }
@keyframes pmf-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pmf-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 40px 20px #e89f5c; } 50% { transform: translate(-5px,-5px) scale(1.05); box-shadow: 0 0 60px 30px #f4c28e; } 100% { transform: translate(0,0) scale(1); } }
@keyframes pmf-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes pmf-fightLeft { 0% { transform: translateX(0) rotate(-5deg) translateY(0) } 25% { transform: translateX(4px) rotate(5deg) translateY(-2px) } 50% { transform: translateX(8px) rotate(-3deg) translateY(0) } 75% { transform: translateX(4px) rotate(3deg) translateY(-1px) } 100% { transform: translateX(0) rotate(-5deg) translateY(0) } }
@keyframes pmf-fightRight { 0% { transform: translateX(0) rotate(5deg) translateY(0) } 25% { transform: translateX(-4px) rotate(-5deg) translateY(-2px) } 50% { transform: translateX(-8px) rotate(3deg) translateY(0) } 75% { transform: translateX(-4px) rotate(-3deg) translateY(-1px) } 100% { transform: translateX(0) rotate(5deg) translateY(0) } }
@keyframes pmf-dust1 { 0% { opacity:.6; transform: translate(0,0) scale(1); } 50% { opacity:0; transform: translate(20px,-10px) scale(1.5); } 100% { opacity:.6; transform: translate(0,0) scale(1); } }
@keyframes pmf-dust2 { 0% { opacity:.5; transform: translate(0,0) scale(1); } 50% { opacity:0; transform: translate(-15px,-8px) scale(1.3); } 100% { opacity:.5; transform: translate(0,0) scale(1); } }
@keyframes pmf-sparrow { 0% { transform: rotate(45deg) translate(0,0); } 50% { transform: rotate(45deg) translate(20px,-15px); } 100% { transform: rotate(45deg) translate(0,0); } }
@keyframes pmf-shadow { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.2); } 100% { opacity:.3; transform: scaleX(1); } }

/* Scene 2: hector-puts-off-armour (calm, dusk) */
.scn-hector-puts-off-armour {
  background: linear-gradient(180deg, #4a2a1a 0%, #9b6b4a 30%, #d4a060 60%, #ecc28a 80%, #f4dbb0 100%),
              radial-gradient(ellipse at 50% 0%, #f4dbb0 0%, transparent 60%);
}
.scn-hector-puts-off-armour .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a3a2a 0%, transparent 100%); animation: hpa-sky 12s ease-in-out infinite alternate; }
.scn-hector-puts-off-armour .sun { position:absolute; top:20%; left:50%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle, #fff0c0 0%, #f4dbb0 40%, #d4a060 70%, transparent 100%); box-shadow: 0 0 80px 40px #f4dbb0, 0 0 160px 80px rgba(212,160,96,.5); animation: hpa-sun 20s ease-in-out infinite alternate; }
.scn-hector-puts-off-armour .hills { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.4); animation: hpa-hills 30s ease-in-out infinite alternate; }
.scn-hector-puts-off-armour .hector-figure { position:absolute; bottom:30%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hpa-hector 6s ease-in-out infinite; }
.scn-hector-puts-off-armour .helmet { position:absolute; bottom:58%; left:38%; width:16px; height:12px; background: #2a1a10; border-radius: 50% 50% 10% 10%; transform-origin: bottom center; animation: hpa-helmet 8s ease-in-out infinite; }
.scn-hector-puts-off-armour .shield { position:absolute; bottom:35%; right:45%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -4px 6px rgba(255,255,255,.1); animation: hpa-shield 10s ease-in-out infinite; }
.scn-hector-puts-off-armour .sword { position:absolute; bottom:28%; left:55%; width:6px; height:40px; background: linear-gradient(180deg, #c0b090 0%, #8a7a6a 100%); border-radius: 0 0 20% 20%; transform-origin: top center; animation: hpa-sword 5s ease-in-out infinite; }
.scn-hector-puts-off-armour .light-ray { position:absolute; top:0; left:45%; width:10%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, transparent 100%); filter: blur(4px); animation: hpa-light 15s ease-in-out infinite alternate; }
@keyframes hpa-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hpa-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 80px 40px #f4dbb0; } 50% { transform: translate(0,5px) scale(0.98); box-shadow: 0 0 60px 30px #d4a060; } 100% { transform: translate(0,0) scale(1); } }
@keyframes hpa-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hpa-hector { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hpa-helmet { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(3px,-5px) rotate(10deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes hpa-shield { 0% { transform: rotate(0deg) translate(0,0); } 50% { transform: rotate(-5deg) translate(-2px,2px); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes hpa-sword { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes hpa-light { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }

/* Scene 3: achilles-attacks-unarmed (dark, dusk) */
.scn-achilles-attacks-unarmed {
  background: linear-gradient(180deg, #1c1420 0%, #2b1e2e 25%, #4a2a3a 50%, #6b3a4a 75%, #8b4a5a 100%),
              radial-gradient(ellipse at 50% 0%, #8b4a5a 0%, transparent 60%);
}
.scn-achilles-attacks-unarmed .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1a30 0%, transparent 100%); animation: aau-sky 8s ease-in-out infinite alternate; }
.scn-achilles-attacks-unarmed .sun-slice { position:absolute; top:10%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #b85c4a 0%, transparent 100%); border-radius: 50% / 100% 100% 0 0; filter: blur(6px); animation: aau-sun 12s ease-in-out infinite alternate; }
.scn-achilles-attacks-unarmed .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a101a 0%, #0a050a 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-achilles-attacks-unarmed .achilles { position:absolute; bottom:30%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #1a1220 0%, #0a0510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); transform-origin: bottom center; animation: aau-achilles 3s ease-in-out infinite; }
.scn-achilles-attacks-unarmed .myrmidons { position:absolute; bottom:25%; right:10%; width:60px; height:60px; background: repeating-linear-gradient(0deg, #1a1220 0px, #1a1220 12px, #0a0510 12px, #0a0510 24px); border-radius: 40% 40% 30% 30%; filter: blur(1px); animation: aau-myrmidons 4s ease-in-out infinite; }
.scn-achilles-attacks-unarmed .hector { position:absolute; bottom:30%; left:60%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a2a 0%, #0a050a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aau-hector 2s ease-in-out infinite alternate; }
.scn-achilles-attacks-unarmed .clouds { position:absolute; top:5%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 30% 50%, rgba(40,20,40,.5) 0%, transparent 70%), radial-gradient(ellipse at 70% 30%, rgba(40,20,40,.4) 0%, transparent 70%); filter: blur(8px); animation: aau-clouds 20s linear infinite; }
.scn-achilles-attacks-unarmed .shadow-spike { position:absolute; bottom:0; left:30%; right:30%; height:15%; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(8px); animation: aau-shadow 5s ease-in-out infinite alternate; }
@keyframes aau-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes aau-sun { 0% { opacity:.5; transform: translateX(0); } 50% { opacity:1; transform: translateX(-10px); } 100% { opacity:.5; transform: translateX(0); } }
@keyframes aau-achilles { 0% { transform: translate(0,0) rotate(0deg) scaleX(1); } 50% { transform: translate(10px,-3px) rotate(-4deg) scaleX(1.1); } 100% { transform: translate(0,0) rotate(0deg) scaleX(1); } }
@keyframes aau-myrmidons { 0% { transform: translate(0,0) scaleY(1); } 50% { transform: translate(-5px,2px) scaleY(0.9); } 100% { transform: translate(0,0) scaleY(1); } }
@keyframes aau-hector { 0% { transform: translate(0,0) rotate(0deg); } 100% { transform: translate(0,-10px) rotate(5deg); } }
@keyframes aau-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }
@keyframes aau-shadow { 0% { opacity:.5; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.3); } 100% { opacity:.5; transform: scaleX(1); } }

/* Scene 4: achilles-drags-body (dark, night) */
.scn-achilles-drags-body {
  background: linear-gradient(180deg, #0a0810 0%, #141020 30%, #1c1430 50%, #141020 70%, #0a0810 100%),
              radial-gradient(ellipse at 50% 100%, #1c1430 0%, transparent 70%);
}
.scn-achilles-drags-body .night-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #0c0a1a 0%, #1a1430 100%); animation: adb-sky 15s ease-in-out infinite alternate; }
.scn-achilles-drags-body .moon { position:absolute; top:15%; left:70%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle, #d0c8d8 0%, #303050 100%); box-shadow: 0 0 30px 15px rgba(48,48,80,.5); animation: adb-moon 20s ease-in-out infinite; }
.scn-achilles-drags-body .stars { position:absolute; inset:0; background: radial-gradient(2px 2px at 10% 20%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 30% 40%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 60% 10%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 80% 50%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 50% 80%, #fff 0%, transparent 100%); animation: adb-stars 30s linear infinite; }
.scn-achilles-drags-body .chariot { position:absolute; bottom:30%; left:20%; width:70px; height:30px; background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: adb-chariot 4s ease-in-out infinite; }
.scn-achilles-drags-body .achilles-fig { position:absolute; bottom:30%; left:22%; width:20px; height:40px; background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: adb-achilles 3s ease-in-out infinite; }
.scn-achilles-drags-body .hector-body { position:absolute; bottom:20%; left:50%; width:40px; height:20px; background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: right center; animation: adb-hector 5s ease-in-out infinite; }
.scn-achilles-drags-body .dust-trail { position:absolute; bottom:22%; left:45%; right:5%; height:12px; background: linear-gradient(90deg, transparent 0%, rgba(40,30,40,.4) 20%, rgba(40,30,40,.6) 80%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: adb-dust 6s ease-in-out infinite; }
.scn-achilles-drags-body .torch { position:absolute; bottom:25%; left:15%; width:8px; height:20px; background: linear-gradient(180deg, #ff8844 0%, #cc4400 50%, #441100 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 10px #cc4400, 0 0 40px 20px rgba(204,68,0,.4); animation: adb-torch 1.5s ease-in-out infinite alternate; }
@keyframes adb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes adb-moon { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,3px) scale(1.02); } 100% { transform: translate(0,0) scale(1); } }
@keyframes adb-stars { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.5; } }
@keyframes adb-chariot { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(5px,-2px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes adb-achilles { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-3px,-2px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes adb-hector { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(10px,0) rotate(10deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes adb-dust { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.5); } 100% { opacity:.3; transform: scaleX(1); } }
@keyframes adb-torch { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.1) rotate(2deg); } 100% { transform: scaleY(1) rotate(-2deg); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.confetti { position: absolute; pointer-events: none; }
.curtain { position: absolute; pointer-events: none; }
.ray { position: absolute; pointer-events: none; }
.sail { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-trojan-warriors-parade {
  background:
    linear-gradient(180deg, #6ba3d6 0%, #c2b280 40%, #e8d5a3 70%, #f5e6b8 100%),
    radial-gradient(ellipse at 60% 20%, #fce4a2 0%, transparent 60%);
}
.scn-trojan-warriors-parade .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #7bb8e0 0%, #e4ce9a 100%);
  animation: twp-sky 16s ease-in-out infinite alternate;
}
.scn-trojan-warriors-parade .sun {
  position:absolute; top:15%; left:60%; width:50px; height:50px;
  background: radial-gradient(circle at 50% 50%, #fdf4c8 0%, #f5d76e 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 80px 40px rgba(245,215,110,0.3), 0 0 160px 80px rgba(245,215,110,0.1);
  animation: twp-sun 6s ease-in-out infinite alternate;
}
.scn-trojan-warriors-parade .ground {
  position:absolute; bottom:0; left:0; right:0; height:48%;
  background: linear-gradient(180deg, #b6945c 0%, #8a6e3a 100%);
  border-radius: 20% 30% 0 0 / 10% 8% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: twp-ground 20s ease-in-out infinite alternate;
}
.scn-trojan-warriors-parade .column-left {
  position:absolute; bottom:18%; left:25%; width:20px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2214 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: twp-march 3.5s ease-in-out infinite;
}
.scn-trojan-warriors-parade .column-right {
  position:absolute; bottom:20%; left:55%; width:22px; height:62px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2214 100%);
  border-radius: 45% 40% 20% 20% / 60% 55% 20% 20%;
  transform-origin: bottom center;
  animation: twp-march 3.8s ease-in-out infinite 0.3s;
}
.scn-trojan-warriors-parade .banner-left {
  position:absolute; bottom:38%; left:22%; width:10px; height:40px;
  background: #8e5a3a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: twp-waver 2.5s ease-in-out infinite;
}
.scn-trojan-warriors-parade .banner-left::after {
  content:''; position:absolute; top:0; left:5px; width:35px; height:25px;
  background: linear-gradient(180deg, #b86a4a 0%, #9a5030 100%);
  border-radius: 0 50% 50% 0 / 0 60% 60% 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: twp-banner-wave 2.5s ease-in-out infinite;
}
.scn-trojan-warriors-parade .banner-right {
  position:absolute; bottom:40%; left:58%; width:10px; height:35px;
  background: #7a4a2a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: twp-waver 2.8s ease-in-out infinite 0.5s;
}
.scn-trojan-warriors-parade .banner-right::after {
  content:''; position:absolute; top:0; left:5px; width:30px; height:20px;
  background: linear-gradient(180deg, #c07a4a 0%, #a06030 100%);
  border-radius: 0 50% 50% 0 / 0 60% 60% 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: twp-banner-wave 2.8s ease-in-out infinite 0.5s;
}
.scn-trojan-warriors-parade .dust-a {
  position:absolute; bottom:45%; left:10%; width:4px; height:4px;
  background: rgba(200,170,120,0.5);
  border-radius:50%;
  filter: blur(2px);
  animation: twp-dust 8s linear infinite;
}
.scn-trojan-warriors-parade .dust-b {
  position:absolute; bottom:42%; left:70%; width:3px; height:3px;
  background: rgba(200,170,120,0.4);
  border-radius:50%;
  filter: blur(2px);
  animation: twp-dust 10s linear infinite 2s;
}
@keyframes twp-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; background-position: 0% 0%; }
  100% { opacity: 0.85; background-position: 5% 5%; }
}
@keyframes twp-sun {
  0% { transform: scale(1); box-shadow: 0 0 80px 40px rgba(245,215,110,0.3), 0 0 160px 80px rgba(245,215,110,0.1); }
  50% { transform: scale(1.05); box-shadow: 0 0 100px 50px rgba(245,215,110,0.4), 0 0 200px 100px rgba(245,215,110,0.15); }
  100% { transform: scale(0.98); box-shadow: 0 0 70px 35px rgba(245,215,110,0.25), 0 0 140px 70px rgba(245,215,110,0.08); }
}
@keyframes twp-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes twp-march {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(6px) translateY(0) rotate(0deg); }
  75% { transform: translateX(3px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes twp-waver {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes twp-banner-wave {
  0% { transform: skewX(-5deg); }
  50% { transform: skewX(5deg); }
  100% { transform: skewX(-5deg); }
}
@keyframes twp-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0.6; }
  25% { transform: translateY(-10px) translateX(5px); opacity: 0.3; }
  50% { transform: translateY(-20px) translateX(-2px); opacity: 0.1; }
  75% { transform: translateY(-15px) translateX(8px); opacity: 0.2; }
  100% { transform: translateY(0) translateX(0); opacity: 0.6; }
}

.scn-aeneas-news {
  background: linear-gradient(180deg, #f9e4b7 0%, #e6c27a 40%, #b58a4a 100%),
              radial-gradient(ellipse at 50% 20%, #ffd580 0%, transparent 60%);
}
.scn-aeneas-news .sun {
  position: absolute; top: 5%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5c0 0%, #f5c542 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 30px #f5c542, 0 0 120px 60px rgba(245,197,66,0.3);
  animation: an-sun-pulse 4s ease-in-out infinite alternate;
}
.scn-aeneas-news .city {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #8b7d5a 0%, #c4a56e 50%, #dec28a 100%);
  clip-path: polygon(0% 100%, 5% 60%, 10% 100%, 18% 40%, 25% 100%, 30% 50%, 38% 100%, 45% 30%, 50% 100%, 58% 45%, 65% 100%, 72% 35%, 80% 100%, 88% 55%, 95% 100%, 100% 100%);
  box-shadow: inset 0 8px 20px #00000044;
  animation: an-city-shiver 6s ease-in-out infinite;
}
.scn-aeneas-news .figure-aeneas {
  position: absolute; bottom: 28%; left: 20%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #3a3020 0%, #1a140a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 12px #00000055;
  animation: an-figure-walk 3s ease-in-out infinite;
}
.scn-aeneas-news .spear {
  position: absolute; bottom: 32%; left: 24%; width: 2px; height: 30px;
  background: linear-gradient(180deg, #b88a4a 0%, #6a4a1a 100%);
  transform: rotate(15deg) translateX(10px);
  animation: an-spear-tremble 2s ease-in-out infinite;
}
.scn-aeneas-news .shadow-stark {
  position: absolute; bottom: 30%; left: 15%; width: 40px; height: 8px;
  background: #00000033;
  border-radius: 50%;
  filter: blur(3px);
  animation: an-shadow-pulse 4s ease-in-out infinite alternate;
}
.scn-aeneas-news .dust {
  position: absolute; bottom: 32%; left: 30%; width: 8px; height: 8px;
  background: #d4b87a;
  border-radius: 50%;
  filter: blur(2px);
  animation: an-dust-drift 7s linear infinite;
}
.scn-aeneas-news .sky-glow {
  position: absolute; inset: 0 0 60% 0;
  background: radial-gradient(ellipse at 20% 30%, #ffd58033 0%, transparent 70%);
  animation: an-glow-shift 10s ease-in-out infinite alternate;
}
@keyframes an-sun-pulse {
  0% { transform: scale(1); box-shadow: 0 0 60px 30px #f5c542, 0 0 120px 60px rgba(245,197,66,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 80px 40px #ffd580, 0 0 160px 80px rgba(255,213,128,0.4); }
  100% { transform: scale(0.95); box-shadow: 0 0 50px 25px #e6a530, 0 0 100px 50px rgba(230,165,48,0.25); }
}
@keyframes an-city-shiver {
  0% { transform: translateY(0); }
  33% { transform: translateY(-2px); }
  67% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes an-figure-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(0deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  75% { transform: translateX(12px) rotate(0deg); }
  100% { transform: translateX(16px) rotate(-2deg); }
}
@keyframes an-spear-tremble {
  0% { transform: rotate(15deg) translateX(10px); }
  50% { transform: rotate(18deg) translateX(8px); }
  100% { transform: rotate(15deg) translateX(10px); }
}
@keyframes an-shadow-pulse {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(1); }
}
@keyframes an-dust-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(20px, -10px) scale(1.5); opacity: 0.2; }
  100% { transform: translate(40px, -20px) scale(0.8); opacity: 0; }
}
@keyframes an-glow-shift {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

.scn-troy-street-cressid-alexander {
  background: linear-gradient(180deg, #fdf4d6 0%, #e6d9b8 40%, #c4b08a 100%),
              radial-gradient(ellipse at 50% 100%, #e6d9b8 0%, transparent 70%);
}
.scn-troy-street-cressid-alexander .sky-soft {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce8b0 0%, transparent 100%);
  animation: ts-sky-breathe 12s ease-in-out infinite alternate;
}
.scn-troy-street-cressid-alexander .tower {
  position: absolute; bottom: 25%; right: 10%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #c4a56e 0%, #8b7d5a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -4px 0 8px #00000033;
  animation: ts-tower-sway 8s ease-in-out infinite;
}
.scn-troy-street-cressid-alexander .tower::after {
  content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 20px; height: 10px; background: #a0853a; border-radius: 50%; /* small dome */
}
.scn-troy-street-cressid-alexander .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #b89a6a 0%, #d9b88a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-troy-street-cressid-alexander .figure-cressida {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a251a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ts-figure-stand 6s ease-in-out infinite alternate;
}
.scn-troy-street-cressid-alexander .figure-alexander {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ts-figure-turn 8s ease-in-out infinite;
}
.scn-troy-street-cressid-alexander .distant-battle {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a6a4a88 0%, transparent 100%);
  filter: blur(4px);
  animation: ts-battle-shift 15s linear infinite;
}
.scn-troy-street-cressid-alexander .warm-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 50%, #ffdd9933 0%, transparent 60%);
  pointer-events: none;
  animation: ts-haze-drift 20s ease-in-out infinite alternate;
}
@keyframes ts-sky-breathe {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ts-tower-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ts-figure-stand {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ts-figure-turn {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(-1); }
  100% { transform: scaleX(1); }
}
@keyframes ts-battle-shift {
  0% { opacity: 0.2; transform: translateX(0); }
  50% { opacity: 0.4; transform: translateX(-5px); }
  100% { opacity: 0.2; transform: translateX(0); }
}
@keyframes ts-haze-drift {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(1); }
}

.scn-pandarus-cressid-conversation {
  background: linear-gradient(180deg, #fef7da 0%, #f0daa8 50%, #d4b87a 100%),
              radial-gradient(ellipse at 50% 30%, #fef7da 0%, transparent 70%);
}
.scn-pandarus-cressid-conversation .sky-bright {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fffce0 0%, transparent 100%);
  animation: pc-sky-shimmer 5s ease-in-out infinite alternate;
}
.scn-pandarus-cressid-conversation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #b59a6a 0%, #dbbc8a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-pandarus-cressid-conversation .figure-pandarus {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-pandarus-jiggle 1.5s ease-in-out infinite;
}
.scn-pandarus-cressid-conversation .figure-cressida2 {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a251a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: pc-cressida-bounce 2s ease-in-out infinite alternate;
}
.scn-pandarus-cressid-conversation .hat-pandarus {
  position: absolute; bottom: 38%; left: 36%; width: 18px; height: 10px;
  background: linear-gradient(180deg, #c44a2a 0%, #8a2a1a 100%); /* terracotta, not crimson */
  border-radius: 60% 60% 0 0;
  transform: rotate(-10deg);
  animation: pc-hat-tilt 3s ease-in-out infinite;
}
.scn-pandarus-cressid-conversation .speech-bubble {
  position: absolute; top: 20%; left: 40%; width: 50px; height: 30px;
  background: rgba(255,255,255,0.7);
  border-radius: 50%;
  filter: blur(1px);
  animation: pc-bubble-pulse 2s ease-in-out infinite alternate;
}
.scn-pandarus-cressid-conversation .flower {
  position: absolute; bottom: 25%; left: 48%; width: 6px; height: 6px;
  background: #ff6688; /* bright but not crimson - dusty rose */
  border-radius: 50%;
  box-shadow: 0 0 6px #ff668888;
  animation: pc-flower-sway 4s ease-in-out infinite;
}
@keyframes pc-sky-shimmer {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pc-pandarus-jiggle {
  0% { transform: rotate(-3deg) translateX(0); }
  25% { transform: rotate(3deg) translateX(2px); }
  50% { transform: rotate(-2deg) translateX(-1px); }
  75% { transform: rotate(2deg) translateX(1px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes pc-cressida-bounce {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pc-hat-tilt {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes pc-bubble-pulse {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.05); opacity: 0.8; }
  100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes pc-flower-sway {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

.scn-item-white-hair {
  background: linear-gradient(180deg, #fdf0d6 0%, #e6cfaa 40%, #c4a880 100%),
              radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 60%);
}
.scn-item-white-hair .bg-close {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 50%, #fff5e0 0%, #f0dbb8 70%, #d4b88a 100%);
  filter: blur(6px);
  animation: wh-bg-shift 8s ease-in-out infinite alternate;
}
.scn-item-white-hair .hand {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #e6c4a0 0%, #c49a70 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: wh-hand-lift 6s ease-in-out infinite;
}
.scn-item-white-hair .hand::after {
  content: ''; position: absolute; top: 10%; left: 20%; width: 6px; height: 8px;
  background: #c49a70; border-radius: 50%; /* thumb */
}
.scn-item-white-hair .hair-strand {
  position: absolute; bottom: 45%; left: 35%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #f5e6d0 0%, #e6cfa0 50%, #d4b88a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-25deg) translateX(10px);
  box-shadow: 0 0 4px #ffffff88;
  animation: wh-hair-wave 4s ease-in-out infinite;
}
.scn-item-white-hair .glint {
  position: absolute; bottom: 50%; left: 36%; width: 4px; height: 4px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #ffffffaa;
  animation: wh-glint-flash 3s ease-in-out infinite alternate;
}
.scn-item-white-hair .shadow-curl {
  position: absolute; bottom: 44%; left: 33%; width: 10px; height: 6px;
  background: #00000022;
  border-radius: 50%;
  filter: blur(2px);
  animation: wh-curl-slide 5s linear infinite;
}
.scn-item-white-hair .highlight-spot {
  position: absolute; top: 20%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffffff44 0%, transparent 100%);
  animation: wh-spot-dance 7s ease-in-out infinite alternate;
}
.scn-item-white-hair .frame-edge {
  position: absolute; inset: 0;
  border: 8px solid #4a3a2a;
  border-radius: 4px;
  pointer-events: none;
  animation: wh-frame-fade 10s ease-in-out infinite alternate;
}
.scn-item-white-hair .dust-mote {
  position: absolute; top: 60%; left: 70%; width: 3px; height: 3px;
  background: #ffffff66;
  border-radius: 50%;
  animation: wh-mote-drift 12s linear infinite;
}
@keyframes wh-bg-shift {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.02); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.8; }
}
@keyframes wh-hand-lift {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes wh-hair-wave {
  0% { transform: rotate(-25deg) translateX(10px); }
  50% { transform: rotate(-20deg) translateX(12px); }
  100% { transform: rotate(-25deg) translateX(10px); }
}
@keyframes wh-glint-flash {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(0.5); }
}
@keyframes wh-curl-slide {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(10px) scale(1.2); opacity: 0.5; }
  100% { transform: translateX(20px) scale(1); opacity: 0.3; }
}
@keyframes wh-spot-dance {
  0% { transform: translate(0,0) scale(1); opacity: 0.4; }
  50% { transform: translate(10px,-5px) scale(1.3); opacity: 0.7; }
  100% { transform: translate(-5px,5px) scale(0.9); opacity: 0.4; }
}
@keyframes wh-frame-fade {
  0% { border-color: #4a3a2a; opacity: 0.8; }
  50% { border-color: #6a5a3a; opacity: 1; }
  100% { border-color: #4a3a2a; opacity: 0.8; }
}
@keyframes wh-mote-drift {
  0% { transform: translate(0,0) scale(1); opacity: 0.5; }
  50% { transform: translate(-15px, -8px) scale(1.4); opacity: 0.2; }
  100% { transform: translate(-30px, -16px) scale(0.6); opacity: 0; }
}

.scn-troy-before-priam-palace { background: linear-gradient(180deg, #f2e6c4 0%, #d6c098 40%, #7a9bb5 100%), radial-gradient(ellipse at 50% 0%, #fef9e0 0%, transparent 60%); }
.scn-troy-before-priam-palace .sky    { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #b6d0e0 0%, #d8e8f0 60%, transparent); }
.scn-troy-before-priam-palace .sun    { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fef9c0 0%, #f2d680 50%, transparent 70%); border-radius:50%; filter:blur(4px); animation: tb-sun-breathe 8s ease-in-out infinite alternate; }
.scn-troy-before-priam-palace .cloud-a{ position:absolute; top:12%; left:10%; width:140px; height:24px; background: linear-gradient(90deg, rgba(255,255,255,.6), rgba(200,220,240,.3)); border-radius:50%; filter:blur(6px); animation: tb-drift-a 45s linear infinite; }
.scn-troy-before-priam-palace .cloud-b{ position:absolute; top:18%; right:5%; width:100px; height:18px; background: linear-gradient(90deg, rgba(255,255,255,.5), rgba(200,220,240,.2)); border-radius:50%; filter:blur(5px); animation: tb-drift-b 60s linear infinite reverse; }
.scn-troy-before-priam-palace .palace { position:absolute; bottom:25%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 60%, #8a7a5e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.15); }
.scn-troy-before-priam-palace .column-left { position:absolute; bottom:25%; left:23%; width:6%; height:38%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b89c 60%, #a89878 100%); border-radius: 2px; box-shadow: inset -2px 0 8px rgba(0,0,0,.1), inset 2px 0 8px rgba(255,255,240,.3); }
.scn-troy-before-priam-palace .column-right{ position:absolute; bottom:25%; right:23%; width:6%; height:38%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b89c 60%, #a89878 100%); border-radius: 2px; box-shadow: inset -2px 0 8px rgba(0,0,0,.1), inset 2px 0 8px rgba(255,255,240,.3); }
.scn-troy-before-priam-palace .figure { position:absolute; bottom:23%; left:48%; width:16px; height:36px; background: linear-gradient(180deg, #2a2a38 0%, #14141e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: tb-figure-stance 6s ease-in-out infinite; }
.scn-troy-before-priam-palace .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a9b6a 0%, #5a7a4a 100%); }
@keyframes tb-sun-breathe { 0% { transform: scale(1); filter:blur(4px); } 50% { transform: scale(1.08); filter:blur(3px); } 100% { transform: scale(0.95); filter:blur(5px); } }
@keyframes tb-drift-a { 0% { transform: translateX(-160px); } 100% { transform: translateX(120vw); } }
@keyframes tb-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-140vw); } }
@keyframes tb-figure-stance { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 66% { transform: translateX(-3px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0); } }

.scn-troilus-cressid-thoughts { background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 50%, #a08060 100%), radial-gradient(ellipse at 30% 80%, #f8e8c0 0%, transparent 70%); }
.scn-troilus-cressid-thoughts .wall-back { position:absolute; top:0; bottom:20%; left:0; right:0; background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%); border-bottom: 2px solid #8a7a5e; }
.scn-troilus-cressid-thoughts .wall-left { position:absolute; top:0; bottom:20%; left:0; width:18%; background: linear-gradient(180deg, #b8a888 0%, #a09070 100%); transform: skewY(4deg); transform-origin: bottom left; box-shadow: inset -8px 0 20px rgba(0,0,0,.2); }
.scn-troilus-cressid-thoughts .wall-right{ position:absolute; top:0; bottom:20%; right:0; width:18%; background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%); transform: skewY(-4deg); transform-origin: bottom right; box-shadow: inset 8px 0 20px rgba(0,0,0,.15); }
.scn-troilus-cressid-thoughts .table   { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); }
.scn-troilus-cressid-thoughts .goblet  { position:absolute; bottom:24%; left:50%; width:10px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #b89830 0%, #8a7020 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 8px rgba(200,180,80,.4); animation: tc-goblet-glint 4s ease-in-out infinite alternate; }
.scn-troilus-cressid-thoughts .figure-seated { position:absolute; bottom:20%; left:30%; 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: tc-seated-breathe 7s ease-in-out infinite; }
.scn-troilus-cressid-thoughts .figure-ghost  { position:absolute; bottom:32%; right:20%; width:20px; height:40px; background: radial-gradient(ellipse, rgba(255,200,160,0.3) 0%, transparent 70%); border-radius: 50%; filter:blur(6px); animation: tc-ghost-fade 6s ease-in-out infinite alternate; }
.scn-troilus-cressid-thoughts .window   { position:absolute; top:8%; left:55%; width:28%; height:30%; background: linear-gradient(180deg, #f0e0c0 0%, #c8b898 100%); border:4px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,200,100,.3); }
.scn-troilus-cressid-thoughts .light-beam{ position:absolute; top:8%; left:55%; width:28%; height:30%; background: linear-gradient(135deg, rgba(255,230,180,0.25) 0%, transparent 60%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: tc-beam-shift 9s ease-in-out infinite alternate; }
@keyframes tc-goblet-glint { 0% { transform: translateX(-50%) rotate(0deg); box-shadow: 0 0 8px rgba(200,180,80,.4); } 50% { transform: translateX(-50%) rotate(3deg); box-shadow: 0 0 16px rgba(200,180,80,.7); } 100% { transform: translateX(-50%) rotate(0deg); box-shadow: 0 0 8px rgba(200,180,80,.4); } }
@keyframes tc-seated-breathe { 0% { transform: translateY(0px); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0px); } }
@keyframes tc-ghost-fade { 0% { opacity:0.1; transform: scale(0.95); } 50% { opacity:0.4; transform: scale(1.05); } 100% { opacity:0.1; transform: scale(0.95); } }
@keyframes tc-beam-shift { 0% { opacity:0.3; clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); } 50% { opacity:0.6; clip-path: polygon(5% 0%, 95% 0%, 80% 100%, 20% 100%); } 100% { opacity:0.3; clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); } }

.scn-pandarus-anger { background: linear-gradient(180deg, #f2d8a0 0%, #c89860 50%, #8a6a40 100%), radial-gradient(ellipse at 70% 30%, #f8e8c0 0%, transparent 60%); }
.scn-pandarus-anger .bg-sun     { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(circle at 70% 30%, #fadc90 0%, transparent 50%); animation: pa-sun-pulse 3s ease-in-out infinite alternate; }
.scn-pandarus-anger .shadow-slice { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 50%, rgba(0,0,0,0.35) 100%); }
.scn-pandarus-anger .head-profile { position:absolute; bottom:25%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 20% 40% 40% / 60% 40% 50% 50%; transform-origin: bottom left; animation: pa-head-turn 5s ease-in-out infinite; }
.scn-pandarus-anger .jaw        { position:absolute; bottom:22%; left:33%; width:34px; height:8px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 0 0 40% 40%; transform-origin: right center; animation: pa-jaw-clench 4s ease-in-out infinite alternate; }
.scn-pandarus-anger .hair       { position:absolute; top:2%; left:28%; width:60px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 70% 30% 50% 50% / 80% 40% 60% 20%; filter: blur(1px); }
.scn-pandarus-anger .hand-clench { position:absolute; bottom:10%; right:25%; width:20px; height:26px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-fist-shake 2.5s ease-in-out infinite; }
.scn-pandarus-anger .sweat-drop { position:absolute; top:38%; left:38%; width:4px; height:6px; background: radial-gradient(circle, #a0c8e0 0%, transparent); border-radius: 50%; animation: pa-sweat-fall 6s linear infinite; }
.scn-pandarus-anger .vein       { position:absolute; top:32%; left:40%; width:18px; height:2px; background: #8a3020; border-radius: 2px; transform: rotate(10deg); animation: pa-vein-pulse 1.5s ease-in-out infinite alternate; }
@keyframes pa-sun-pulse { 0% { opacity:0.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.05); } }
@keyframes pa-head-turn { 0% { transform: rotate(0deg); } 30% { transform: rotate(-6deg); } 60% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes pa-jaw-clench { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.85); } 100% { transform: scaleY(1); } }
@keyframes pa-fist-shake { 0% { transform: rotate(0deg) translateY(0px); } 25% { transform: rotate(-8deg) translateY(-2px); } 50% { transform: rotate(6deg) translateY(1px); } 75% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0px); } }
@keyframes pa-sweat-fall { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(30px) scale(0.6); opacity:0.3; } 100% { transform: translateY(60px) scale(0.4); opacity:0; } }
@keyframes pa-vein-pulse { 0% { opacity:0.2; transform: scaleX(0.4); } 100% { opacity:1; transform: scaleX(1.2); } }

.scn-troilus-soliloquy { background: linear-gradient(180deg, #e8d8b0 0%, #b8a080 40%, #6a5a4a 100%), radial-gradient(ellipse at 50% 20%, #fce8a0 0%, transparent 60%); }
.scn-troilus-soliloquy .sky       { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c0d0e0 0%, #e0d8c0 40%, transparent); }
.scn-troilus-soliloquy .sun-blast { position:absolute; top:5%; left:55%; width:80px; height:80px; background: radial-gradient(circle, #fef0c0 0%, #f2d080 30%, transparent 60%); border-radius:50%; filter:blur(8px); animation: ts-sun-flare 10s ease-in-out infinite alternate; }
.scn-troilus-soliloquy .mountain-bg{ position:absolute; bottom:30%; left:-5%; right:-5%; height:20%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; filter: blur(2px); }
.scn-troilus-soliloquy .figure-stand { position:absolute; bottom:25%; left:45%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts-stance-pace 8s ease-in-out infinite; }
.scn-troilus-soliloquy .sword     { position:absolute; bottom:42%; left:50%; width:4px; height:30px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 2px; transform-origin: bottom center; animation: ts-sword-lift 6s ease-in-out infinite; }
.scn-troilus-soliloquy .cape-sweep{ position:absolute; bottom:25%; left:42%; width:34px; height:26px; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; filter: blur(2px); animation: ts-cape-swirl 9s ease-in-out infinite alternate; }
.scn-troilus-soliloquy .dust      { position:absolute; bottom:30%; left:35%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(200,180,150,0.3) 0%, transparent 70%); filter: blur(4px); animation: ts-dust-drift 15s linear infinite; }
.scn-troilus-soliloquy .shadow-lone { position:absolute; bottom:0; left:35%; width:50px; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent); transform: skewX(-15deg); transform-origin: bottom left; }
@keyframes ts-sun-flare { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.12); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes ts-stance-pace { 0% { transform: translateX(0px) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0px) rotate(0deg); } }
@keyframes ts-sword-lift { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes ts-cape-swirl { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.2) rotate(5deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes ts-dust-drift { 0% { transform: translateX(0) scale(1); opacity:0.5; } 100% { transform: translateX(-80px) scale(0.6); opacity:0; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.silhouette { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* scene-list-1: Grecian camp with distant Troy */
.scn-scene-list-1 {
  background: 
    linear-gradient(180deg, #b8b8a0 0%, #9c9c80 30%, #7a7a60 60%, #5a5a4a 100%),
    radial-gradient(ellipse at 50% 0%, #d0d0b8 0%, transparent 60%);
}
.scn-scene-list-1 .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c4c4ae 0%, #aaa898 40%, #8c8a7a 100%);
  animation: sc1-sky 14s ease-in-out infinite alternate;
}
.scn-scene-list-1 .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #6e6e56 0%, #4e4e3a 100%);
  border-radius: 20% 30% 0 0 / 15% 25% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.3);
}
.scn-scene-list-1 .palace {
  position: absolute;
  bottom: 42%;
  right: 10%;
  width: 120px;
  height: 80px;
  background: linear-gradient(180deg, #a09680 0%, #807862 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,.25);
  animation: sc1-palace 20s ease-in-out infinite;
}
.scn-scene-list-1 .tent {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 100px;
  height: 70px;
  background: linear-gradient(160deg, #9a8a72 0%, #6a5a46 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,.35);
  animation: sc1-tent 8s ease-in-out infinite;
}
.scn-scene-list-1 .tent-pole {
  position: absolute;
  bottom: 30%;
  left: calc(20% + 48px);
  width: 4px;
  height: 80px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  transform-origin: bottom center;
  animation: sc1-pole 8s ease-in-out infinite;
}
.scn-scene-list-1 .fire-glow {
  position: absolute;
  bottom: 22%;
  left: 15%;
  width: 24px;
  height: 24px;
  background: radial-gradient(circle, #d4a050 0%, #b08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(180,120,40,.5), 0 0 80px 24px rgba(180,120,40,.2);
  animation: sc1-fire 3s ease-in-out infinite alternate;
}
.scn-scene-list-1 .figure {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 16px;
  height: 36px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figure 5s ease-in-out infinite;
}
@keyframes sc1-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sc1-palace {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.005); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes sc1-tent {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(0.3deg); }
  50% { transform: translateX(-1px) rotate(-0.3deg); }
  75% { transform: translateX(1px) rotate(0.2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc1-pole {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(0.6deg); }
  100% { transform: rotate(0deg); }
}
@keyframes sc1-fire {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.85; transform: scale(1); }
}
@keyframes sc1-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(0deg); }
}

/* scene-list-2: Plains with Troy */
.scn-scene-list-2 {
  background: 
    linear-gradient(180deg, #b2b29a 0%, #96967e 30%, #74745c 60%, #525240 100%),
    radial-gradient(ellipse at 30% 0%, #cacab2 0%, transparent 70%);
}
.scn-scene-list-2 .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0c0aa 0%, #a4a48e 40%, #82826a 100%);
  animation: sc2-sky 16s ease-in-out infinite alternate;
}
.scn-scene-list-2 .plain {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #5a5a44 0%, #3a3a2a 100%);
  border-radius: 30% 20% 0 0 / 25% 15% 0 0;
  box-shadow: inset 0 30px 50px rgba(0,0,0,.35);
  animation: sc2-plain 12s ease-in-out infinite alternate;
}
.scn-scene-list-2 .distant-city {
  position: absolute;
  bottom: 38%;
  left: 50%;
  width: 140px;
  height: 60px;
  background: linear-gradient(180deg, #8a7a68 0%, #605040 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 14px rgba(0,0,0,.3);
  animation: sc2-city 20s ease-in-out infinite;
}
.scn-scene-list-2 .tent {
  position: absolute;
  bottom: 28%;
  right: 15%;
  width: 90px;
  height: 60px;
  background: linear-gradient(160deg, #8a7a62 0%, #5a4a36 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: sc2-tent 7s ease-in-out infinite;
}
.scn-scene-list-2 .tent-flag {
  position: absolute;
  bottom: 48%;
  right: calc(15% + 42px);
  width: 12px;
  height: 20px;
  background: linear-gradient(180deg, #705a44 0%, #3a2a1a 100%);
  border-radius: 0 30% 30% 0;
  transform-origin: left bottom;
  animation: sc2-flag 4s ease-in-out infinite alternate;
}
.scn-scene-list-2 .road {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 60%;
  height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 30%, #4a3a2a 70%, #5a4a3a 100%);
  border-radius: 20% 20% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: sc2-road 15s ease-in-out infinite alternate;
}
.scn-scene-list-2 .tree {
  position: absolute;
  bottom: 25%;
  left: 12%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #6a6a4a 0%, #3a3a22 100%);
  border-radius: 80% 80% 20% 20% / 90% 90% 10% 10%;
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
  animation: sc2-tree 9s ease-in-out infinite;
}
.scn-scene-list-2 .bird {
  position: absolute;
  top: 18%;
  left: 30%;
  width: 16px;
  height: 8px;
  background: radial-gradient(ellipse 16px 8px at 0% 50%, #3a3a2a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(0.5px);
  animation: sc2-bird 22s linear infinite;
}
@keyframes sc2-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sc2-plain {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.002); }
  100% { transform: scaleY(1); }
}
@keyframes sc2-city {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.003); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes sc2-tent {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(0.5deg); }
  50% { transform: translateX(-1px) rotate(-0.5deg); }
  75% { transform: translateX(1px) rotate(0.3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc2-flag {
  0% { transform: rotate(0deg) skewX(0deg); }
  50% { transform: rotate(15deg) skewX(5deg); }
  100% { transform: rotate(-10deg) skewX(-3deg); }
}
@keyframes sc2-road {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sc2-tree {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(0.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sc2-bird {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(80px) translateY(-5px); }
  100% { transform: translateX(160px) translateY(0); }
}

.scn-hector-challenge-ulysses {
  background: 
    linear-gradient(180deg, #f9e6b3 0%, #e8c877 40%, #c9a54a 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d4 0%, transparent 70%);
}
.scn-hector-challenge-ulysses .sky-bright {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fdf2c4 0%, #f5db99 100%);
  animation: hcu-sky 6s ease-in-out infinite alternate;
}
.scn-hector-challenge-ulysses .sun-blaze {
  position: absolute; top: 5%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7b0 0%, #fce38a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(252, 227, 138, 0.4);
  animation: hcu-sun 4s ease-in-out infinite;
}
.scn-hector-challenge-ulysses .ground-dust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d4b06a 0%, #b4914a 100%);
  border-radius: 20% 20% 0 0;
  animation: hcu-ground 10s ease-in-out infinite alternate;
}
.scn-hector-challenge-ulysses .tent-left {
  position: absolute; bottom: 30%; left: 10%; width: 90px; height: 80px;
  background: linear-gradient(135deg, #e8d5a3 0%, #c9ab6b 100%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: 8px 8px 20px rgba(0,0,0,0.3);
  animation: hcu-tent 8s ease-in-out infinite alternate;
}
.scn-hector-challenge-ulysses .tent-right {
  position: absolute; bottom: 28%; right: 12%; width: 80px; height: 70px;
  background: linear-gradient(225deg, #e0c98a 0%, #c0a060 100%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  box-shadow: -5px 5px 15px rgba(0,0,0,0.2);
  animation: hcu-tent 8s ease-in-out infinite alternate-reverse;
}
.scn-hector-challenge-ulysses .figure-ulysses {
  position: absolute; bottom: 35%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hcu-walk 5s ease-in-out infinite;
}
.scn-hector-challenge-ulysses .figure-nestor {
  position: absolute; bottom: 34%; left: 42%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hcu-walk 5s ease-in-out infinite alternate;
}
.scn-hector-challenge-ulysses .spear {
  position: absolute; bottom: 38%; left: 35%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: hcu-spear 3s ease-in-out infinite;
}
@keyframes hcu-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hcu-sun { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.85 } }
@keyframes hcu-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hcu-tent { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-5px) scaleX(0.95) } 100% { transform: translateY(0) scaleX(1.02) } }
@keyframes hcu-walk { 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 hcu-spear { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-15deg) } }

.scn-thersites-ajax-helen {
  background: 
    linear-gradient(180deg, #fce8b0 0%, #e6c87a 50%, #c3a551 100%),
    radial-gradient(ellipse at 30% 50%, #fff2c0 0%, transparent 60%);
}
.scn-thersites-ajax-helen .bg-camp {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5dca0 0%, #d4b060 100%);
  animation: tah-bg 8s ease-in-out infinite alternate;
}
.scn-thersites-ajax-helen .tent-sun {
  position: absolute; top: 10%; left: 20%; width: 100px; height: 90px;
  background: linear-gradient(135deg, #f0d480 0%, #c8a840 100%);
  border-radius: 0 0 15% 15% / 0 0 40% 40%;
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
  box-shadow: 10px 10px 25px rgba(0,0,0,0.2);
  animation: tah-tent 6s ease-in-out infinite;
}
.scn-thersites-ajax-helen .figure-ajax {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #6b3a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tah-beat 3s ease-in-out infinite;
}
.scn-thersites-ajax-helen .figure-thersites {
  position: absolute; bottom: 22%; left: 50%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tah-fall 4s ease-in-out infinite;
}
.scn-thersites-ajax-helen .figure-achilles {
  position: absolute; bottom: 30%; left: 60%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tah-stand 5s ease-in-out infinite alternate;
}
.scn-thersites-ajax-helen .figure-patroclus {
  position: absolute; bottom: 28%; left: 68%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tah-stand 5s ease-in-out infinite alternate-reverse;
}
.scn-thersites-ajax-helen .spear-2 {
  position: absolute; bottom: 32%; left: 55%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: tah-spear 2s ease-in-out infinite;
}
@keyframes tah-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes tah-tent { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-8px) scaleX(0.92) } 100% { transform: translateY(0) scaleX(1.05) } }
@keyframes tah-beat { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(5deg) } 50% { transform: translateX(10px) translateY(0) rotate(-2deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(20px) translateY(0) rotate(-1deg) } }
@keyframes tah-fall { 0% { transform: translateX(0) translateY(0) rotate(5deg) } 50% { transform: translateX(-8px) translateY(10px) rotate(-10deg) } 100% { transform: translateX(0) translateY(0) rotate(5deg) } }
@keyframes tah-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes tah-spear { 0% { transform: rotate(15deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(20deg) } }

.scn-trojan-debate-helen {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 40% 50%, #3a3a4a 0%, transparent 70%);
}
.scn-trojan-debate-helen .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: tdh-wall 10s ease-in-out infinite alternate;
}
.scn-trojan-debate-helen .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 5% 5% 0 0;
  animation: tdh-floor 8s ease-in-out infinite alternate;
}
.scn-trojan-debate-helen .brazier {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #f08030 0%, #c05020 70%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 20px rgba(240,128,48,0.5), 0 0 100px 50px rgba(240,128,48,0.2);
  animation: tdh-fire 3s ease-in-out infinite alternate;
}
.scn-trojan-debate-helen .table {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: tdh-table 6s ease-in-out infinite alternate;
}
.scn-trojan-debate-helen .figure-hector {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdh-gesture 4s ease-in-out infinite;
}
.scn-trojan-debate-helen .figure-troilus {
  position: absolute; bottom: 16%; left: 45%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdh-argue 5s ease-in-out infinite alternate;
}
.scn-trojan-debate-helen .figure-paris {
  position: absolute; bottom: 17%; left: 55%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdh-argue 5s ease-in-out infinite alternate-reverse;
}
.scn-trojan-debate-helen .helen-silhouette {
  position: absolute; bottom: 18%; left: 65%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.7;
  animation: tdh-look 6s ease-in-out infinite;
}
@keyframes tdh-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tdh-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes tdh-fire { 0% { transform: scale(1) opacity(0.9); box-shadow: 0 0 40px 20px rgba(240,128,48,0.5) } 50% { transform: scale(1.1) opacity(1); box-shadow: 0 0 60px 30px rgba(240,128,48,0.6) } 100% { transform: scale(0.95) opacity(0.85); box-shadow: 0 0 30px 15px rgba(240,128,48,0.4) } }
@keyframes tdh-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tdh-gesture { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(5deg) } 50% { transform: translateX(6px) rotate(0deg) } 75% { transform: translateX(9px) rotate(-5deg) } 100% { transform: translateX(12px) rotate(0deg) } }
@keyframes tdh-argue { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(4deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes tdh-look { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scaleX(0.98) } 100% { transform: translateY(0) } }

.scn-diomedes-arrives-cressida {
  background: 
    linear-gradient(180deg, #fad89a 0%, #e8c068 40%, #c9a040 100%),
    radial-gradient(ellipse at 80% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-diomedes-arrives-cressida .sky-sun {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce0a0 0%, #f0c870 100%);
  animation: dac-sky 7s ease-in-out infinite alternate;
}
.scn-diomedes-arrives-cressida .hill {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8a060 0%, #a88040 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: dac-hill 12s ease-in-out infinite alternate;
}
.scn-diomedes-arrives-cressida .figure-diomedes {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-walk 4s ease-in-out infinite;
}
.scn-diomedes-arrives-cressida .figure-cressida {
  position: absolute; bottom: 26%; left: 45%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-stand 5s ease-in-out infinite alternate;
}
.scn-diomedes-arrives-cressida .figure-odysseus {
  position: absolute; bottom: 24%; left: 55%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dac-walk 4s ease-in-out infinite reverse;
}
.scn-diomedes-arrives-cressida .wall-troy {
  position: absolute; bottom: 20%; right: 10%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -5px 0 15px rgba(0,0,0,0.4);
  animation: dac-wall 10s ease-in-out infinite alternate;
}
.scn-diomedes-arrives-cressida .gate {
  position: absolute; bottom: 20%; right: 28%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: dac-gate 8s ease-in-out infinite alternate;
}
@keyframes dac-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes dac-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dac-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(10px) rotate(0deg) } 75% { transform: translateX(15px) rotate(-3deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes dac-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dac-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dac-gate { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

/* troilus-rage – dark/dark */
.scn-troilus-rage {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1530 50%, #2a1a40 100%), radial-gradient(ellipse at 30% 60%, #2a1a40 0%, transparent 70%);
}
.scn-troilus-rage .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #0b0b1a 0%, #1a1530 70%, #2a1a40 100%); }
.scn-troilus-rage .moon { position:absolute; top:12%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #4a4a6a 0%, #1a1a3a 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(74,74,106,.3); animation: tr-moon 12s ease-in-out infinite; }
.scn-troilus-rage .figure { position:absolute; bottom:25%; left:40%; 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: tr-figure 4s ease-in-out infinite; }
.scn-troilus-rage .fist { position:absolute; bottom:35%; left:45%; width:8px; height:10px; background: #0a0a1a; border-radius: 30% 30% 40% 40%; transform-origin: bottom right; animation: tr-fist 2s ease-in-out infinite; }
.scn-troilus-rage .shadow { position:absolute; bottom:20%; left:35%; width:40px; height:20px; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(8px); animation: tr-shadow 4s ease-in-out infinite; }
.scn-troilus-rage .slash { position:absolute; bottom:45%; left:50%; width:50px; height:2px; background: #6a4a6a; transform-origin: left center; border-radius: 50%; box-shadow: 0 0 10px #6a4a6a; animation: tr-slash 1.5s ease-in-out infinite; }
@keyframes tr-moon { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.9; transform: scale(1.05) } 100% { opacity:.7; transform: scale(.98) } }
@keyframes tr-figure { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-4px) rotate(2deg) scale(1.02) } 60% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tr-fist { 0% { transform: rotate(-10deg) scale(1) } 25% { transform: rotate(20deg) scale(1.1) } 50% { transform: rotate(-5deg) scale(1) } 75% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes tr-shadow { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.1); opacity:.7 } 100% { transform: scaleX(1); opacity:.5 } }
@keyframes tr-slash { 0% { transform: rotate(-30deg) scaleX(1); opacity:0 } 30% { opacity:.8 } 60% { transform: rotate(40deg) scaleX(1.3); opacity:.5 } 100% { transform: rotate(-30deg) scaleX(1) } }

/* item-letter-pandarus – dark/sunlit */
.scn-item-letter-pandarus {
  background: linear-gradient(180deg, #fff8e0 0%, #f0d090 50%, #c89860 100%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 70%);
}
.scn-item-letter-pandarus .bg-sun { position:absolute; inset:0; background: linear-gradient(135deg, #fff0c0 0%, #e8c880 70%, #a06830 100%); }
.scn-item-letter-pandarus .sun { position:absolute; top:10%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #fff 0%, #ffe080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffe080; animation: il-sun 8s ease-in-out infinite; }
.scn-item-letter-pandarus .rays { position:absolute; top:20%; left:25%; width:100px; height:2px; background: linear-gradient(90deg, rgba(255,200,100,.6) 0%, transparent 100%); transform-origin: left center; box-shadow: 0 0 20px #ffc864; animation: il-rays 10s linear infinite; }
.scn-item-letter-pandarus .parchment { position:absolute; bottom:35%; right:30%; width:60px; height:80px; background: linear-gradient(180deg, #f5e6c0 0%, #d9b88a 100%); border-radius: 4px 10px 10px 4px; box-shadow: 0 8px 16px rgba(0,0,0,.3); transform: rotate(-10deg); animation: il-parchment 6s ease-in-out infinite; }
.scn-item-letter-pandarus .hand { position:absolute; bottom:30%; right:35%; width:12px; height:18px; background: #b08a6a; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(10deg); animation: il-hand 4s ease-in-out infinite; }
.scn-item-letter-pandarus .shadow-fig { position:absolute; bottom:20%; left:20%; width:50px; height:80px; background: rgba(0,0,0,.3); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(6px); animation: il-shadow 8s ease-in-out infinite; }
@keyframes il-sun { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.08) } 100% { opacity:.85; transform: scale(.95) } }
@keyframes il-rays { 0% { opacity:.3; transform: rotate(-10deg) scaleX(.8) } 50% { opacity:.6; transform: rotate(5deg) scaleX(1.2) } 100% { opacity:.3; transform: rotate(-10deg) scaleX(.8) } }
@keyframes il-parchment { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-4px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes il-hand { 0% { transform: rotate(10deg) } 50% { transform: rotate(15deg) scale(1.02) } 100% { transform: rotate(10deg) } }
@keyframes il-shadow { 0% { opacity:.4; transform: translateX(0) } 50% { opacity:.6; transform: translateX(-10px) } 100% { opacity:.4; transform: translateX(0) } }

/* item-rich-armor – dark/sunlit */
.scn-item-rich-armor {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #daa520 100%), radial-gradient(ellipse at 50% 30%, #ffd700 0%, transparent 70%);
}
.scn-item-rich-armor .bg-battle { position:absolute; inset:0; background: linear-gradient(135deg, #c0c0a0 0%, #b8860b 60%, #8b4513 100%); }
.scn-item-rich-armor .sun-gleam { position:absolute; top:5%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #fff 0%, #ffd700 40%, transparent 70%); border-radius:50%; transform: translateX(-50%); box-shadow: 0 0 80px 30px #ffd700; animation: ir-gleam 5s ease-in-out infinite; }
.scn-item-rich-armor .armor-body { position:absolute; bottom:20%; left:50%; width:60px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #daa520 0%, #b8860b 60%, #8b4513 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5), 0 0 30px #ffd700; animation: ir-body 8s ease-in-out infinite; }
.scn-item-rich-armor .armor-helm { position:absolute; bottom:55%; left:50%; width:40px; height:35px; transform: translateX(-50%); background: linear-gradient(180deg, #ffd700 0%, #daa520 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px #ffd700; animation: ir-helm 6s ease-in-out infinite; }
.scn-item-rich-armor .sword { position:absolute; bottom:35%; left:20%; width:5px; height:50px; background: linear-gradient(180deg, #c0c0a0 0%, #808080 100%); border-radius: 2px; transform: rotate(25deg); transform-origin: bottom center; box-shadow: 0 0 10px #fff; animation: ir-sword 10s ease-in-out infinite; }
.scn-item-rich-armor .glint { position:absolute; bottom:38%; left:40%; width:8px; height:8px; background: radial-gradient(circle, #fff 0%, transparent 100%); border-radius:50%; animation: ir-glint 3s ease-in-out infinite alternate; }
.scn-item-rich-armor .spark { position:absolute; bottom:25%; left:35%; width:3px; height:3px; background: #ffd700; border-radius:50%; box-shadow: 0 0 10px #ffd700; animation: ir-spark 2s ease-in-out infinite; }
@keyframes ir-gleam { 0% { opacity:.7; transform: scaleX(-50%) scale(1) } 50% { opacity:1; transform: scaleX(-50%) scale(1.1) } 100% { opacity:.8; transform: scaleX(-50%) scale(.95) } }
@keyframes ir-body { 0% { filter: brightness(.8); transform: translateX(-50%) rotate(0) } 50% { filter: brightness(1.1); transform: translateX(-50%) rotate(2deg) } 100% { filter: brightness(.8); transform: translateX(-50%) rotate(0) } }
@keyframes ir-helm { 0% { filter: brightness(.7); transform: translateX(-50%) scale(1) } 50% { filter: brightness(1); transform: translateX(-50%) scale(1.03) } 100% { filter: brightness(.7); transform: translateX(-50%) scale(1) } }
@keyframes ir-sword { 0% { transform: rotate(25deg) translateY(0) } 50% { transform: rotate(30deg) translateY(-10px) } 100% { transform: rotate(25deg) translateY(0) } }
@keyframes ir-glint { 0% { opacity:0; transform: scale(1) } 100% { opacity:1; transform: scale(2) } }
@keyframes ir-spark { 0% { opacity:.5; transform: translate(0,0) scale(1) } 50% { opacity:1; transform: translate(5px,-5px) scale(1.5) } 100% { opacity:.5; transform: translate(0,0) scale(1) } }

/* final-lament – dark/dim-interior */
.scn-final-lament {
  background: linear-gradient(180deg, #1a1410 0%, #2c221a 50%, #3a2a1a 100%), radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-final-lament .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #2c221a 60%, #3a2a1a 100%); }
.scn-final-lament .lamp { position:absolute; top:20%; left:20%; width:14px; height:18px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 15px rgba(255,208,128,.5), 0 0 80px 30px rgba(176,128,64,.3); animation: fl-lamp 4s ease-in-out infinite; }
.scn-final-lament .figure-sad { position:absolute; bottom:15%; right:30%; width:35px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-figure 6s ease-in-out infinite; }
.scn-final-lament .shadow-long { position:absolute; bottom:5%; left:10%; width:80px; height:20px; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(10px); animation: fl-shadow 6s ease-in-out infinite; }
.scn-final-lament .dust-a { position:absolute; top:40%; left:15%; width:6px; height:6px; background: rgba(255,200,150,.3); border-radius:50%; filter: blur(2px); animation: fl-dust 12s linear infinite; }
.scn-final-lament .dust-b { position:absolute; top:55%; right:25%; width:4px; height:4px; background: rgba(255,200,150,.2); border-radius:50%; filter: blur(2px); animation: fl-dust 15s linear infinite reverse; }
.scn-final-lament .tear { position:absolute; bottom:55%; right:40%; width:4px; height:6px; background: rgba(200,180,150,.6); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(10deg); animation: fl-tear 3s ease-in-out infinite; }
@keyframes fl-lamp { 0% { opacity:.7; transform: scale(1) } 30% { opacity:.9; transform: scale(1.05) } 60% { opacity:.8; transform: scale(.98) } 100% { opacity:.7; transform: scale(1) } }
@keyframes fl-figure { 0% { transform: translateY(0) rotate(-3deg) scale(1) } 50% { transform: translateY(-6px) rotate(1deg) scale(1.02) } 100% { transform: translateY(0) rotate(-3deg) scale(1) } }
@keyframes fl-shadow { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.1); opacity:.7 } 100% { transform: scaleX(1); opacity:.5 } }
@keyframes fl-dust { 0% { transform: translateY(0) translateX(0) rotate(0deg); opacity:.3 } 25% { transform: translateY(-20px) translateX(10px) rotate(90deg); opacity:.6 } 50% { transform: translateY(-40px) translateX(-5px) rotate(180deg); opacity:.4 } 75% { transform: translateY(-60px) translateX(15px) rotate(270deg); opacity:.5 } 100% { transform: translateY(-80px) translateX(0) rotate(360deg); opacity:.2 } }
@keyframes fl-tear { 0% { transform: translateY(0) rotate(10deg); opacity:.8 } 50% { transform: translateY(10px) rotate(15deg); opacity:.4 } 100% { transform: translateY(0) rotate(10deg); opacity:.8 } }

/* ---- scene: troilus-lovesick-pandarus ---- */
.scn-troilus-lovesick-pandarus {
  background: linear-gradient(180deg, #f9e3c0 0%, #d4a86a 50%, #b8874a 100%),
              radial-gradient(ellipse at 30% 40%, #ffe6b0 0%, transparent 60%);
}
.scn-troilus-lovesick-pandarus .sky {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #c9e2f0 0%, #f9e3c0 100%);
  animation: tl-sky 10s ease-in-out infinite alternate;
}
.scn-troilus-lovesick-pandarus .palace-facade {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 55%;
  background: linear-gradient(180deg, #d4a86a 0%, #b8874a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3);
  animation: tl-palace 12s ease-in-out infinite;
}
.scn-troilus-lovesick-pandarus .palace-roof {
  position: absolute; bottom: 72%; left: 18%; right: 18%; height: 8%;
  background: #8b6f3a; border-radius: 20% 20% 0 0;
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: tl-roof 15s ease-in-out infinite;
}
.scn-troilus-lovesick-pandarus .column-left,
.scn-troilus-lovesick-pandarus .column-right {
  position: absolute; bottom: 20%; width: 5%; height: 50%;
  background: linear-gradient(180deg, #efe1c0 0%, #d4b88a 100%);
  border-radius: 6% 6% 0 0; box-shadow: 3px 0 6px rgba(0,0,0,0.2);
}
.scn-troilus-lovesick-pandarus .column-left { left: 24%; }
.scn-troilus-lovesick-pandarus .column-right { right: 24%; animation-delay: -3s; }
.scn-troilus-lovesick-pandarus .troilus {
  position: absolute; bottom: 30%; left: 36%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #c8a070 0%, #9a7a50 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: tl-troilus 4s ease-in-out infinite;
}
.scn-troilus-lovesick-pandarus .pandarus {
  position: absolute; bottom: 28%; left: 54%; width: 9%; height: 20%;
  background: linear-gradient(180deg, #b8895a 0%, #8a6a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-pandarus 3.5s ease-in-out infinite;
}
.scn-troilus-lovesick-pandarus .sunbeam {
  position: absolute; top: 0; left: 30%; width: 12%; height: 100%;
  background: linear-gradient(180deg, rgba(255,245,200,0.6) 0%, transparent 100%);
  transform: skewX(-15deg);
  animation: tl-sunbeam 8s linear infinite alternate;
}
@keyframes tl-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes tl-palace { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tl-roof { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1) } }
@keyframes tl-troilus { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(1px) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(0) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes tl-pandarus { 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 tl-sunbeam { 0% { transform: skewX(-15deg) translateX(0) } 100% { transform: skewX(-15deg) translateX(30px) } }

/* ---- scene: cressida-ajax-pandarus ---- */
.scn-cressida-ajax-pandarus {
  background: linear-gradient(180deg, #dce8f2 0%, #b6c8d6 50%, #8ca0b2 100%),
              radial-gradient(ellipse at 50% 30%, #f2e8c0 0%, transparent 70%);
}
.scn-cressida-ajax-pandarus .tent-wall {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(135deg, #d4c8a8 0%, #b8a888 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset -8px 0 12px rgba(0,0,0,0.15);
  animation: ca-tent 15s ease-in-out infinite alternate;
}
.scn-cressida-ajax-pandarus .tent-ropes {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 2%;
  background: #8a7a5a; border-radius: 2px;
  animation: ca-ropes 8s ease-in-out infinite;
}
.scn-cressida-ajax-pandarus .cressida {
  position: absolute; bottom: 18%; left: 38%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #d0a890 0%, #a88a70 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: ca-cressida 4s ease-in-out infinite;
}
.scn-cressida-ajax-pandarus .alexander {
  position: absolute; bottom: 16%; left: 52%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: ca-alexander 5s ease-in-out infinite;
}
.scn-cressida-ajax-pandarus .pandarus {
  position: absolute; bottom: 14%; left: 62%; width: 8%; height: 24%;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-pandarus 3.5s ease-in-out infinite;
}
.scn-cressida-ajax-pandarus .table {
  position: absolute; bottom: 20%; left: 42%; width: 14%; height: 6%;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: ca-table 6s ease-in-out infinite;
}
.scn-cressida-ajax-pandarus .window {
  position: absolute; bottom: 60%; left: 25%; width: 12%; height: 18%;
  background: radial-gradient(circle, #f0e8c8 0%, #c8b88a 100%);
  border-radius: 10% 10% 10% 10%; box-shadow: inset 0 0 20px rgba(255,245,200,0.5);
  animation: ca-window 9s ease-in-out infinite alternate;
}
@keyframes ca-tent { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes ca-ropes { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ca-cressida { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes ca-alexander { 0% { transform: translateX(0) } 33% { transform: translateX(3px) } 66% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes ca-pandarus { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(-4deg) translateX(-3px) } 50% { transform: rotate(0) translateX(0) } 75% { transform: rotate(4deg) translateX(3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes ca-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ca-window { 0% { opacity: 0.6; box-shadow: inset 0 0 10px rgba(255,245,200,0.3) } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,245,200,0.7) } 100% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(255,245,200,0.4) } }

/* ---- scene: watch-procession ---- */
.scn-watch-procession {
  background: linear-gradient(180deg, #bcd8e8 0%, #e8d8b4 40%, #c8a878 100%),
              radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, transparent 70%);
}
.scn-watch-procession .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0d0e0 0%, #d8e0c0 100%);
  animation: wp-sky 12s ease-in-out infinite alternate;
}
.scn-watch-procession .parapet {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #a89878 0%, #8a7a5a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: 0 -8px 12px rgba(0,0,0,0.2);
  animation: wp-parapet 10s ease-in-out infinite;
}
.scn-watch-procession .balcony-rail {
  position: absolute; bottom: 50%; left: 10%; right: 10%; height: 3%;
  background: #6a5a3a; border-radius: 2px;
  animation: wp-rail 8s ease-in-out infinite;
}
.scn-watch-procession .cressida {
  position: absolute; bottom: 42%; left: 30%; width: 6%; height: 16%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: wp-cressida 4s ease-in-out infinite;
}
.scn-watch-procession .pandarus {
  position: absolute; bottom: 38%; left: 42%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wp-pandarus 3.5s ease-in-out infinite;
}
.scn-watch-procession .warrior-1,
.scn-watch-procession .warrior-2,
.scn-watch-procession .warrior-3 {
  position: absolute; bottom: 38%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: wp-warrior 12s linear infinite;
}
.scn-watch-procession .warrior-1 { left: 10%; animation-delay: 0s; }
.scn-watch-procession .warrior-2 { left: 25%; animation-delay: -3s; }
.scn-watch-procession .warrior-3 { left: 40%; animation-delay: -7s; }
.scn-watch-procession .flag {
  position: absolute; bottom: 60%; left: 60%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 0 0;
  animation: wp-flag 5s ease-in-out infinite alternate;
}
@keyframes wp-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes wp-parapet { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wp-rail { 0%,100% { opacity: 1 } 50% { opacity: 0.7 } }
@keyframes wp-cressida { 0% { transform: rotate(0) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(0) } }
@keyframes wp-pandarus { 0% { transform: rotate(0) translateX(0) } 33% { transform: rotate(3deg) translateX(4px) } 66% { transform: rotate(-3deg) translateX(-3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes wp-warrior { 0% { transform: translateX(0) } 100% { transform: translateX(70vw) } }
@keyframes wp-flag { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-5deg) scaleY(1) } }

/* ---- scene: ulysses-degree-speech ---- */
.scn-ulysses-degree-speech {
  background: linear-gradient(180deg, #d4d8c0 0%, #b0b29a 50%, #8a8c72 100%),
              radial-gradient(ellipse at 30% 20%, #f0e8d0 0%, transparent 70%);
}
.scn-ulysses-degree-speech .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c2c8b8 0%, #d4d8c0 100%);
  animation: ud-sky 14s ease-in-out infinite alternate;
}
.scn-ulysses-degree-speech .tent {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 60%;
  background: linear-gradient(180deg, #b8b098 0%, #9a926a 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset -6px 0 10px rgba(0,0,0,0.2);
  animation: ud-tent 18s ease-in-out infinite;
}
.scn-ulysses-degree-speech .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a7a5a 0%, #5a5a3a 100%);
  animation: ud-ground 12s ease-in-out infinite;
}
.scn-ulysses-degree-speech .ulysses {
  position: absolute; bottom: 30%; left: 32%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #a08a6a 0%, #7a6a4a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ud-ulysses 3s ease-in-out infinite;
}
.scn-ulysses-degree-speech .agamemnon {
  position: absolute; bottom: 28%; left: 45%; width: 9%; height: 24%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: ud-agamemnon 4s ease-in-out infinite;
}
.scn-ulysses-degree-speech .nestor {
  position: absolute; bottom: 28%; left: 58%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: ud-nestor 5s ease-in-out infinite;
}
.scn-ulysses-degree-speech .table {
  position: absolute; bottom: 32%; left: 40%; width: 16%; height: 5%;
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ud-table 8s ease-in-out infinite;
}
.scn-ulysses-degree-speech .map-scroll {
  position: absolute; bottom: 34%; left: 44%; width: 8%; height: 3%;
  background: #c0b090; border-radius: 2px;
  animation: ud-map 6s linear infinite;
}
@keyframes ud-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ud-tent { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.96) } 100% { transform: scaleX(1) } }
@keyframes ud-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ud-ulysses { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(-3deg) translateX(-2px) } 50% { transform: rotate(0) translateX(0) } 75% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes ud-agamemnon { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ud-nestor { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes ud-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ud-map { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-dawn-parting-cressida { background: linear-gradient(180deg, #f7d9aa 0%, #fce4b8 20%, #f5cba7 40%, #e8b28c 60%, #c68a5e 80%, #8c5a3e 100%), radial-gradient(ellipse at 50% 0%, #fce4b8 0%, transparent 40%); }
.scn-dawn-parting-cressida .window-frame { position:absolute; top:10%; left:20%; width:60%; height:70%; border:8px solid #5a3a1e; border-radius:4px; background: linear-gradient(180deg, #f7d9aa 0%, #fce4b8 40%, #e8b28c 100%); }
.scn-dawn-parting-cressida .curtains { position:absolute; top:0; left:20%; width:60%; height:70%; background: linear-gradient(90deg, #8c5a3e 0%, transparent 30%, transparent 70%, #8c5a3e 100%); border-radius:4px; }
.scn-dawn-parting-cressida .bed { position:absolute; bottom:10%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:10px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-dawn-parting-cressida .figure-troilus { position:absolute; bottom:18%; left:35%; 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; animation: dp1-figure 4s ease-in-out infinite; }
.scn-dawn-parting-cressida .figure-cressida { position:absolute; bottom:18%; left:47%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: dp1-figure 5s ease-in-out infinite 0.5s; }
.scn-dawn-parting-cressida .dawn-sky { position:absolute; top:0; left:20%; width:60%; height:30%; background: radial-gradient(ellipse at 50% 100%, #f7d9aa 0%, transparent 60%); opacity:0.6; animation: dp1-glow 8s ease-in-out infinite alternate; }
.scn-dawn-parting-cressida .candle { position:absolute; bottom:20%; left:55%; width:8px; height:12px; background: linear-gradient(180deg, #ffd680 0%, #b08040 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 8px 4px rgba(255,214,128,.5); animation: dp1-candle 3s ease-in-out infinite; }
@keyframes dp1-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dp1-glow { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes dp1-candle { 0% { opacity:0.7; box-shadow: 0 0 6px 2px rgba(255,214,128,.4); } 50% { opacity:1; box-shadow: 0 0 12px 6px rgba(255,214,128,.7); } 100% { opacity:0.8; box-shadow: 0 0 8px 3px rgba(255,214,128,.5); } }

.scn-cressida-departs-combat { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #ffd700 100%), radial-gradient(ellipse at 80% 10%, #ffd700 0%, transparent 40%); }
.scn-cressida-departs-combat .house-facade { position:absolute; bottom:20%; left:10%; width:80%; height:60%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border:4px solid #704020; border-radius:4px; }
.scn-cressida-departs-combat .door { position:absolute; bottom:20%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, #604020 0%, #402010 100%); border-radius:4px 4px 0 0; }
.scn-cressida-departs-combat .figure-troilus { position:absolute; bottom:22%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #202020 0%, #101010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: dc2-fig 3s ease-in-out infinite; }
.scn-cressida-departs-combat .figure-cressida { position:absolute; bottom:22%; left:48%; width:18px; height:38px; background: linear-gradient(180deg, #404040 0%, #202020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: dc2-fig 3.5s ease-in-out infinite 0.5s; }
.scn-cressida-departs-combat .figure-diomedes { position:absolute; bottom:22%; right:15%; width:22px; height:42px; background: linear-gradient(180deg, #303030 0%, #101010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: dc2-fig 4s ease-in-out infinite 1s; }
.scn-cressida-departs-combat .sun { position:absolute; top:5%; right:10%; width:40px; height:40px; background: radial-gradient(circle, #ffd700 0%, #ffa500 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px #ffd700; animation: dc2-sun 6s ease-in-out infinite alternate; }
.scn-cressida-departs-combat .shadow { position:absolute; bottom:20%; left:0; width:100%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: dc2-shadow 4s ease-in-out infinite; }
@keyframes dc2-fig { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dc2-sun { 0% { opacity:0.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes dc2-shadow { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }

.scn-post-combat-feast { background: linear-gradient(180deg, #ff7f50 0%, #ffa07a 20%, #d4553d 40%, #8b3a3a 60%, #2f1a0a 100%), radial-gradient(ellipse at 20% 30%, #ffa07a 0%, transparent 50%); }
.scn-post-combat-feast .tent { position:absolute; top:20%; left:10%; width:80%; height:60%; background: linear-gradient(180deg, #d4a373 0%, #b5835a 100%); border-radius:30% 30% 10% 10%; border:2px solid #8b5a2b; }
.scn-post-combat-feast .table { position:absolute; bottom:15%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #8b5a2b 0%, #6b3a1b 100%); border-radius:4px; }
.scn-post-combat-feast .goblet { position:absolute; bottom:18%; left:35%; width:10px; height:15px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius:0 0 40% 40%; }
.scn-post-combat-feast .figure-cressida { position:absolute; bottom:18%; left:45%; width:18px; height:36px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pf3-fig 5s ease-in-out infinite; }
.scn-post-combat-feast .figure-generals { position:absolute; bottom:18%; left:25%; width:60%; height:36px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.5; filter: blur(2px); animation: pf3-fig 5s ease-in-out infinite 0.8s; }
.scn-post-combat-feast .torch { position:absolute; bottom:30%; left:20%; width:6px; height:20px; background: linear-gradient(180deg, #ff8c00 0%, #8b4513 100%); border-radius:4px; animation: pf3-torch 3s ease-in-out infinite; }
.scn-post-combat-feast .torch-light { position:absolute; bottom:30%; left:20%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,140,0,0.6) 0%, transparent 70%); transform:translate(-50%, -50%); animation: pf3-torch 3s ease-in-out infinite; }
.scn-post-combat-feast .dusk-sky { position:absolute; top:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, #ff7f50 0%, transparent 100%); opacity:0.5; animation: pf3-dusk 10s ease-in-out infinite alternate; }
@keyframes pf3-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pf3-torch { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes pf3-dusk { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-item-sleeve-token { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 30%, #2a2a5e 60%, #1a1a2e 100%), radial-gradient(ellipse at 50% 0%, #4a4a7e 0%, transparent 60%); }
.scn-item-sleeve-token .moon { position:absolute; top:5%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #e0e0ff 0%, #c0c0ff 50%, transparent 60%); border-radius:50%; box-shadow: 0 0 30px 10px #c0c0ff; animation: st4-moon 12s ease-in-out infinite alternate; }
.scn-item-sleeve-token .tent { position:absolute; bottom:10%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:20% 20% 10% 10%; border:2px solid #4a4a6a; }
.scn-item-sleeve-token .figure-troilus { position:absolute; bottom:15%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: st4-fig 5s ease-in-out infinite; }
.scn-item-sleeve-token .figure-ulysses { position:absolute; bottom:15%; left:45%; width:20px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: st4-fig 5.5s ease-in-out infinite 0.5s; }
.scn-item-sleeve-token .sleeve { position:absolute; bottom:20%; left:43%; width:12px; height:16px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius:2px; transform: rotate(-10deg); animation: st4-sleeve 4s ease-in-out infinite; box-shadow: 0 0 6px 2px rgba(192,160,96,0.5); }
.scn-item-sleeve-token .ground { position:absolute; bottom:0; left:0; width:100%; height:15%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-item-sleeve-token .stars { position:absolute; top:0; left:0; width:100%; height:30%; background: radial-gradient(2px 2px at 20% 10%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 40% 30%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 60% 15%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 80% 25%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 10% 40%, #ffffff 0%, transparent 100%); animation: st4-stars 20s linear infinite; }
@keyframes st4-moon { 0% { opacity:0.7; transform: translateY(0); } 50% { opacity:0.9; transform: translateY(-2px); } 100% { opacity:0.8; transform: translateY(0); } }
@keyframes st4-fig { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes st4-sleeve { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes st4-stars { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }
/* end per-scene blocks */
